summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Added support for machine specific constantpool values. These are useful forEvan Cheng2006-09-126-51/+152
| | | | | | representing expressions that can only be resolved at link time, etc. llvm-svn: 30278
* Behold, more work on relocations. Things are looking pretty good now.Nate Begeman2006-09-101-38/+106
| | | | llvm-svn: 30240
* This code was trying too hard. By eliminating redundant edges in the CFGChris Lattner2006-09-101-6/+3
| | | | | | | | | due to switch cases going to the same place, it make #pred != #phi entries, breaking live interval analysis. This fixes 458.sjeng on x86 with llc. llvm-svn: 30236
* Implement the fpowi now by lowering to a libcallChris Lattner2006-09-093-1/+16
| | | | llvm-svn: 30225
* Allow targets to custom lower expanded BIT_CONVERT'sChris Lattner2006-09-091-2/+15
| | | | llvm-svn: 30217
* First pass at supporting relocations. Relocations are written correctly toNate Begeman2006-09-081-43/+75
| | | | | | | the file now, however the relocated address is currently wrong. Fixing that will require some deep pondering. llvm-svn: 30207
* Non-allocatable physregs can be killed and dead, but don't treat them asChris Lattner2006-09-081-0/+6
| | | | | | safe for later allocation. This fixes McCat/18-imp with llc-beta. llvm-svn: 30204
* This fixes Benchmarks/Prolangs-C/unix-smailChris Lattner2006-09-081-0/+2
| | | | llvm-svn: 30198
* Fix a bunch of llc-beta failures on x86 yesterday. Don't allow selectionChris Lattner2006-09-081-17/+42
| | | | | | | of unallocatable registers, just because an alias is allocatable. We were picking registers like SIL just because ESI was being used. llvm-svn: 30197
* Make target asm info a property of the target machine.Jim Laskey2006-09-072-18/+20
| | | | llvm-svn: 30162
* Fix pasto that was breaking x86 tests.Evan Cheng2006-09-071-2/+2
| | | | llvm-svn: 30151
* Fix CodeGen/Generic/2006-09-06-SwitchLowering.ll, a bug where SDIsel insertedChris Lattner2006-09-071-15/+32
| | | | | | too many phi operands when lowering a switch to branches in some cases. llvm-svn: 30142
* Separate target specific asm properties from the asm printers.Jim Laskey2006-09-062-212/+169
| | | | llvm-svn: 30126
* Only call isUse/isDef on register operandsEvan Cheng2006-09-051-3/+3
| | | | llvm-svn: 30122
* Only call isUse/isDef on register operandsChris Lattner2006-09-052-13/+7
| | | | llvm-svn: 30118
* Don't call isDef on non-registersChris Lattner2006-09-051-1/+2
| | | | llvm-svn: 30117
* Change the default to 0, which means 'default'.Chris Lattner2006-09-051-1/+1
| | | | llvm-svn: 30114
* Completely eliminate def&use operands. Now a register operand is EITHER aChris Lattner2006-09-052-12/+12
| | | | | | def operand or a use operand. llvm-svn: 30109
* Fix a long-standing wart in the code generator: two-address instruction loweringChris Lattner2006-09-055-109/+99
| | | | | | | | | | | | | | | actually *removes* one of the operands, instead of just assigning both operands the same register. This make reasoning about instructions unnecessarily complex, because you need to know if you are before or after register allocation to match up operand #'s with the target description file. Changing this also gets rid of a bunch of hacky code in various places. This patch also includes changes to fold loads into cmp/test instructions in the X86 backend, along with a significant simplification to the X86 spill folding code. llvm-svn: 30108
* Correct fix for a crasher on functions with live in valuesChris Lattner2006-09-041-4/+6
| | | | llvm-svn: 30099
* Hack around a regression I introduced yesterdayChris Lattner2006-09-041-0/+3
| | | | llvm-svn: 30098
* forgot thisDuraid Madina2006-09-041-0/+2
| | | | llvm-svn: 30097
* add setJumpBufSize() and setJumpBufAlignment() to target-lowering.Duraid Madina2006-09-041-2/+2
| | | | | | | Call these from your backend to enjoy setjmp/longjmp goodness, see lib/Target/IA64/IA64ISelLowering.cpp for an example llvm-svn: 30095
* new fileChris Lattner2006-09-041-0/+154
| | | | llvm-svn: 30082
* Avoid beating on the mi2i map when we know the answer already.Chris Lattner2006-09-031-12/+19
| | | | llvm-svn: 30066
* minor speedupChris Lattner2006-09-031-3/+3
| | | | llvm-svn: 30065
* Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86.Chris Lattner2006-09-031-6/+11
| | | | | | | Just because an alias of a register is available, it doesn't mean that we can arbitrarily evict the register. llvm-svn: 30064
* When deleting a machine instruction, make sure to remove it from theChris Lattner2006-09-031-1/+4
| | | | | | livevariables information. This fixes several regalloc=local failures on x86 llvm-svn: 30062
* Move two methods out of line, make them work when the record for a machineChris Lattner2006-09-031-0/+36
| | | | | | instruction includes physregs. llvm-svn: 30061
* improve compat with certain versions of GCC (on cygwin?)Chris Lattner2006-09-021-1/+1
| | | | llvm-svn: 30054
* Iteration is required for some cases, even if they don't occur in crafty.Chris Lattner2006-09-021-13/+24
| | | | | | Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll llvm-svn: 30050
* When joining two intervals where the RHS is really simple, use a light-weightChris Lattner2006-09-022-11/+172
| | | | | | method for joining the live ranges instead of the fully-general one. llvm-svn: 30049
* Allow legalizer to expand ISD::MUL using only MULHS in the rare case that isEvan Cheng2006-09-011-6/+13
| | | | | | possible and the target only supports MULHS. llvm-svn: 30022
* Corrections.Jim Laskey2006-09-011-4/+4
| | | | llvm-svn: 30021
* Pull some code out of a hot recursive function because the common case doesn'tChris Lattner2006-09-011-6/+19
| | | | | | need recursion. llvm-svn: 30015
* Reserve space in the ValueNumberInfo vector. This speeds up live intervalChris Lattner2006-09-011-10/+10
| | | | | | | | analysis 16% on crafty. Wrap long lines. llvm-svn: 30012
* Iterative coallescing doesn't buy us anything (we get identical results onChris Lattner2006-09-011-24/+4
| | | | | | crafty with and without it). Removing it speeds up live intervals 6%. llvm-svn: 30010
* DAG combiner fix for rotates. Previously the outer-most condition checksEvan Cheng2006-08-311-27/+44
| | | | | | | for ROTL availability. This prevents it from forming ROTR for targets that has ROTR only. llvm-svn: 29997
* Add a special case that speeds up coallescing a bit, but not enough.Chris Lattner2006-08-311-51/+107
| | | | llvm-svn: 29996
* Delete copies as they are coallesced instead of waiting until the end.Chris Lattner2006-08-311-0/+4
| | | | llvm-svn: 29995
* avoid calling the virtual isMoveInstr method endlessly by caching its results.Chris Lattner2006-08-312-75/+73
| | | | llvm-svn: 29994
* Fix a compiler crash bootstrapping llvm-gcc.Chris Lattner2006-08-301-2/+6
| | | | llvm-svn: 29989
* Teach the coallescer to coallesce live intervals joined by an arbitraryChris Lattner2006-08-292-155/+249
| | | | | | | | number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coallsced. Among other things, this fixes CodeGen/X86/shift-coalesce.ll and PR687. llvm-svn: 29968
* Handle callee saved registers in dwarf frame info (lead up to exceptionJim Laskey2006-08-291-9/+35
| | | | | | handling.) llvm-svn: 29954
* Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make ↵Evan Cheng2006-08-292-31/+3
| | | | | | it a static method of SelectionDAG. llvm-svn: 29951
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.Chris Lattner2006-08-272-2/+2
| | | | llvm-svn: 29921
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-2715-15/+15
| | | | llvm-svn: 29911
* typo fixChris Lattner2006-08-271-3/+4
| | | | llvm-svn: 29910
* Eliminate SelectNodeTo() and getTargetNode() variants which take more thanEvan Cheng2006-08-271-254/+12
| | | | | | | 3 SDOperand operands. They are replaced by versions which take an array of SDOperand and the number of operands. llvm-svn: 29905
OpenPOWER on IntegriCloud