summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Remove some overzealous checks that were rejectingDale Johannesen2008-10-101-12/+8
| | | | | | | valid comments in inline assembly. gcc.target/i386/20011009-1.c llvm-svn: 57365
* Added missing print functions that take a raw_ostreamMon P Wang2008-10-101-2/+11
| | | | llvm-svn: 57339
* Add a "loses information" return value to APFloat::convertDale Johannesen2008-10-093-14/+26
| | | | | | | and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. llvm-svn: 57329
* Rename APFloat::convertToAPInt to bitcastToAPInt toDale Johannesen2008-10-095-16/+16
| | | | | | | make it clearer what the function does. No functional change. llvm-svn: 57325
* Align EH tables before label is emitted, not after,Dale Johannesen2008-10-081-1/+1
| | | | | | thus aligning the label. llvm-svn: 57310
* Fix the case where an instruction is not properly marked as using all ↵Owen Anderson2008-10-081-1/+19
| | | | | | registers that alias its inputs. llvm-svn: 57286
* Remove -disable-fast-isel. Use cl::boolOrDefault with -fast-iselDan Gohman2008-10-071-8/+3
| | | | | | | | | | instead. So now: -fast-isel or -fast-isel=true enable fast-isel, and -fast-isel=false disables it. Fast-isel is also on by default with -fast, and off by default otherwise. llvm-svn: 57270
* Avoid emitting redundant materializations of integer constantsDan Gohman2008-10-071-3/+4
| | | | | | | for things like null pointers, which at this level aren't different from regular integer constants. llvm-svn: 57265
* Add an option to enable StrongPHIElimination, for ease of testing.Owen Anderson2008-10-074-4/+20
| | | | llvm-svn: 57259
* Use Dan's supperior checkAndrew Lenharth2008-10-071-13/+9
| | | | llvm-svn: 57255
* No need for |=Andrew Lenharth2008-10-071-3/+3
| | | | llvm-svn: 57249
* Use ADDC if it is valid at any smaller size. Do it right this timeAndrew Lenharth2008-10-071-3/+6
| | | | llvm-svn: 57248
* Use ADDC if it is valid at any smaller size. fixes ↵Andrew Lenharth2008-10-071-3/+18
| | | | | | test/Codegen/Generic/i128-addsub.ll on x86 llvm-svn: 57247
* Expand arith on machines without carry flagsAndrew Lenharth2008-10-071-9/+33
| | | | llvm-svn: 57243
* Correctly handle calls with no return values. This fixesDan Gohman2008-10-071-1/+1
| | | | | | 2006-01-23-UnionInit on x86-64 when inlining is not enabled. llvm-svn: 57223
* Don't dereference the end() iterator. Thanks toDan Gohman2008-10-061-1/+1
| | | | | | ENABLE_EXPENSIVE_CHECKS for finding this. llvm-svn: 57181
* Remove unncessary isDeclaration() checks.Devang Patel2008-10-061-1/+1
| | | | llvm-svn: 57179
* reorder #include order, patch by Kenneth Boyd!Chris Lattner2008-10-061-4/+2
| | | | llvm-svn: 57148
* Add #include to get alloca, patch by Kenneth Boyd!Chris Lattner2008-10-061-0/+1
| | | | llvm-svn: 57147
* wrap some long lines and expand i32 mul's to libcalls, inspired by aChris Lattner2008-10-041-4/+12
| | | | | | patch by Mikael Lepisto! llvm-svn: 57077
* CMake: Reflected changes on source file structure. New plugin supportOscar Fuentes2008-10-041-0/+2
| | | | | | for llvmc2 incomplete. llvm-svn: 57076
* Fix compilation error on MSVC.Argyrios Kyrtzidis2008-10-041-1/+1
| | | | llvm-svn: 57046
* Fix fast-isel's handling of atomic instructions. They mayDan Gohman2008-10-041-1/+4
| | | | | | | | expand to multiple basic blocks, in which case fast-isel needs to informed of which block to use as it resumes inserting instructions. llvm-svn: 57040
* Fix a bug in the local allocator's liveness computation where itDan Gohman2008-10-041-3/+5
| | | | | | | | was setting kill flags on tied uses in two-address instructions. The kill flags were causing the allocator to think it could allocate the use and its tied def in different registers. llvm-svn: 57039
* Pass MemOperand through for 64-bit atomics on 32-bit,Dale Johannesen2008-10-031-5/+18
| | | | | | | incidentally making the case where the memop is a pointer deref work. Fix cmp-and-swap regression. llvm-svn: 57027
* Use -1ULL instead of uint64_t(-1), at Anton's suggestion.Dan Gohman2008-10-031-2/+2
| | | | llvm-svn: 57021
* Fix typos pointed out by Duncan. Also untabify these files.Evan Cheng2008-10-033-15/+15
| | | | llvm-svn: 57018
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-0324-132/+132
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* The result of getSetCCResultType (eg: i32) may be largerDuncan Sands2008-10-031-4/+8
| | | | | | | | | than the type an i1 is promoted to (eg: i8). Account for this. Noticed by Tilmann Scheller on CellSPU; he will hopefully take care of fixing this in LegalizeDAG and adding a testcase! llvm-svn: 56997
* Implement fast-isel support for zero-extending from i1.Dan Gohman2008-10-031-1/+12
| | | | | | | It turns out that this is a fairly common operation, and it's easy enough to handle. llvm-svn: 56990
* Optimize conditional branches in X86FastISel. This replacesDan Gohman2008-10-021-10/+18
| | | | | | | | | | | sequences like this: sete %al testb %al, %al jne LBB11_1 with this: je LBB11_1 llvm-svn: 56969
* Add a new MachineBasicBlock utility function, isLayoutSuccessor, thatDan Gohman2008-10-021-0/+5
| | | | | | | can be used when deciding if a block can transfer control to another via a fall-through instead of a branch. llvm-svn: 56968
* fix build gcc 4.3Andrew Lenharth2008-10-021-0/+1
| | | | llvm-svn: 56965
* Use a multimap rather than a map for holding the list of copies to insert, ↵Owen Anderson2008-10-021-12/+19
| | | | | | | | | | so we don't lose copies when two of them have the same source. I don't know what I was thinking when I wrote this originally. Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism guarantees need to be present. llvm-svn: 56964
* Handle some 64-bit atomics on x86-32, some of the time.Dale Johannesen2008-10-021-11/+16
| | | | llvm-svn: 56963
* A Partitioned Boolean Quadratic Programming (PBQP) based register allocator.Evan Cheng2008-10-023-0/+2208
| | | | | | Contributed by Lang Hames. llvm-svn: 56959
* Fix a think-o in isSafeToMove. This fixes it from thinking thatDan Gohman2008-10-021-1/+1
| | | | | | volatile memory references are safe to move. llvm-svn: 56948
* Remove OptimizeForSize global. Use function attribute optsize.Devang Patel2008-10-012-1/+5
| | | | llvm-svn: 56937
* Enable FastISel by default (on x86 and x86-64) with the -fast option.Dan Gohman2008-10-011-4/+16
| | | | llvm-svn: 56930
* Make some implicit conversions explicit, to avoid compiler warnings.Dan Gohman2008-10-011-2/+2
| | | | llvm-svn: 56927
* Fold trivial two-operand tokenfactors where the operands are equalDan Gohman2008-10-011-0/+1
| | | | | | immediately. llvm-svn: 56921
* Fix typos in comments.Dan Gohman2008-10-011-2/+2
| | | | llvm-svn: 56919
* Implement the -fno-builtin option in the front-end, not in the back-end.Bill Wendling2008-10-011-6/+1
| | | | llvm-svn: 56900
* Mark merged-in VNInfo's as being PHIKilled.Owen Anderson2008-09-301-0/+5
| | | | llvm-svn: 56893
* Fix a simple error in renumbering kill markaers, that took an inordinant ↵Owen Anderson2008-09-301-1/+1
| | | | | | amount of time to track down. llvm-svn: 56889
* - Initialize "--no-builtin" to "false".Bill Wendling2008-09-301-1/+1
| | | | | | - Testcase for r56885. llvm-svn: 56886
* Add the new `-no-builtin' flag. This flag is meant to mimic the GCCBill Wendling2008-09-301-1/+7
| | | | | | | | | `-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero" instead of "__bzero" on Darwin10+. This arguably violates the meaning of this flag, but is currently sufficient. The meaning of this flag should become more specific over time. llvm-svn: 56885
* Move the primary fast-isel top-level comments to FastISel.cpp, whereDan Gohman2008-09-301-0/+28
| | | | | | they'll be a little more visible. Also, update and reword them a bit. llvm-svn: 56877
* Optimize SelectionDAG's AssignTopologicalOrder even further.Dan Gohman2008-09-302-31/+66
| | | | | | | | | | | | | | | | | | | Completely eliminate the TopOrder std::vector. Instead, sort the AllNodes list in place. This also eliminates the need to call AllNodes.size(), a linear-time operation, before performing the sort. Also, eliminate the Sources temporary std::vector, since it essentially duplicates the sorted result as it is being built. This also changes the direction of the topological sort from bottom-up to top-down. The AllNodes list starts out in roughly top-down order, so this reduces the amount of reordering needed. Top-down is also more convenient for Legalize, and ISel needed only minor adjustments. llvm-svn: 56867
* Re-apply 56835 along with header file changes.Evan Cheng2008-09-303-8/+20
| | | | llvm-svn: 56848
OpenPOWER on IntegriCloud