summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp
Commit message (Collapse)AuthorAgeFilesLines
* * Removed extraneous #includesChris Lattner2002-08-091-9/+4
| | | | | | | * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes llvm-svn: 3277
* - Cleaned up the interface to AnalysisUsage to take analysis class namesChris Lattner2002-08-081-2/+2
| | | | | | | instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument llvm-svn: 3264
* *** empty log message ***Chris Lattner2002-07-221-6/+6
| | | | llvm-svn: 2985
* changed mem_fun to std::mem_funAnand Shukla2002-07-091-2/+2
| | | | llvm-svn: 2847
* Significant changes to correctly spill CC registers and to correctlyVikram S. Adve2002-07-081-239/+164
| | | | | | | | | | | | | | | | | handle conditional move instructions: -- cpMem<->Reg functions now support CC registers (int and FP) correctly. -- Scratch registers must be explicitly provided to cpMem<->Reg when needed, since CC regs need one to be copied to/from memory. -- CC regs are saved to a scratch register instead of stack. -- All regs used by a instruction are now recorded in MachineInstr::regsUsed, since regs used to save values *across* an instruction are not obvious either from the operands or from the LiveVar sets. -- An (explicit or implicit) operand may now be both a def and a use. This is needed for conditional move operations. So an operand may need spill code both before and after the instruction. -- class MachineCodeForBasicBlock is now an annotation on BasicBlock. llvm-svn: 2833
* Remove tag that just clutters diffsChris Lattner2002-06-301-1/+0
| | | | llvm-svn: 2807
* changes to make it compatible with 64bit gccAnand Shukla2002-06-251-0/+1
| | | | llvm-svn: 2791
* MEGAPATCH checkin.Chris Lattner2002-06-251-126/+117
| | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt llvm-svn: 2779
* Convert RegClass::IsColorUsedArr from a dynamically allocated array toChris Lattner2002-05-231-24/+17
| | | | | | a vector. This makes asserting on array bounds easier. llvm-svn: 2731
* Move debug options out of header files so that the header does not haveChris Lattner2002-05-221-5/+4
| | | | | | to #include CommandLine.h. llvm-svn: 2712
* Hide debugging optionsChris Lattner2002-05-201-1/+1
| | | | llvm-svn: 2676
* Numerous bug fixes:Vikram S. Adve2002-05-191-27/+42
| | | | | | | | | | | | | | | | | | | -- passing FP arguments to functions with more than 6 arguments -- passing FP arguments to varargs functions -- passing FP arguments to functions with no prototypes -- incorrect coloring for CC registers (both int and FP): interferences were being completely ignored for int CC and were considered but no spills were marked for fp CC! Also some code improvements: -- better interface to generating machine instr for common cases (many places still need to be updated to use this interface) -- annotations on MachineInstr to communicate information from one codegen phase to another (now used to pass information about CALL/JMPLCALL operands from selection to register allocation) -- all sizes and offests in class TargetData are uint64_t instead of uint llvm-svn: 2642
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-291-0/+1
| | | | llvm-svn: 2397
* Add new optional getPassName() virtual function that a Pass can overrideChris Lattner2002-04-291-0/+2
| | | | | | to make debugging output a lot nicer. llvm-svn: 2395
* Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classesChris Lattner2002-04-281-6/+4
| | | | | | to the global namespace llvm-svn: 2370
* s/Method/FunctionChris Lattner2002-04-271-4/+4
| | | | llvm-svn: 2336
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-271-10/+7
| | | | | | | | | | | | | | | - Rename runOnMethod to runOnFunction * Transform getAnalysisUsageInfo into getAnalysisUsage - Method is now const - It now takes one AnalysisUsage object to fill in instead of 3 vectors to fill in - Pass's now specify which other passes they _preserve_ not which ones they modify (be conservative!) - A pass can specify that it preserves all analyses (because it never modifies the underlying program) * s/Method/Function/g in other random places as well llvm-svn: 2333
* Don't record instructions for copying method arguments in theVikram S. Adve2002-04-251-66/+78
| | | | | | | | AddedInstrns sets for the first machine instruction. It is hard to ensure that the right order is preserved, and sure enough, the order was broken. Instead, use a separate set for the function entry. llvm-svn: 2312
* Convert AddedInstrMapType to contain AddedInstrns by value instead of byChris Lattner2002-04-091-53/+29
| | | | | | pointer so that they do not all get leaked! llvm-svn: 2188
* Change references to the Method class to be references to the FunctionChris Lattner2002-04-071-39/+26
| | | | | | | class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. llvm-svn: 2144
* Bug fix: address used by indirect call instruction should alsoVikram S. Adve2002-03-311-16/+21
| | | | | | | be marked as having a Call Interference, even though it may not be live after the call. llvm-svn: 2068
* Destroy MethodLiveVarInfo after register allocation.Vikram S. Adve2002-03-241-0/+1
| | | | llvm-svn: 1976
* Big bug fix: getUsableUniRegAtMI needed to return values in argumentsVikram S. Adve2002-03-181-3/+3
| | | | | | but did not pass the arguments by reference! llvm-svn: 1906
* Method.h no longer includes BasicBlock.hChris Lattner2002-02-121-0/+1
| | | | | | | Method::inst_* is now in llvm/Support/InstIterator.h GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h llvm-svn: 1746
* Convert operand iterator over to work like an STL iteratorChris Lattner2002-02-051-34/+18
| | | | llvm-svn: 1720
* Minor change: Methods that return ValueSet's that are guaranteed to be validChris Lattner2002-02-051-9/+9
| | | | | | return references instead of pointers. llvm-svn: 1719
* * Code CleanupsChris Lattner2002-02-051-14/+12
| | | | | | * Removal dependencies on Type.h & remove uses of getTypeID() llvm-svn: 1718
* * Eliminate the LiveVarSet class, making applyTranferFuncForMInst a staticChris Lattner2002-02-051-34/+24
| | | | | | | | | | function in the one .cpp file that uses it. Use ValueSet's instead. * Prepare to delete LiveVarSet.h & LiveVarSet.cpp * Eliminate the ValueSet class, making all old member functions into global templates that will eventually be moved to Support. * Eliminate some irrelevant const's llvm-svn: 1712
* * Code CleanupsChris Lattner2002-02-051-22/+14
| | | | | | * Introduce RAV to allow stream I/O instead of using printValue llvm-svn: 1710
* * Add a #include not indirectly included any moreChris Lattner2002-02-051-0/+1
| | | | llvm-svn: 1707
* * RegisterAllocation _uses_ LiveVar analysis, instead of creating it's own copyChris Lattner2002-02-041-4/+2
| | | | llvm-svn: 1701
* Switch register allocator over to using LoopInfo directly instead of ↵Chris Lattner2002-02-041-4/+4
| | | | | | indirectly through LoopDepthCalculator llvm-svn: 1696
* Make LoopDeptCalculator be an internal artifact of how RegAlloc is implemented,Chris Lattner2002-02-041-4/+13
| | | | | | | do not expose it. Additionally, have it be auto generated by the pass framework for us. llvm-svn: 1695
* * Add #includes removed from headersChris Lattner2002-02-041-1/+2
| | | | | | | * ValueSet interface converted from add/remove to insert/erase * Minor cleanups llvm-svn: 1689
* Convert RegisterAllocator interface to opaque pass type, so that users do notChris Lattner2002-02-041-12/+26
| | | | | | need to know _anything_ about RegAlloc to use it. Well in the end maybe. llvm-svn: 1681
* Add #includes neccesary since they were removed from .h filesChris Lattner2002-02-041-1/+2
| | | | llvm-svn: 1675
* Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined passChris Lattner2002-02-041-2/+17
| | | | | | that has a very minimal interface (like it should have). llvm-svn: 1667
* Lots of code cleanups, no functional changesChris Lattner2002-02-031-103/+74
| | | | llvm-svn: 1650
* Oops lost a parenthesis somehow :(Chris Lattner2002-01-211-1/+1
| | | | llvm-svn: 1504
* Changes to build successfully with GCC 3.02Chris Lattner2002-01-201-98/+72
| | | | llvm-svn: 1503
* PhyRegAlloc.cpp: Added temp area resetting before every callRuchira Sasanka2002-01-071-1/+2
| | | | llvm-svn: 1499
* Added destructors and comments.Ruchira Sasanka2002-01-071-74/+142
| | | | | | Added correct spill candidate selection logic. llvm-svn: 1493
* Renamed inst_const_iterator -> const_inst_iteratorChris Lattner2001-12-041-5/+5
| | | | | | | Renamed op_const_iterator -> const_op_iterator Renamed PointerType::getValueType() -> PointerType::getElementType() llvm-svn: 1408
* Commented some popTempArg.. since it leads to a bugRuchira Sasanka2001-11-151-3/+11
| | | | llvm-svn: 1326
* Fixed a bug in setReLRegsUsedByMIRuchira Sasanka2001-11-151-54/+75
| | | | llvm-svn: 1323
* fixed setUsedRegAtMIRuchira Sasanka2001-11-151-7/+34
| | | | llvm-svn: 1317
* Added interference for args in pseudo instructionsRuchira Sasanka2001-11-141-8/+48
| | | | llvm-svn: 1300
* commented out lines printing code after schedulingRuchira Sasanka2001-11-131-2/+2
| | | | llvm-svn: 1295
* Fixed a bug concering LR spilling. Earlier, added spilled code was not insertedRuchira Sasanka2001-11-131-27/+43
| | | | | | into the instruction stream correctly. llvm-svn: 1294
* Do the same for allocating spills to get their alignment right too.Vikram S. Adve2001-11-121-1/+2
| | | | llvm-svn: 1285
OpenPOWER on IntegriCloud