summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use higher level methods, don't use TargetInstrDescriptors directly!Chris Lattner2002-10-291-2/+2
| | | | llvm-svn: 4389
* Add #includes that were eliminated from headersChris Lattner2002-10-291-0/+1
| | | | llvm-svn: 4380
* Eliminate usage of MachineBasicBlock::getChris Lattner2002-10-281-81/+65
| | | | llvm-svn: 4344
* Rename the redundant MachineOperand::getOperandType() to ↵Chris Lattner2002-10-281-11/+11
| | | | | | MachineOperand::getType() llvm-svn: 4331
* Add #includes now that MachineInstr.h doesn't include ↵Chris Lattner2002-10-281-0/+1
| | | | | | llvm/Target/MachineInstrInfo.h llvm-svn: 4327
* *** empty log message ***Chris Lattner2002-10-281-1/+0
| | | | llvm-svn: 4323
* *** empty log message ***Chris Lattner2002-10-281-20/+20
| | | | llvm-svn: 4317
* Changed `MachineCodeForMethod' to `MachineFunction'.Misha Brukman2002-10-281-3/+3
| | | | llvm-svn: 4301
* - Two minor improvements to the MachineInstr class to reduce footprint andChris Lattner2002-10-221-9/+8
| | | | | | | overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a bitvector. Sped up LLC a little less than 10% in a debug build! llvm-svn: 4261
* Major bug fix: spill code for an instruction in a delay slot wasVikram S. Adve2002-10-111-11/+73
| | | | | | merrily being inserted before/after the instruction! llvm-svn: 4116
* Fixed incorrect assertion: spill code for function ptr should beVikram S. Adve2002-09-281-3/+4
| | | | | | handled like normal operands, not like other call arguments. llvm-svn: 3967
* RegAllocCommon no longer includes CommandLine.h so we have to include itChris Lattner2002-09-151-0/+1
| | | | | | here. llvm-svn: 3725
* Break RA_DEBUG option into several levels to get better control overVikram S. Adve2002-09-141-64/+55
| | | | | | debug output. llvm-svn: 3724
* * 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
OpenPOWER on IntegriCloud