summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
...
* Generalize PostRAHazardRecognizer so it can be used in any pass forAndrew Trick2010-12-081-1/+1
| | | | | | | | both forward and backward scheduling. Rename it to ScoreboardHazardRecognizer (Scoreboard is one word). Remove integer division from the scoreboard's critical path. llvm-svn: 121274
* Stub out RegAllocGreedy.Jakob Stoklund Olesen2010-12-081-0/+1
| | | | | | | | | This new register allocator is initially identical to RegAllocBasic, but it will receive all of the tricks that RegAllocBasic won't get. RegAllocGreedy will eventually replace linear scan. llvm-svn: 121234
* Move the FindCopyInsertPoint method of PHIElimination to a new standaloneCameron Zwarich2010-12-051-0/+1
| | | | | | function so that it can be shared with StrongPHIElimination. llvm-svn: 120951
* Stub out a new LiveDebugVariables pass.Jakob Stoklund Olesen2010-11-301-0/+1
| | | | | | | | | | | | | This analysis is going to run immediately after LiveIntervals. It will stay alive during register allocation and keep track of user variables mentioned in DBG_VALUE instructions. When the register allocator is moving values between registers and the stack, it is very hard to keep track of DBG_VALUE instructions. We usually get it wrong. This analysis maintains a data structure that makes it easy to update DBG_VALUE instructions. llvm-svn: 120385
* Rename ExpandPseudos to ExpandISelPseudos to help clarify its role.Dan Gohman2010-11-181-1/+1
| | | | llvm-svn: 119716
* Add ExpandPseudos.cpp.Evan Cheng2010-11-161-0/+1
| | | | llvm-svn: 119385
* This is a prototype of an experimental register allocationAndrew Trick2010-10-221-0/+2
| | | | | | | | | | | | | | | | framework. It's purpose is not to improve register allocation per se, but to make it easier to develop powerful live range splitting. I call it the basic allocator because it is as simple as a global allocator can be but provides the building blocks for sophisticated register allocation with live range splitting. A minimal implementation is provided that trivially spills whenever it runs out of registers. I'm checking in now to get high-level design and style feedback. I've only done minimal testing. The next step is implementing a "greedy" allocation algorithm that does some register reassignment and makes better splitting decisions. llvm-svn: 117174
* Create a new LiveRangeEdit class to keep track of the new registers created whenJakob Stoklund Olesen2010-10-141-0/+1
| | | | | | | | | splitting or spillling, and to help with rematerialization. Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it possible to share remat code between InlineSpiller and SplitKit. llvm-svn: 116543
* Add initialization routines for CodeGen.Owen Anderson2010-10-071-0/+1
| | | | llvm-svn: 115949
* Removed a bunch of unnecessary target_link_libraries.Oscar Fuentes2010-09-281-2/+0
| | | | llvm-svn: 114999
* Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."Michael J. Spencer2010-09-131-8/+1
| | | | | | | | | | This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake llvm-svn: 113819
* CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.Michael J. Spencer2010-09-101-1/+8
| | | | llvm-svn: 113632
* Update CMake build.Ted Kremenek2010-08-141-1/+1
| | | | llvm-svn: 111063
* Add a local stack object block allocation pass. This is still anJim Grosbach2010-08-141-0/+1
| | | | | | | | | | | | | | | | | | experimental pass that allocates locals relative to one another before register allocation and then assigns them to actual stack slots as a block later in PEI. This will eventually allow targets with limited index offset range to allocate additional base registers (not just FP and SP) to more efficiently reference locals, as well as handle situations where locals cannot be referenced via SP or FP at all (dynamic stack realignment together with variable sized objects, for example). It's currently incomplete and almost certainly buggy. Work in progress. Disabled by default and gated via the -enable-local-stack-alloc command line option. rdar://8277890 llvm-svn: 111059
* Update CMake...sorry for the breakage.Bill Wendling2010-08-101-2/+1
| | | | llvm-svn: 110654
* Update CMake build.Ted Kremenek2010-08-061-0/+1
| | | | llvm-svn: 110429
* Beginning SplitKit - utility classes for live range splitting.Jakob Stoklund Olesen2010-07-201-0/+1
| | | | | | | | | This is a work in progress. So far we have some basic loop analysis to help determine where it is useful to split a live range around a loop. The actual loop splitting code from Splitter.cpp is also going to move in here. llvm-svn: 108842
* Update CMake build.Benjamin Kramer2010-07-191-0/+1
| | | | llvm-svn: 108700
* update CMakeLists.txtZhongxing Xu2010-07-171-0/+1
| | | | llvm-svn: 108620
* Move CallingConvLower.cpp out of the SelectionDAG directory.Dan Gohman2010-07-071-0/+1
| | | | llvm-svn: 107781
* Begin implementation of an inline spiller.Jakob Stoklund Olesen2010-06-291-0/+1
| | | | | | | | | | | InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. llvm-svn: 107227
* Remove the local register allocator.Jakob Stoklund Olesen2010-06-151-1/+0
| | | | | | Please use the fast allocator instead. llvm-svn: 106051
* Update CMake build.Ted Kremenek2010-06-151-2/+2
| | | | llvm-svn: 105987
* Add fast register allocator, enabled with -regalloc=fast.Jakob Stoklund Olesen2010-04-211-0/+1
| | | | | | | | | | | | | So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. llvm-svn: 102006
* Update CMakeLists.txt.Dan Gohman2010-04-211-0/+1
| | | | llvm-svn: 101976
* Ok, third time's the charm. No changes from last time except the CMakeDavid Greene2010-04-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100249
* remove empty file.Chris Lattner2010-04-021-1/+0
| | | | llvm-svn: 100222
* Update CMake.Benjamin Kramer2010-04-021-0/+1
| | | | llvm-svn: 100206
* Add file to CMakeLists.txtEric Christopher2010-03-021-0/+1
| | | | llvm-svn: 97545
* Add missed entry to cmake build list fileAnton Korobeynikov2010-02-151-0/+1
| | | | llvm-svn: 96292
* Add a new pass on machine instructions to optimize away PHI cycles that Bob Wilson2010-02-121-0/+1
| | | | | | | | | | | reduce down to a single value. InstCombine already does this transformation but DAG legalization may introduce new opportunities. This has turned out to be important for ARM where 64-bit values are split up during type legalization: InstCombine is not able to remove the PHI cycles on the 64-bit values but the separate 32-bit values can be optimized. I measured the compile time impact of this (running llc on 176.gcc) and it was not significant. llvm-svn: 95951
* Update CMake.Daniel Dunbar2010-02-021-1/+0
| | | | llvm-svn: 95041
* Update CMake list.Benjamin Kramer2010-01-191-1/+0
| | | | llvm-svn: 93905
* Update CMake build.Ted Kremenek2010-01-151-1/+0
| | | | llvm-svn: 93571
* Update CMake file.Ted Kremenek2010-01-131-1/+2
| | | | llvm-svn: 93283
* Added CalcSpillWeights to CMakeLists.Lang Hames2009-12-141-0/+1
| | | | llvm-svn: 91275
* Fix CMake makefilesDouglas Gregor2009-12-021-0/+1
| | | | llvm-svn: 90354
* Add MaxStackAlignment.cpp to CMakeJim Grosbach2009-12-021-0/+1
| | | | llvm-svn: 90337
* Split tail duplication into a separate pass. This is needed to avoidBob Wilson2009-11-261-0/+1
| | | | | | | | | running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. llvm-svn: 89904
* Fix CMake makefilesDouglas Gregor2009-11-041-0/+2
| | | | llvm-svn: 85994
* Add aggressive anti-dependence breaker. Currently it is not the default for ↵David Goodwin2009-10-261-0/+1
| | | | | | any target. Enable with -break-anti-dependencies=all. llvm-svn: 85145
* Break anti-dependence breaking out into its own class.David Goodwin2009-10-261-0/+1
| | | | llvm-svn: 85127
* second half of lazy liveness removal.Chris Lattner2009-10-071-1/+0
| | | | llvm-svn: 83500
* Remove simple regalloc. It has bit rotted.Evan Cheng2009-09-171-1/+0
| | | | llvm-svn: 82127
* updated lib/CodeGen/CMakeLists.txt to unbreak cmake build after r82018Xerxes Ranby2009-09-161-0/+1
| | | | llvm-svn: 82038
* fix a gone file.Chris Lattner2009-08-231-1/+0
| | | | llvm-svn: 79802
* Update CMakeLists.Benjamin Kramer2009-08-171-0/+1
| | | | llvm-svn: 79264
* Post RA scheduler changes. Introduce a hazard recognizer that uses the ↵David Goodwin2009-08-101-0/+1
| | | | | | target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets. llvm-svn: 78563
* Update CMake.Daniel Dunbar2009-08-071-1/+0
| | | | llvm-svn: 78367
* Update CMake files.Ted Kremenek2009-08-031-0/+1
| | | | llvm-svn: 78020
OpenPOWER on IntegriCloud