aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix a typo in a comment.Dan Gohman2009-08-071-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78362 91177308-0d34-0410-b5e6-96231b3b80d8
* It turns out most of the thumb2 instructions are not allowed to touch SP. ↵Evan Cheng2009-08-0710-70/+346
| | | | | | | | | | | The semantics of such instructions are unpredictable. We have just been lucky that tests have been passing. This patch takes pain to ensure all the PEI lowering code does the right thing when lowering frame indices, insert code to manipulate stack pointers, etc. It's also custom lowering dynamic stack alloc into pseudo instructions so we can insert the right instructions at scheduling time. This fixes PR4659 and PR4682. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78361 91177308-0d34-0410-b5e6-96231b3b80d8
* Code clean up.Evan Cheng2009-08-071-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78360 91177308-0d34-0410-b5e6-96231b3b80d8
* Added legal stuff, fixed some formatting issues. Removed the graph generator ↵Lang Hames2009-08-0710-254/+142
| | | | | | stuff as it was only meant for debugging the solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78359 91177308-0d34-0410-b5e6-96231b3b80d8
* New C++ PBQP solver. Currently about as fast (read _slow_) as the old C ↵Lang Hames2009-08-0613-1785/+2850
| | | | | | based solver, but I'll be working to improve that. The PBQP allocator has been updated to use the new solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78354 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR 4626, a crash in branch folding after OptimizeBlockDale Johannesen2009-08-061-1/+17
| | | | | | | | produced a CFG it wasn't prepared for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78351 91177308-0d34-0410-b5e6-96231b3b80d8
* Use stripPointerCasts instead of partially rewriting it.Dale Johannesen2009-08-061-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78350 91177308-0d34-0410-b5e6-96231b3b80d8
* Output the new StructType constructor, which takes the context of theNicolas Geoffray2009-08-061-0/+1
| | | | | | | | module as first argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78340 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of RegScavenger::backwards() before the bitrot spreads.Jakob Stoklund Olesen2009-08-061-64/+0
| | | | | | If we need it one day, there is nothing wrong with putting it back in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78337 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Devang Patel2009-08-061-31/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78335 91177308-0d34-0410-b5e6-96231b3b80d8
* Use DebugInfoFinderDevang Patel2009-08-061-15/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78334 91177308-0d34-0410-b5e6-96231b3b80d8
* Use DebugInfoFinder.Devang Patel2009-08-061-10/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78333 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement Neon VST[234] operations.Bob Wilson2009-08-065-31/+176
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78330 91177308-0d34-0410-b5e6-96231b3b80d8
* Add parameter to pattern classes to enable an itinerary to be specified for ↵David Goodwin2009-08-066-819/+926
| | | | | | instructions. For now just use the existing itineraries or NoItinerary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78321 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix several fixmes and clean up code by sinking *all* sectionChris Lattner2009-08-063-39/+48
| | | | | | | | | | | | | | | | | | creation activity into the target-specific subclasses of TLOF. Before this, globals with explicit sections could be created by the base class. 1. make getOrCreateSection protected, add a new getExplicitSectionGlobal pure virtual method to assign sections to globals with a specified section. 2. eliminate getSpecialCasedSectionGlobals, which is now PIC specific. 3. eliminate the getKindForNamedSection virtual method, which is now just a static method for ELF. 4. Add implementions of getExplicitSectionGlobal for ELF/PECOFF/Darwin/PIC16. They are now all detangled and understandable, woo! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78319 91177308-0d34-0410-b5e6-96231b3b80d8
* Reg Scavenging generalization (Thumb support):John Mosby2009-08-061-27/+52
| | | | | | | | - start support for new PEI w/reg alloc, allow running RS from emit{Pro,Epi}logue() target hooks. - fix minor issue with recursion detection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78318 91177308-0d34-0410-b5e6-96231b3b80d8
* go through PIC16TargetObjectFile to make sections instead of Chris Lattner2009-08-064-12/+26
| | | | | | | creating them directly in the pic16 asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78317 91177308-0d34-0410-b5e6-96231b3b80d8
* Add assertion checks after the calls to LowerFormalArguments, LowerCall,Dan Gohman2009-08-061-1/+34
| | | | | | | | and LowerReturn, to verify that the targets' hooks have respected some of their postconditions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78312 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an over-aggressive assert. Functions with empty struct returnDan Gohman2009-08-061-3/+0
| | | | | | | | types don't have any return values, from CodeGen's perspective. This fixes PR4688. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78311 91177308-0d34-0410-b5e6-96231b3b80d8
* We need to sext global addresses in kernel code model, not zextAnton Korobeynikov2009-08-062-11/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78299 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in x86's PreprocessForRMW logic that was exposedDan Gohman2009-08-061-3/+5
| | | | | | | | | by aggressive chain operand optimization. UpdateNodeOperands does not modify the node in place if it would result in a node identical to an existing node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78297 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a few places in DAGCombiner that were creating all-ones-bitsDan Gohman2009-08-061-5/+17
| | | | | | | | | and high-bits values in ways that weren't correct for integer types wider than 64 bits. This fixes a miscompile in PPMacroExpansion.cpp in clang on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78295 91177308-0d34-0410-b5e6-96231b3b80d8
* Missed part of recent kernel codemodel tweaksAnton Korobeynikov2009-08-061-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78293 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't search the entire type table just to delete a type by name.Daniel Dunbar2009-08-062-7/+16
| | | | | | | - This also fixes the ENABLE_EXPENSIVE_CHECKS failure on vmcore.ml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78287 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify the ZIV tester to the max.Andreas Bolka2009-08-061-3/+2
| | | | | | As suggested by Nick Lewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78277 91177308-0d34-0410-b5e6-96231b3b80d8
* Neon does not actually have VLD{234}.64 instructions.Bob Wilson2009-08-063-9/+0
| | | | | | | These operations will have to be synthesized from other instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78263 91177308-0d34-0410-b5e6-96231b3b80d8
* Privatize the StructType table, which unfortunately involves routing ↵Owen Anderson2009-08-0514-49/+69
| | | | | | contexts through a number of APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78258 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new pre-allocation pass to assign adjacent registers for Neon instructionsBob Wilson2009-08-054-1/+142
| | | | | | | | | | that have that constraint. This is currently just assigning a fixed set of registers, and it only handles VLDn for n=2,3,4 with DPR registers. I'm going to expand it to handle more operations next; we can make it smarter once everything is working correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78256 91177308-0d34-0410-b5e6-96231b3b80d8
* Better handle kernel code model. Also, generalize the things and fix oneAnton Korobeynikov2009-08-053-34/+81
| | | | | | subtle bug with small code model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78255 91177308-0d34-0410-b5e6-96231b3b80d8
* Use GR32 for copies between GR32_NOSP and GR32_NOREX, as neitherDan Gohman2009-08-051-3/+11
| | | | | | | is a subset of the other, but both are subsets of GR32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78250 91177308-0d34-0410-b5e6-96231b3b80d8
* Make block and function count available via ProfileInfo.Daniel Dunbar2009-08-052-6/+19
| | | | | | | - Part of optimal static profiling patch sequence by Andreas Neustifter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78247 91177308-0d34-0410-b5e6-96231b3b80d8
* When using NEON for single-precision FP, the NEON result must be placed in ↵David Goodwin2009-08-053-21/+41
| | | | | | D0-D15 as these are the only D registers with S subregs. Introduce a new regclass to represent D0-D15 and use it in the NEON single-precision FP patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78244 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some column padding bugs, reorganize things as suggested by ChrisDavid Greene2009-08-051-2/+16
| | | | | | | and eliminate complexity. Yay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78243 91177308-0d34-0410-b5e6-96231b3b80d8
* remove the 'DataSectionStartSuffix' and 'TextSectionStartSuffix' knobs.Chris Lattner2009-08-053-21/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78242 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix FindExecutable to use sys::Path::GetMainExecutable instead ofDan Gohman2009-08-051-15/+8
| | | | | | | | | | | | | | just argv[0]. And remove the code for searching the current working directory and for searching PATH; the point of FindExecutable is not to find whatever version of the executable can be found by searching around, but to find an executable that accompanies the current executable. Update the tools to use sys::Program::FindProgramByName when they want PATH searching. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78240 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor code simplification.Dan Gohman2009-08-051-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78239 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove redundand checks: the only way to have, e.g. f32 RegVT is exactlyAnton Korobeynikov2009-08-051-11/+7
| | | | | | hardfloat case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78237 91177308-0d34-0410-b5e6-96231b3b80d8
* hasSuperClass tests for a strict superset relation, rather thanDan Gohman2009-08-051-2/+2
| | | | | | | | a superset relation. This code wants to test the regular superset relation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78236 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak the stuff, this is ugly, but we cannot do better for now with ↵Anton Korobeynikov2009-08-051-5/+4
| | | | | | 'plain' C calling conv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78232 91177308-0d34-0410-b5e6-96231b3b80d8
* Missed pieces for ARM HardFP ABI.Anton Korobeynikov2009-08-054-24/+41
| | | | | | Patch by Sandeep Patel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78225 91177308-0d34-0410-b5e6-96231b3b80d8
* Privatize the FunctionType table.Owen Anderson2009-08-052-7/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78221 91177308-0d34-0410-b5e6-96231b3b80d8
* Use elf Object File directlyAndrew Lenharth2009-08-051-18/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78220 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove some dead code.Daniel Dunbar2009-08-053-35/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78219 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable the new no-SP register classes by default. This is to addressDan Gohman2009-08-053-17/+6
| | | | | | | | PR4572. A few tests have some minor code regressions due to different coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78217 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a redundant declaration.Bob Wilson2009-08-051-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78216 91177308-0d34-0410-b5e6-96231b3b80d8
* Update a comment to reflect the current code.Dan Gohman2009-08-051-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78215 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert bswap test to filecheck, add more test entries & convert stuff to ↵Anton Korobeynikov2009-08-051-1/+1
| | | | | | filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78212 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in the PIC16 backend.Dan Gohman2009-08-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78211 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable NEON single-precision FP support for Cortex-A8, for now...David Goodwin2009-08-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78209 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code. MDNode and MDString are not Constant anymore.Devang Patel2009-08-057-21/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78207 91177308-0d34-0410-b5e6-96231b3b80d8