| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Fix UnitTests/2005-05-12-Int64ToFP.c with llc-beta. In particular, do not | Chris Lattner | 2006-09-19 | 1 | -7/+10 | 
| | | | | | | | allow it to go into an infinite loop, filling up the disk! llvm-svn: 30494 | ||||
| * | Fold extract_element(cst) to cst | Chris Lattner | 2006-09-19 | 1 | -2/+8 | 
| | | | | | llvm-svn: 30478 | ||||
| * | Minor speedup for legalize by avoiding some malloc traffic | Chris Lattner | 2006-09-19 | 1 | -0/+9 | 
| | | | | | llvm-svn: 30477 | ||||
| * | Fix a typo. | Evan Cheng | 2006-09-18 | 1 | -3/+2 | 
| | | | | | llvm-svn: 30474 | ||||
| * | Allow i32 UDIV, SDIV, UREM, SREM to be expanded into libcalls. | Evan Cheng | 2006-09-18 | 1 | -6/+30 | 
| | | | | | llvm-svn: 30470 | ||||
| * | oops | Andrew Lenharth | 2006-09-18 | 1 | -1/+0 | 
| | | | | | llvm-svn: 30462 | ||||
| * | absolute addresses must match pointer size | Andrew Lenharth | 2006-09-18 | 2 | -1/+2 | 
| | | | | | llvm-svn: 30461 | ||||
| * | Sort out mangled names for globals | Jim Laskey | 2006-09-18 | 1 | -13/+23 | 
| | | | | | llvm-svn: 30460 | ||||
| * | Oh yeah, this is needed too | Chris Lattner | 2006-09-16 | 1 | -3/+3 | 
| | | | | | llvm-svn: 30407 | ||||
| * | simplify control flow, no functionality change | Chris Lattner | 2006-09-16 | 1 | -6/+12 | 
| | | | | | llvm-svn: 30403 | ||||
| * | Allow custom expand of mul | Chris Lattner | 2006-09-16 | 1 | -0/+9 | 
| | | | | | llvm-svn: 30402 | ||||
| * | Keep track of the start of MBB's in a separate map from instructions. This | Chris Lattner | 2006-09-15 | 1 | -38/+45 | 
| | | | | | | | is faster and is needed for future improvements. llvm-svn: 30383 | ||||
| * | Fold (X & C1) | (Y & C2) -> (X|Y) & C3 when possible. | Chris Lattner | 2006-09-14 | 1 | -0/+20 | 
| | | | | | | | This implements CodeGen/X86/and-or-fold.ll llvm-svn: 30379 | ||||
| * | Split rotate matching code out to its own function. Make it stronger, by | Chris Lattner | 2006-09-14 | 1 | -53/+142 | 
| | | | | | | | matching things like ((x >> c1) & c2) | ((x << c3) & c4) to (rot x, c5) & c6 llvm-svn: 30376 | ||||
| * | Use getOffset() instead. | Evan Cheng | 2006-09-14 | 1 | -2/+2 | 
| | | | | | llvm-svn: 30327 | ||||
| * | Use MachineConstantPoolEntry getOffset() and getType() accessors. | Evan Cheng | 2006-09-14 | 1 | -13/+7 | 
| | | | | | llvm-svn: 30326 | ||||
| * | A MachineConstantPool may have mixed Constant* and MachineConstantPoolValue* ↵ | Evan Cheng | 2006-09-14 | 1 | -2/+8 | 
| | | | | | | | values. llvm-svn: 30316 | ||||
| * | If LSR went through a lot of trouble to put constants (e.g. the addr of a global | Chris Lattner | 2006-09-13 | 1 | -0/+9 | 
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in a specific BB, don't undo this!). This allows us to compile CodeGen/X86/loop-hoist.ll into: _foo: xorl %eax, %eax *** movl L_Arr$non_lazy_ptr, %ecx movl 4(%esp), %edx LBB1_1: #cond_true movl %eax, (%ecx,%eax,4) incl %eax cmpl %edx, %eax jne LBB1_1 #cond_true LBB1_2: #return ret instead of: _foo: xorl %eax, %eax movl 4(%esp), %ecx LBB1_1: #cond_true *** movl L_Arr$non_lazy_ptr, %edx movl %eax, (%edx,%eax,4) incl %eax cmpl %ecx, %eax jne LBB1_1 #cond_true LBB1_2: #return ret This was noticed in 464.h264ref. This doesn't usually affect PPC, but strikes X86 all the time. llvm-svn: 30290 | ||||
| * | Compile X << 1 (where X is a long-long) to: | Chris Lattner | 2006-09-13 | 1 | -7/+24 | 
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | addl %ecx, %ecx adcl %eax, %eax instead of: movl %ecx, %edx addl %edx, %edx shrl $31, %ecx addl %eax, %eax orl %ecx, %eax and to: addc r5, r5, r5 adde r4, r4, r4 instead of: slwi r2,r9,1 srwi r0,r11,31 slwi r3,r11,1 or r2,r0,r2 on PPC. llvm-svn: 30284 | ||||
| * | 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 | ||||

