summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Unbreak the build :(Chris Lattner2006-01-061-2/+2
| | | | llvm-svn: 25124
* Revert the previous check-in. Leave shl x, 1 along for target to deal with.Evan Cheng2006-01-061-3/+0
| | | | llvm-svn: 25121
* fold (shl x, 1) -> (add x, x)Evan Cheng2006-01-061-0/+3
| | | | llvm-svn: 25120
* Support for custom lowering of ISD::RET.Evan Cheng2006-01-061-0/+16
| | | | llvm-svn: 25116
* Added initial support for DEBUG_LABEL allowing debug specific labels to beJim Laskey2006-01-053-31/+57
| | | | | | inserted in the code. llvm-svn: 25104
* Applied some recommend changes from sabre. The dominate one beginning "let theJim Laskey2006-01-045-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 Laskey2006-01-043-15/+24
| | | | llvm-svn: 25096
* Add check for debug presence.Jim Laskey2006-01-041-0/+4
| | | | llvm-svn: 25095
* Tie dwarf generation to darwin assembler.Jim Laskey2006-01-042-0/+96
| | | | llvm-svn: 25093
* Moving MachineDebugInfo to module level location.Jim Laskey2006-01-041-1/+1
| | | | llvm-svn: 25090
* Change how MachineDebugInfo is fetched.Jim Laskey2006-01-041-1/+1
| | | | llvm-svn: 25089
* Extending MachineDebugInfo.Jim Laskey2006-01-041-0/+90
| | | | llvm-svn: 25086
* Add support for targets (like Alpha) that have terminator instructions whichChris Lattner2006-01-041-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 pointersChris Lattner2006-01-042-0/+5
| | | | | | don't help anyone) llvm-svn: 25081
* Add a LiveVariables::VarInfo::dump methodChris Lattner2006-01-041-0/+20
| | | | llvm-svn: 25080
* Change a variable from being an iterator to a raw MachineInstr*, to makeChris Lattner2006-01-031-12/+12
| | | | | | GDB use tolerable llvm-svn: 25064
* Make sure to pass the offset into the new node, so that we don't silentlyNate Begeman2005-12-301-1/+1
| | | | | | drop it on the floor. llvm-svn: 25044
* purity++Duraid Madina2005-12-291-0/+1
| | | | llvm-svn: 25041
* add these so I can be less naughtyDuraid Madina2005-12-282-0/+2
| | | | llvm-svn: 25034
* HB is *the* code janitor.Duraid Madina2005-12-281-0/+1
| | | | llvm-svn: 25031
* mixed-STL programs are big and nasty :(Duraid Madina2005-12-281-0/+1
| | | | llvm-svn: 25030
* allow custom lowering to return null for legal resultsAndrew Lenharth2005-12-251-17/+15
| | | | llvm-svn: 25007
* Support Custom lowering of a few more operations.Andrew Lenharth2005-12-241-5/+31
| | | | | | Alpha needs to custom lower *DIV and *REM llvm-svn: 25006
* Remove redundant debug locations.Jim Laskey2005-12-231-0/+34
| | | | llvm-svn: 24995
* unbreak the build :-/Chris Lattner2005-12-231-3/+3
| | | | llvm-svn: 24992
* Allow custom lowering of LOAD, EXTLOAD, ZEXTLOAD, STORE, and TRUNCSTORE. NotEvan Cheng2005-12-231-15/+84
| | | | | | currently used. llvm-svn: 24988
* Simplify store(bitconv(x)) to store(x). This allows us to compile this:Chris Lattner2005-12-231-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 Lattner2005-12-231-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 Lattner2005-12-232-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<->intChris Lattner2005-12-232-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 pastoChris Lattner2005-12-231-2/+3
| | | | llvm-svn: 24973
* fix a thinko in the bit_convert handling codeChris Lattner2005-12-231-2/+1
| | | | llvm-svn: 24972
* add very simple support for the BIT_CONVERT nodeChris Lattner2005-12-232-2/+57
| | | | llvm-svn: 24970
* remove dead codeChris Lattner2005-12-222-7/+0
| | | | llvm-svn: 24965
* The 81st column doesn't like code in it.Chris Lattner2005-12-221-3/+4
| | | | llvm-svn: 24943
* Add an eol at the end to shut gcc sup.Reid Spencer2005-12-221-1/+1
| | | | llvm-svn: 24926
* * Fix a GlobalAddress lowering bug.Evan Cheng2005-12-211-1/+4
| | | | | | * Teach DAG combiner about X86ISD::SETCC by adding a TargetLowering hook. llvm-svn: 24921
* Disengage DEBUG_LOC from non-PPC targets.Jim Laskey2005-12-212-13/+17
| | | | llvm-svn: 24919
* * Added support for X86 RET with an additional operand to specify number ofEvan Cheng2005-12-211-0/+10
| | | | | | | bytes to pop off stack. * Added support for X86 SETCC. llvm-svn: 24917
* Start of Dwarf framework.Jim Laskey2005-12-211-0/+15
| | | | llvm-svn: 24914
* make sure to relegalize all casesChris Lattner2005-12-211-1/+1
| | | | llvm-svn: 24911
* enable the gep isel optChris Lattner2005-12-211-6/+0
| | | | llvm-svn: 24910
* fix a bug I introduced that broke recursive expansion of nodes (e.g. ↵Chris Lattner2005-12-211-3/+6
| | | | | | scalarizing vectors) llvm-svn: 24905
* Lower ConstantAggregateZero into zerosChris Lattner2005-12-211-7/+20
| | | | llvm-svn: 24890
* Don't emit a null terminator, nor anything after it, to the ctor/dtor listChris Lattner2005-12-211-1/+4
| | | | llvm-svn: 24887
* Added a hook to print out names of target specific DAG nodes.Evan Cheng2005-12-201-5/+8
| | | | llvm-svn: 24877
* Fix a nasty latent bug in the legalizer that was triggered by my patchChris Lattner2005-12-201-22/+30
| | | | | | | | | | | last night, breaking crafty and twolf. Make sure that the newly found legal nodes are themselves not re-legalized until the next iteration. Also, since this functionality exists now, we can reduce number of legalizer iterations by depending on this behavior instead of having to misuse 'do another iteration' to get the same effect. llvm-svn: 24875
* X86 conditional branch support.Evan Cheng2005-12-191-0/+10
| | | | llvm-svn: 24870
* Print out opcode number if it's an unknown target node.Evan Cheng2005-12-191-1/+6
| | | | llvm-svn: 24869
* Fix a case where the DAG Combiner would accidentally CSE flag-producing nodes,Chris Lattner2005-12-191-1/+6
| | | | | | creating graphs that cannot be scheduled. llvm-svn: 24866
OpenPOWER on IntegriCloud