summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
...
* Update CMake files.Ted Kremenek2009-07-311-0/+2
| | | | llvm-svn: 77709
* Fix cmake build.Benjamin Kramer2009-07-311-1/+0
| | | | llvm-svn: 77649
* Fix the cmake build - patch by Xerxes Rånby.Duncan Sands2009-07-061-0/+1
| | | | llvm-svn: 74825
* CMake build fixes, from Xerxes RanbyDouglas Gregor2009-07-021-1/+1
| | | | llvm-svn: 74720
* Fix linking of llvm-ld and lli with CMake, from Xerxes RånbyDouglas Gregor2009-06-261-0/+2
| | | | llvm-svn: 74285
* CMake: Updated list of files on lib/CodeGen/CMakeLists.txt.Oscar Fuentes2009-06-101-0/+1
| | | | llvm-svn: 73174
* Move ELFCodeEmiter stuff to new filesBruno Cardoso Lopes2009-06-031-0/+1
| | | | llvm-svn: 72785
* CMake: Added missing source file to lib/CodeGen/CMakeLists.txt.Oscar Fuentes2009-06-031-0/+1
| | | | llvm-svn: 72775
* Add a new codegen pass that normalizes dwarf exception handlingDuncan Sands2009-05-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code in preparation for code generation. The main thing it does is handle the case when eh.exception calls (and, in a future patch, eh.selector calls) are far away from landing pads. Right now in practice you only find eh.exception calls close to landing pads: either in a landing pad (the common case) or in a landing pad successor, due to loop passes shifting them about. However future exception handling improvements will result in calls far from landing pads: (1) Inlining of rewinds. Consider the following case: In function @f: ... invoke @g to label %normal unwind label %unwinds ... unwinds: %ex = call i8* @llvm.eh.exception() ... In function @g: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... "rethrow exception" Now inline @g into @f. Currently this is turned into: In function @f: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... invoke "rethrow exception" to label %normal unwind label %unwinds unwinds: %ex = call i8* @llvm.eh.exception() ... However we would like to simplify invoke of "rethrow exception" into a branch to the %unwinds label. Then %unwinds is no longer a landing pad, and the eh.exception call there is then far away from any landing pads. (2) Using the unwind instruction for cleanups. It would be nice to have codegen handle the following case: invoke @something to label %continue unwind label %run_cleanups ... handler: ... perform cleanups ... unwind This requires turning "unwind" into a library call, which necessarily takes a pointer to the exception as an argument (this patch also does this unwind lowering). But that means you are using eh.exception again far from a landing pad. (3) Bugpoint simplifications. When bugpoint is simplifying exception handling code it often generates eh.exception calls far from a landing pad, which then causes codegen to assert. Bugpoint then latches on to this assertion and loses sight of the original problem. Note that it is currently rare for this pass to actually do anything. And in fact it normally shouldn't do anything at all given the code coming out of llvm-gcc! But it does fire a few times in the testsuite. As far as I can see this is almost always due to the LoopStrengthReduce codegen pass introducing pointless loop preheader blocks which are landing pads and only contain a branch to another block. This other block contains an eh.exception call. So probably by tweaking LoopStrengthReduce a bit this can be avoided. llvm-svn: 72276
* Fix cmake builds.Mike Stump2009-05-191-0/+1
| | | | llvm-svn: 72078
* Pass to verify generated machine code.Jakob Stoklund Olesen2009-05-161-0/+1
| | | | | | | | | | | | | | | | | | | The following is checked: * Operand counts: All explicit operands must be present. * Register classes: All physical and virtual register operands must be compatible with the register class required by the instruction descriptor. * Register live intervals: Registers must be defined only once, and must be defined before use. The machine code verifier is enabled with the command-line option '-verify-machineinstrs', or by defining the environment variable LLVM_VERIFY_MACHINEINSTRS to the name of a file that will receive all the verifier errors. llvm-svn: 71918
* add ShrinkWrapping.cppChris Lattner2009-05-131-0/+1
| | | | llvm-svn: 71645
* Rename "loop aligner" pass to "code placement optimization" pass.Evan Cheng2009-05-071-1/+1
| | | | llvm-svn: 71150
* CMake: Updated lib/CodeGen/CMakeLists.txt.Oscar Fuentes2009-05-061-1/+1
| | | | llvm-svn: 71085
* updateGabor Greif2009-03-111-0/+1
| | | | llvm-svn: 66733
* Experimental post-pass scheduling support. Post-pass schedulingDan Gohman2008-11-191-0/+5
| | | | | | | | | | | | | | | | | is currently off by default, and can be enabled with -disable-post-RA-scheduler=false. This doesn't have a significant impact on most code yet because it doesn't yet do anything to address anti-dependencies and it doesn't attempt to disambiguate memory references. Also, several popular targets don't have pipeline descriptions yet. The majority of the changes here are splitting the SelectionDAG-specific code out of ScheduleDAG, so that ScheduleDAG can be moved to libLLVMCodeGen.a. The interface between ScheduleDAG-using code and the rest of the scheduling code is somewhat rough and will evolve. llvm-svn: 59676
* CMake: Updated list of source files.Oscar Fuentes2008-11-041-0/+1
| | | | llvm-svn: 58676
* CMake: updated lib/CodeGen/CMakeLists.txtOscar Fuentes2008-10-211-0/+1
| | | | llvm-svn: 57869
* CMake: Reflected changes on source file structure. New plugin supportOscar Fuentes2008-10-041-0/+2
| | | | | | for llvmc2 incomplete. llvm-svn: 57076
* Initial support for the CMake build system.Oscar Fuentes2008-09-221-0/+48
llvm-svn: 56419
OpenPOWER on IntegriCloud