summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* silence a bogus gcc warningChris Lattner2006-01-063-3/+3
| | | | llvm-svn: 25129
* Enhance the shift-shift folding code to allow a no-op cast to occur in betweenChris Lattner2006-01-061-55/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the shifts. This allows us to fold this (which is the 'integer add a constant' sequence from cozmic's scheme compmiler): int %x(uint %anf-temporary776) { %anf-temporary777 = shr uint %anf-temporary776, ubyte 1 %anf-temporary800 = cast uint %anf-temporary777 to int %anf-temporary804 = shl int %anf-temporary800, ubyte 1 %anf-temporary805 = add int %anf-temporary804, -2 %anf-temporary806 = or int %anf-temporary805, 1 ret int %anf-temporary806 } into this: int %x(uint %anf-temporary776) { %anf-temporary776 = cast uint %anf-temporary776 to int %anf-temporary776.mask1 = add int %anf-temporary776, -2 %anf-temporary805 = or int %anf-temporary776.mask1, 1 ret int %anf-temporary805 } note that instcombine already knew how to eliminate the AND that the two shifts fold into. This is tested by InstCombine/shift.ll:test26 -Chris llvm-svn: 25128
* A case that instcombine is not catching.Chris Lattner2006-01-061-0/+7
| | | | llvm-svn: 25127
* Simplify the code a bit moreChris Lattner2006-01-061-3/+5
| | | | llvm-svn: 25126
* Extract a bunch of code out of visitShiftInst into FoldShiftByConstant. NoChris Lattner2006-01-061-180/+189
| | | | | | functionality changes. llvm-svn: 25125
* Unbreak the build :(Chris Lattner2006-01-061-2/+2
| | | | llvm-svn: 25124
* Addd (shl x, 1) ==> (shl x, x) peepholes.Evan Cheng2006-01-061-1/+10
| | | | llvm-svn: 25123
* Tweak pattern complexity calc.Evan Cheng2006-01-061-9/+4
| | | | llvm-svn: 25122
* 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-062-20/+3
| | | | llvm-svn: 25120
* linkonce symbols have an extra indirection, just like weak ones do. This fixesChris Lattner2006-01-061-1/+2
| | | | | | Prolangs-C++/family and Prolangs-C++/primes. llvm-svn: 25119
* * Fast call support.Evan Cheng2006-01-064-175/+570
| | | | | | * FP cmp, setcc, etc. llvm-svn: 25117
* Support for custom lowering of ISD::RET.Evan Cheng2006-01-061-0/+16
| | | | llvm-svn: 25116
* Bug fix wrt chain operand.Evan Cheng2006-01-061-7/+4
| | | | llvm-svn: 25115
* Fix a compile crash building MultiSource/Applications/d with the new front-end.Chris Lattner2006-01-051-2/+2
| | | | | | | The PPC backend was generating random shift counts in this case, due to an uninitialized variable. llvm-svn: 25114
* Added the spec for the new "extractelement" instruction.Robert Bocchino2006-01-051-0/+44
| | | | llvm-svn: 25113
* Implement a few symbolic constant folding things. X ? Y : Y is Y.Chris Lattner2006-01-051-7/+32
| | | | | | | | | | | | | Fold: seteq ({ short }* cast (int 1 to { short }*), { short }* null) setlt ({ short }* cast (int 1 to { short }*), { short }* cast (int 2 to { short }*)) to false/true. These last two commonly occur in the output of compilers that tag integers, like cozmic's scheme compiler. Tested by Regression/Assembler/ConstantExprFold.llx llvm-svn: 25112
* new tests, derived from cosmics scheme outputChris Lattner2006-01-051-1/+5
| | | | llvm-svn: 25111
* fix some formatting problemsChris Lattner2006-01-051-7/+7
| | | | llvm-svn: 25110
* unbreak the build, these are now in TargetSelectionDAG.tdChris Lattner2006-01-051-3/+0
| | | | llvm-svn: 25109
* Added ConstantFP patterns.Evan Cheng2006-01-052-31/+33
| | | | llvm-svn: 25108
* Added fpimm node for ConstantFP.Evan Cheng2006-01-051-0/+2
| | | | llvm-svn: 25107
* Grammer correction.Jim Laskey2006-01-051-2/+2
| | | | llvm-svn: 25106
* Had expand logic backward.Jim Laskey2006-01-056-1/+12
| | | | llvm-svn: 25105
* Added initial support for DEBUG_LABEL allowing debug specific labels to beJim Laskey2006-01-0515-51/+98
| | | | | | inserted in the code. llvm-svn: 25104
* DAG based isel call support.Evan Cheng2006-01-054-41/+197
| | | | llvm-svn: 25103
* Remove some dead code.Evan Cheng2006-01-051-4/+0
| | | | llvm-svn: 25102
* remove unused headerChris Lattner2006-01-051-1/+0
| | | | llvm-svn: 25101
* Applied some recommend changes from sabre. The dominate one beginning "let theJim Laskey2006-01-0411-216/+255
| | | | | | | 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
* Be consistent in using class vs struct to make VC++ happy. And as it containsJeff Cohen2006-01-041-1/+2
| | | | | | methods, virtual method even, class wins. llvm-svn: 25098
* Teach Visual Studio about new file.Jeff Cohen2006-01-041-0/+3
| | | | llvm-svn: 25097
* Add unique id to debug location for debug label use (work in progress.)Jim Laskey2006-01-046-22/+33
| | | | llvm-svn: 25096
* Add check for debug presence.Jim Laskey2006-01-041-0/+4
| | | | llvm-svn: 25095
* Add flag for debug presence.Jim Laskey2006-01-041-0/+5
| | | | llvm-svn: 25094
* Tie dwarf generation to darwin assembler.Jim Laskey2006-01-046-12/+311
| | | | llvm-svn: 25093
* 1. Make MachineDebugInfo a pass.Jim Laskey2006-01-041-31/+21
| | | | | | 2. Add label uniquing code. llvm-svn: 25092
* Move MachineDebugInfo to module level location.Jim Laskey2006-01-041-9/+0
| | | | llvm-svn: 25091
* 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
* Adding MachineDebugInfo as a immutable pass.Jim Laskey2006-01-041-0/+4
| | | | llvm-svn: 25088
* Adding new files.Jim Laskey2006-01-041-0/+4
| | | | llvm-svn: 25087
* Extending MachineDebugInfo.Jim Laskey2006-01-041-0/+90
| | | | llvm-svn: 25086
* Patch #6's in Saem's refactor-the-passmanager patch series. From him:Chris Lattner2006-01-044-249/+185
| | | | | | | This sanitises the world, blows away the specialisations and adds traits per passmanager type -- seemed most natural. llvm-svn: 25085
* add a comment that I should have written a long time agoChris Lattner2006-01-041-0/+28
| | | | llvm-svn: 25084
* 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
* Update list of supported bisons.Jeff Cohen2006-01-041-1/+1
| | | | llvm-svn: 25082
* 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
* add a dump method to help debuggingChris Lattner2006-01-041-0/+2
| | | | llvm-svn: 25079
* Saem's patch #5 of the passmanager refactoringChris Lattner2006-01-041-47/+93
| | | | llvm-svn: 25078
OpenPOWER on IntegriCloud