Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add bswap, rotl, and rotr nodes | Nate Begeman | 2006-01-11 | 3 | -2/+65 |
| | | | | | | | | | Add dag combiner code to recognize rotl, rotr Add ppc code to match rotl Targets should add rotl/rotr patterns if they have them llvm-svn: 25222 | ||||
* | silence a warning | Chris Lattner | 2006-01-10 | 1 | -1/+2 |
| | | | | llvm-svn: 25184 | ||||
* | Added selection DAG support for the extractelement operation. | Robert Bocchino | 2006-01-10 | 1 | -0/+1 |
| | | | | llvm-svn: 25179 | ||||
* | Minor cleanup, no functionality change for current targets | Chris Lattner | 2006-01-10 | 1 | -1/+2 |
| | | | | llvm-svn: 25173 | ||||
* | Fix an exponential function in libcall insertion to not be exponential. :) | Chris Lattner | 2006-01-09 | 1 | -6/+10 |
| | | | | llvm-svn: 25165 | ||||
* | * Allow custom lowering of ADD_PARTS, SUB_PARTS, SHL_PARTS, SRA_PARTS, | Evan Cheng | 2006-01-09 | 1 | -11/+46 |
| | | | | | | | and SRL_PARTS. * Fix a bug that caused *_PARTS to be custom lowered twice. llvm-svn: 25157 | ||||
* | New getNode() variants. | Evan Cheng | 2006-01-09 | 1 | -14/+0 |
| | | | | llvm-svn: 25156 | ||||
* | Unbreak the build :( | Chris Lattner | 2006-01-06 | 1 | -2/+2 |
| | | | | llvm-svn: 25124 | ||||
* | Revert the previous check-in. Leave shl x, 1 along for target to deal with. | Evan Cheng | 2006-01-06 | 1 | -3/+0 |
| | | | | llvm-svn: 25121 | ||||
* | fold (shl x, 1) -> (add x, x) | Evan Cheng | 2006-01-06 | 1 | -0/+3 |
| | | | | llvm-svn: 25120 | ||||
* | Support for custom lowering of ISD::RET. | Evan Cheng | 2006-01-06 | 1 | -0/+16 |
| | | | | llvm-svn: 25116 | ||||
* | Added initial support for DEBUG_LABEL allowing debug specific labels to be | Jim Laskey | 2006-01-05 | 3 | -31/+57 |
| | | | | | | inserted in the code. llvm-svn: 25104 | ||||
* | Applied some recommend changes from sabre. The dominate one beginning "let the | Jim Laskey | 2006-01-04 | 5 | -94/+156 |
| | | | | | | | pass manager do it's thing." Fixes crash when compiling -g files and suppresses dwarf statements if no debug info is present. llvm-svn: 25100 | ||||
* | Add unique id to debug location for debug label use (work in progress.) | Jim Laskey | 2006-01-04 | 3 | -15/+24 |
| | | | | llvm-svn: 25096 | ||||
* | Add check for debug presence. | Jim Laskey | 2006-01-04 | 1 | -0/+4 |
| | | | | llvm-svn: 25095 | ||||
* | Tie dwarf generation to darwin assembler. | Jim Laskey | 2006-01-04 | 2 | -0/+96 |
| | | | | llvm-svn: 25093 | ||||
* | Moving MachineDebugInfo to module level location. | Jim Laskey | 2006-01-04 | 1 | -1/+1 |
| | | | | llvm-svn: 25090 | ||||
* | Change how MachineDebugInfo is fetched. | Jim Laskey | 2006-01-04 | 1 | -1/+1 |
| | | | | llvm-svn: 25089 | ||||
* | Extending MachineDebugInfo. | Jim Laskey | 2006-01-04 | 1 | -0/+90 |
| | | | | llvm-svn: 25086 | ||||
* | Add support for targets (like Alpha) that have terminator instructions which | Chris Lattner | 2006-01-04 | 1 | -5/+41 |
| | | | | | | | | | use virtual registers. We now allow the first instruction in a block of terminators to use virtual registers, and update phi elimination to correctly update livevar when eliminating phi's. This fixes a problem on a testcase Andrew sent me. llvm-svn: 25083 | ||||
* | Add an assertion, update DefInst even though no one uses it (dangling pointers | Chris Lattner | 2006-01-04 | 2 | -0/+5 |
| | | | | | | don't help anyone) llvm-svn: 25081 | ||||
* | Add a LiveVariables::VarInfo::dump method | Chris Lattner | 2006-01-04 | 1 | -0/+20 |
| | | | | llvm-svn: 25080 | ||||
* | Change a variable from being an iterator to a raw MachineInstr*, to make | Chris Lattner | 2006-01-03 | 1 | -12/+12 |
| | | | | | | GDB use tolerable llvm-svn: 25064 | ||||
* | Make sure to pass the offset into the new node, so that we don't silently | Nate Begeman | 2005-12-30 | 1 | -1/+1 |
| | | | | | | drop it on the floor. llvm-svn: 25044 | ||||
* | purity++ | Duraid Madina | 2005-12-29 | 1 | -0/+1 |
| | | | | llvm-svn: 25041 | ||||
* | add these so I can be less naughty | Duraid Madina | 2005-12-28 | 2 | -0/+2 |
| | | | | llvm-svn: 25034 | ||||
* | HB is *the* code janitor. | Duraid Madina | 2005-12-28 | 1 | -0/+1 |
| | | | | llvm-svn: 25031 | ||||
* | mixed-STL programs are big and nasty :( | Duraid Madina | 2005-12-28 | 1 | -0/+1 |
| | | | | llvm-svn: 25030 | ||||
* | allow custom lowering to return null for legal results | Andrew Lenharth | 2005-12-25 | 1 | -17/+15 |
| | | | | llvm-svn: 25007 | ||||
* | Support Custom lowering of a few more operations. | Andrew Lenharth | 2005-12-24 | 1 | -5/+31 |
| | | | | | | Alpha needs to custom lower *DIV and *REM llvm-svn: 25006 | ||||
* | Remove redundant debug locations. | Jim Laskey | 2005-12-23 | 1 | -0/+34 |
| | | | | llvm-svn: 24995 | ||||
* | unbreak the build :-/ | Chris Lattner | 2005-12-23 | 1 | -3/+3 |
| | | | | llvm-svn: 24992 | ||||
* | Allow custom lowering of LOAD, EXTLOAD, ZEXTLOAD, STORE, and TRUNCSTORE. Not | Evan Cheng | 2005-12-23 | 1 | -15/+84 |
| | | | | | | currently used. llvm-svn: 24988 | ||||
* | Simplify store(bitconv(x)) to store(x). This allows us to compile this: | Chris Lattner | 2005-12-23 | 1 | -0/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | void bar(double Y, double *X) { *X = Y; } to this: bar: save -96, %o6, %o6 st %i1, [%i2+4] st %i0, [%i2] restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i2] restore %g0, %g0, %g0 retl nop on sparcv8. llvm-svn: 24983 | ||||
* | fold (conv (load x)) -> (load (conv*)x). | Chris Lattner | 2005-12-23 | 1 | -0/+10 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to compile this: void foo(double); void bar(double *X) { foo(*X); } To this: bar: save -96, %o6, %o6 ld [%i0+4], %o1 ld [%i0], %o0 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 ldd [%i0], %f0 std %f0, [%i6+-8] ld [%i6+-4], %o1 ld [%i6+-8], %o0 call foo nop restore %g0, %g0, %g0 retl nop on SparcV8. llvm-svn: 24982 | ||||
* | Fold bitconv(bitconv(x)) -> x. We now compile this: | Chris Lattner | 2005-12-23 | 2 | -0/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | void foo(double); void bar(double X) { foo(X); } to this: bar: save -96, %o6, %o6 or %g0, %i0, %o0 or %g0, %i1, %o1 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -112, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i6+-16] ld [%i6+-12], %o1 ld [%i6+-16], %o0 call foo nop restore %g0, %g0, %g0 retl nop on V8. llvm-svn: 24981 | ||||
* | constant fold bits_convert in getNode and in the dag combiner for fp<->int | Chris Lattner | 2005-12-23 | 2 | -0/+37 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | conversions. This allows V8 to compiles this: void %test() { call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null ) ret void } into: test: save -96, %o6, %o6 sethi 0, %o3 sethi 1049088, %o2 sethi 1048576, %o1 sethi 1040384, %o0 or %g0, %o3, %o4 call test2 nop restore %g0, %g0, %g0 retl nop instead of: test: save -112, %o6, %o6 sethi 0, %o4 sethi 1049088, %l0 st %o4, [%i6+-12] st %l0, [%i6+-16] ld [%i6+-12], %o3 ld [%i6+-16], %o2 sethi 1048576, %o1 sethi 1040384, %o0 call test2 nop restore %g0, %g0, %g0 retl nop llvm-svn: 24980 | ||||
* | Fix a pasto | Chris Lattner | 2005-12-23 | 1 | -2/+3 |
| | | | | llvm-svn: 24973 | ||||
* | fix a thinko in the bit_convert handling code | Chris Lattner | 2005-12-23 | 1 | -2/+1 |
| | | | | llvm-svn: 24972 | ||||
* | add very simple support for the BIT_CONVERT node | Chris Lattner | 2005-12-23 | 2 | -2/+57 |
| | | | | llvm-svn: 24970 | ||||
* | remove dead code | Chris Lattner | 2005-12-22 | 2 | -7/+0 |
| | | | | llvm-svn: 24965 | ||||
* | The 81st column doesn't like code in it. | Chris Lattner | 2005-12-22 | 1 | -3/+4 |
| | | | | llvm-svn: 24943 | ||||
* | Add an eol at the end to shut gcc sup. | Reid Spencer | 2005-12-22 | 1 | -1/+1 |
| | | | | llvm-svn: 24926 | ||||
* | * Fix a GlobalAddress lowering bug. | Evan Cheng | 2005-12-21 | 1 | -1/+4 |
| | | | | | | * Teach DAG combiner about X86ISD::SETCC by adding a TargetLowering hook. llvm-svn: 24921 | ||||
* | Disengage DEBUG_LOC from non-PPC targets. | Jim Laskey | 2005-12-21 | 2 | -13/+17 |
| | | | | llvm-svn: 24919 | ||||
* | * Added support for X86 RET with an additional operand to specify number of | Evan Cheng | 2005-12-21 | 1 | -0/+10 |
| | | | | | | | bytes to pop off stack. * Added support for X86 SETCC. llvm-svn: 24917 | ||||
* | Start of Dwarf framework. | Jim Laskey | 2005-12-21 | 1 | -0/+15 |
| | | | | llvm-svn: 24914 | ||||
* | make sure to relegalize all cases | Chris Lattner | 2005-12-21 | 1 | -1/+1 |
| | | | | llvm-svn: 24911 | ||||
* | enable the gep isel opt | Chris Lattner | 2005-12-21 | 1 | -6/+0 |
| | | | | llvm-svn: 24910 | ||||
* | fix a bug I introduced that broke recursive expansion of nodes (e.g. ↵ | Chris Lattner | 2005-12-21 | 1 | -3/+6 |
| | | | | | | scalarizing vectors) llvm-svn: 24905 |