Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Added support for machine specific constantpool values. These are useful for | Evan Cheng | 2006-09-12 | 6 | -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 Begeman | 2006-09-10 | 1 | -38/+106 |
| | | | | llvm-svn: 30240 | ||||
* | This code was trying too hard. By eliminating redundant edges in the CFG | Chris Lattner | 2006-09-10 | 1 | -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 libcall | Chris Lattner | 2006-09-09 | 3 | -1/+16 |
| | | | | llvm-svn: 30225 | ||||
* | Allow targets to custom lower expanded BIT_CONVERT's | Chris Lattner | 2006-09-09 | 1 | -2/+15 |
| | | | | llvm-svn: 30217 | ||||
* | First pass at supporting relocations. Relocations are written correctly to | Nate Begeman | 2006-09-08 | 1 | -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 as | Chris Lattner | 2006-09-08 | 1 | -0/+6 |
| | | | | | | safe for later allocation. This fixes McCat/18-imp with llc-beta. llvm-svn: 30204 | ||||
* | This fixes Benchmarks/Prolangs-C/unix-smail | Chris Lattner | 2006-09-08 | 1 | -0/+2 |
| | | | | llvm-svn: 30198 | ||||
* | Fix a bunch of llc-beta failures on x86 yesterday. Don't allow selection | Chris Lattner | 2006-09-08 | 1 | -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 Laskey | 2006-09-07 | 2 | -18/+20 |
| | | | | llvm-svn: 30162 | ||||
* | Fix pasto that was breaking x86 tests. | Evan Cheng | 2006-09-07 | 1 | -2/+2 |
| | | | | llvm-svn: 30151 | ||||
* | Fix CodeGen/Generic/2006-09-06-SwitchLowering.ll, a bug where SDIsel inserted | Chris Lattner | 2006-09-07 | 1 | -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 Laskey | 2006-09-06 | 2 | -212/+169 |
| | | | | llvm-svn: 30126 | ||||
* | Only call isUse/isDef on register operands | Evan Cheng | 2006-09-05 | 1 | -3/+3 |
| | | | | llvm-svn: 30122 | ||||
* | Only call isUse/isDef on register operands | Chris Lattner | 2006-09-05 | 2 | -13/+7 |
| | | | | llvm-svn: 30118 | ||||
* | Don't call isDef on non-registers | Chris Lattner | 2006-09-05 | 1 | -1/+2 |
| | | | | llvm-svn: 30117 | ||||
* | Change the default to 0, which means 'default'. | Chris Lattner | 2006-09-05 | 1 | -1/+1 |
| | | | | llvm-svn: 30114 | ||||
* | Completely eliminate def&use operands. Now a register operand is EITHER a | Chris Lattner | 2006-09-05 | 2 | -12/+12 |
| | | | | | | def operand or a use operand. llvm-svn: 30109 | ||||
* | Fix a long-standing wart in the code generator: two-address instruction lowering | Chris Lattner | 2006-09-05 | 5 | -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 values | Chris Lattner | 2006-09-04 | 1 | -4/+6 |
| | | | | llvm-svn: 30099 | ||||
* | Hack around a regression I introduced yesterday | Chris Lattner | 2006-09-04 | 1 | -0/+3 |
| | | | | llvm-svn: 30098 | ||||
* | forgot this | Duraid Madina | 2006-09-04 | 1 | -0/+2 |
| | | | | llvm-svn: 30097 | ||||
* | add setJumpBufSize() and setJumpBufAlignment() to target-lowering. | Duraid Madina | 2006-09-04 | 1 | -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 file | Chris Lattner | 2006-09-04 | 1 | -0/+154 |
| | | | | llvm-svn: 30082 | ||||
* | Avoid beating on the mi2i map when we know the answer already. | Chris Lattner | 2006-09-03 | 1 | -12/+19 |
| | | | | llvm-svn: 30066 | ||||
* | minor speedup | Chris Lattner | 2006-09-03 | 1 | -3/+3 |
| | | | | llvm-svn: 30065 | ||||
* | Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86. | Chris Lattner | 2006-09-03 | 1 | -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 the | Chris Lattner | 2006-09-03 | 1 | -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 machine | Chris Lattner | 2006-09-03 | 1 | -0/+36 |
| | | | | | | instruction includes physregs. llvm-svn: 30061 | ||||
* | improve compat with certain versions of GCC (on cygwin?) | Chris Lattner | 2006-09-02 | 1 | -1/+1 |
| | | | | llvm-svn: 30054 | ||||
* | Iteration is required for some cases, even if they don't occur in crafty. | Chris Lattner | 2006-09-02 | 1 | -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-weight | Chris Lattner | 2006-09-02 | 2 | -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 is | Evan Cheng | 2006-09-01 | 1 | -6/+13 |
| | | | | | | possible and the target only supports MULHS. llvm-svn: 30022 | ||||
* | Corrections. | Jim Laskey | 2006-09-01 | 1 | -4/+4 |
| | | | | llvm-svn: 30021 | ||||
* | Pull some code out of a hot recursive function because the common case doesn't | Chris Lattner | 2006-09-01 | 1 | -6/+19 |
| | | | | | | need recursion. llvm-svn: 30015 | ||||
* | Reserve space in the ValueNumberInfo vector. This speeds up live interval | Chris Lattner | 2006-09-01 | 1 | -10/+10 |
| | | | | | | | | analysis 16% on crafty. Wrap long lines. llvm-svn: 30012 | ||||
* | Iterative coallescing doesn't buy us anything (we get identical results on | Chris Lattner | 2006-09-01 | 1 | -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 checks | Evan Cheng | 2006-08-31 | 1 | -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 Lattner | 2006-08-31 | 1 | -51/+107 |
| | | | | llvm-svn: 29996 | ||||
* | Delete copies as they are coallesced instead of waiting until the end. | Chris Lattner | 2006-08-31 | 1 | -0/+4 |
| | | | | llvm-svn: 29995 | ||||
* | avoid calling the virtual isMoveInstr method endlessly by caching its results. | Chris Lattner | 2006-08-31 | 2 | -75/+73 |
| | | | | llvm-svn: 29994 | ||||
* | Fix a compiler crash bootstrapping llvm-gcc. | Chris Lattner | 2006-08-30 | 1 | -2/+6 |
| | | | | llvm-svn: 29989 | ||||
* | Teach the coallescer to coallesce live intervals joined by an arbitrary | Chris Lattner | 2006-08-29 | 2 | -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 exception | Jim Laskey | 2006-08-29 | 1 | -9/+35 |
| | | | | | | handling.) llvm-svn: 29954 | ||||
* | Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make ↵ | Evan Cheng | 2006-08-29 | 2 | -31/+3 |
| | | | | | | it a static method of SelectionDAG. llvm-svn: 29951 | ||||
* | eliminate RegisterOpt. It does the same thing as RegisterPass. | Chris Lattner | 2006-08-27 | 1 | -1/+1 |
| | | | | llvm-svn: 29925 | ||||
* | Eliminate RegisterAnalysis. RegisterPass now does all that is necessary. | Chris Lattner | 2006-08-27 | 2 | -2/+2 |
| | | | | llvm-svn: 29921 | ||||
* | s|llvm/Support/Visibility.h|llvm/Support/Compiler.h| | Chris Lattner | 2006-08-27 | 15 | -15/+15 |
| | | | | llvm-svn: 29911 | ||||
* | typo fix | Chris Lattner | 2006-08-27 | 1 | -3/+4 |
| | | | | llvm-svn: 29910 | ||||
* | Eliminate SelectNodeTo() and getTargetNode() variants which take more than | Evan Cheng | 2006-08-27 | 1 | -254/+12 |
| | | | | | | | 3 SDOperand operands. They are replaced by versions which take an array of SDOperand and the number of operands. llvm-svn: 29905 |