summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix a pointer invalidation problem. This fixes Generic/badarg6.llChris Lattner2005-01-071-13/+7
| | | | llvm-svn: 19361
* Fold conditional branches on constants away.Chris Lattner2005-01-071-0/+6
| | | | llvm-svn: 19360
* Fix a thinko in the reassociation code, fixing Generic/badlive.llChris Lattner2005-01-071-1/+1
| | | | llvm-svn: 19359
* Add support for truncating integer casts from long.Chris Lattner2005-01-071-1/+13
| | | | llvm-svn: 19358
* Fix a bug in load expansion legalization and ret legalization. This fixesChris Lattner2005-01-071-9/+17
| | | | | | CodeGen/Generic/select.ll:castconst. llvm-svn: 19357
* Legalize unconditional branches tooChris Lattner2005-01-071-0/+6
| | | | llvm-svn: 19356
* Implement support for long GEP indices on 32-bit archs and support forChris Lattner2005-01-072-3/+15
| | | | | | int GEP indices on 64-bit archs. llvm-svn: 19354
* Simplify: truncate ({zero|sign}_extend (X))Chris Lattner2005-01-071-0/+9
| | | | llvm-svn: 19353
* implement legalization of a bunch more operators.Chris Lattner2005-01-071-0/+6
| | | | llvm-svn: 19352
* Fix another bug legalizing calls!Chris Lattner2005-01-071-1/+1
| | | | llvm-svn: 19350
* Fix handling of dead PHI nodes.Chris Lattner2005-01-071-26/+30
| | | | llvm-svn: 19349
* Fix a bug legalizing callsChris Lattner2005-01-071-1/+1
| | | | llvm-svn: 19348
* After legalizing a DAG, delete dead nodes to save space.Chris Lattner2005-01-071-6/+1
| | | | llvm-svn: 19346
* Implement RemoveDeadNodesChris Lattner2005-01-071-0/+119
| | | | llvm-svn: 19345
* Teach legalize how to handle condbranchesChris Lattner2005-01-071-0/+10
| | | | llvm-svn: 19339
* Initial implementation of the SelectionDAGISel class. This contains mostChris Lattner2005-01-071-0/+853
| | | | | | of the code for lowering from LLVM code to a SelectionDAG. llvm-svn: 19331
* This file is obsoleteChris Lattner2005-01-071-278/+0
| | | | llvm-svn: 19330
* Initial implementation of the DAG legalization. This still has a long wayChris Lattner2005-01-071-0/+703
| | | | | | to go, but it does work for some non-trivial cases now. llvm-svn: 19329
* Complete rewrite of the SelectionDAG class.Chris Lattner2005-01-071-106/+758
| | | | llvm-svn: 19327
* Make the 2-address instruction lowering pass smarter in two ways:Chris Lattner2005-01-021-17/+61
| | | | | | | | | | | | | | | | | 1. If we are two-addressing a commutable instruction and the LHS is not the last use of the variable, see if the instruction is the last use of the RHS. If so, commute the instruction, allowing us to avoid a register-register copy in many cases for common instructions like ADD, OR, AND, etc on X86. 2. If #1 doesn't hold, and if this is an instruction that also existing in 3-address form, promote the instruction to a 3-address instruction to avoid the register-register copy. We can do this for several common instructions in X86, including ADDrr, INC, DEC, etc. This patch implements test/Regression/CodeGen/X86/commute-two-addr.ll, overlap-add.ll, and overlap-shift.ll when I check in the X86 support for it. llvm-svn: 19245
* Move virtual method call out of loopChris Lattner2004-12-152-6/+6
| | | | llvm-svn: 18955
* Move virtual function call out of loop to speed up getFreePhysReg by aboutNate Begeman2004-12-071-2/+2
| | | | | | 20%, shaving 0.1s off hbd compile time on my g5. Yay. llvm-svn: 18592
* For PR387:\Reid Spencer2004-12-072-2/+2
| | | | | | | Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual llvm-svn: 18589
* Prevent accessing past the end of the intervals vector, this fixesChris Lattner2004-12-041-1/+3
| | | | | | Prolang-C/bison in the JIT llvm-svn: 18477
* Fix SingleSource/UnitTests/2004-11-28-GlobalBoolLayout.c, and hopefullyChris Lattner2004-11-281-1/+1
| | | | | | PR449 llvm-svn: 18306
* Fix the FIXME, nuke the JIT specific forceCompilationOf method.Chris Lattner2004-11-221-18/+0
| | | | llvm-svn: 18131
* These methods are obsoleteChris Lattner2004-11-221-8/+0
| | | | llvm-svn: 18129
* Adjust to changed interfacesChris Lattner2004-11-201-7/+7
| | | | llvm-svn: 18064
* Add getCurrentPCOffset() and addRelocation() methods.Chris Lattner2004-11-201-0/+12
| | | | llvm-svn: 18034
* Match change in MachineCodeEmitter prototype.Chris Lattner2004-11-191-2/+2
| | | | llvm-svn: 18009
* * There is no reason for SpillWeights to be an instance varChris Lattner2004-11-181-69/+71
| | | | | | | | * Do not put fixed registers into the unhandled set. This means they will never find their way into the inactive, active, or handled sets, so we can simplify a bunch of code. llvm-svn: 17945
* There is no need to check to see if j overflowed in this loop as we're onlyChris Lattner2004-11-181-1/+3
| | | | | | incrementing i. llvm-svn: 17944
* Moderate head scratching reveals that this conditional is not needed. IfChris Lattner2004-11-181-4/+0
| | | | | | i->start == j->start, then certainly i->end > j->start. llvm-svn: 17943
* Fix a couple of bugs where we considered physregs past their range as possiblyChris Lattner2004-11-181-6/+11
| | | | | | intersecting an interval. llvm-svn: 17939
* Fix typeoChris Lattner2004-11-181-1/+1
| | | | llvm-svn: 17938
* Start using the iterators in the fixed_ intervals to avoid having to binaryChris Lattner2004-11-181-5/+12
| | | | | | | search physreg intervals every time we access it. This takes another half second off of linscan. llvm-svn: 17937
* Take another .7 seconds off of linear scan time.Chris Lattner2004-11-181-3/+5
| | | | llvm-svn: 17936
* Add a counter for the number of times linscan has to backtrack. Start usingChris Lattner2004-11-181-22/+36
| | | | | | | the iterator hints we have to speed up overlaps(). This speeds linscan up by about .2s (out of 8.7) on 175.vpr for PPC. llvm-svn: 17935
* Add ability to give hints to the overlaps routines.Chris Lattner2004-11-182-7/+27
| | | | llvm-svn: 17934
* * Improve comments/documentation substantiallyChris Lattner2004-11-181-128/+172
| | | | | | | | | | | | | | | | | | * Eliminate the releaseMemory method, this is not an analysis * Change the fixed, active, and inactive lists of intervals to maintain an iterator for the current position in the interval. This allows us to do constant time increments of the iterator instead of having to do a binary search to find our liverange in our liveinterval all of the time, which substantially speeds up cases where LiveIntervals have many LiveRanges - which is very common for physical registers. On targets with many physregs, this can make a noticable difference. With a release build of LLC for PPC, this halves the time in processInactiveIntervals and processActiveIntervals, from 1.5s to .75s. This also lays the ground for more to come. llvm-svn: 17933
* Add new advanceTo methodChris Lattner2004-11-181-0/+13
| | | | llvm-svn: 17932
* Fix a minor bug in expiredAt. endNumber() is the first number that is not ↵Chris Lattner2004-11-181-1/+1
| | | | | | valid. llvm-svn: 17931
* Rename some methods, use 'begin' instead of 'start', add new LiveIntervalChris Lattner2004-11-183-22/+29
| | | | | | iterator/begin/end members. llvm-svn: 17930
* Give a better message for a common assertion failure.Brian Gaeke2004-11-161-1/+2
| | | | llvm-svn: 17887
* Do not make i have bigger scope that we needChris Lattner2004-11-051-2/+2
| | | | llvm-svn: 17483
* Change Library Names Not To Conflict With Others When InstalledReid Spencer2004-10-272-2/+2
| | | | llvm-svn: 17286
* Move method bodies that depend on <algorithm> from MBB.h to MBB.cppChris Lattner2004-10-261-14/+38
| | | | llvm-svn: 17253
* Clean up the MachineBasicBlock.h file, percolating #includes into this file.Chris Lattner2004-10-262-0/+2
| | | | | | Patch contributed by Morten Ofstad llvm-svn: 17251
* Reduce usage of MRegisterInfo::getRegClassChris Lattner2004-10-261-5/+6
| | | | llvm-svn: 17238
* Do not use variable sized arrays in C++, they are non-portable. PatchChris Lattner2004-10-251-5/+5
| | | | | | contributed by Morten Ofstad llvm-svn: 17217
OpenPOWER on IntegriCloud