summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegAlloc
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
* Non-standard hash classes are not in the std:: namespaceChris Lattner2002-07-241-1/+1
| | | | llvm-svn: 3057
* *** 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
* MachineInstr* in vector are not const (and never really were)Vikram S. Adve2002-07-081-9/+10
| | | | | | | because operands may be modified directly to set register. Also, class MachineCodeForBasicBlock is now an annotation on BasicBlock. llvm-svn: 2832
* getUsableUniRegAtMI interface simplified slightly.Vikram S. Adve2002-07-081-6/+7
| | | | llvm-svn: 2822
* MachineInstr* in vector are not const (and never really were)Vikram S. Adve2002-07-081-1/+1
| | | | | | because operands may be modified directly to set register. llvm-svn: 2820
* 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-252-145/+127
| | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt llvm-svn: 2779
* Convert RegClass::IsColorUsedArr from a dynamically allocated array toChris Lattner2002-05-233-39/+30
| | | | | | 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
* Avoid #including CommandLine.hChris Lattner2002-05-221-4/+2
| | | | llvm-svn: 2710
* Hide debugging optionsChris Lattner2002-05-201-1/+1
| | | | llvm-svn: 2676
* Don't lose namespace qualifications on previous patch.Chris Lattner2002-05-201-2/+2
| | | | llvm-svn: 2664
* InstrnsBefore and InstrnsAfter are now vectors instead of deques.Vikram S. Adve2002-05-191-3/+3
| | | | | | | May be slightly less efficient but significantly reduces special cases interfaces in code generation. llvm-svn: 2649
* Numerous bug fixes:Vikram S. Adve2002-05-192-27/+58
| | | | | | | | | | | | | | | | | | | -- 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-296-6/+4
| | | | 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
* Include appropriate fileChris Lattner2002-04-281-0/+2
| | | | llvm-svn: 2379
* Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classesChris Lattner2002-04-281-6/+4
| | | | | | to the global namespace llvm-svn: 2370
* Remove all contents of the cfg namespace to the global namespaceChris Lattner2002-04-281-4/+4
| | | | llvm-svn: 2369
* s/Method/FunctionChris Lattner2002-04-272-9/+9
| | | | 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-0/+1
| | | | | | | | 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: 2318
* 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
* Only emit message if DEBUG_RA is onChris Lattner2002-04-151-6/+6
| | | | llvm-svn: 2252
* Convert AddedInstrMapType to contain AddedInstrns by value instead of byChris Lattner2002-04-092-57/+31
| | | | | | pointer so that they do not all get leaked! llvm-svn: 2188
* s/Method/FunctionChris Lattner2002-04-082-11/+10
| | | | llvm-svn: 2180
* s/method/functionChris Lattner2002-04-081-3/+3
| | | | llvm-svn: 2177
* Change references to the Method class to be references to the FunctionChris Lattner2002-04-072-64/+45
| | | | | | | class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. llvm-svn: 2144
* Add method clearCallInterference().Vikram S. Adve2002-03-311-0/+3
| | | | llvm-svn: 2071
* 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
* Rename Method to FunctionChris Lattner2002-03-231-5/+5
| | | | llvm-svn: 1957
* 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
* Big bug fix: getUsableUniRegAtMI needed to return values in argumentsVikram S. Adve2002-03-181-2/+13
| | | | | | | but did not pass the arguments by reference! Also added a function to get a register class by ID. llvm-svn: 1901
* Method.h no longer includes BasicBlock.hChris Lattner2002-02-122-0/+2
| | | | | | | 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-052-94/+46
| | | | llvm-svn: 1720
* Minor change: Methods that return ValueSet's that are guaranteed to be validChris Lattner2002-02-053-37/+24
| | | | | | return references instead of pointers. llvm-svn: 1719
* * Code CleanupsChris Lattner2002-02-052-22/+18
| | | | | | * Removal dependencies on Type.h & remove uses of getTypeID() llvm-svn: 1718
* * Code Cleanups of IGNode.hChris Lattner2002-02-052-53/+24
| | | | | | * Removal of getTypeID() methods, and dependence on llvm/Type.h, from IGNode & LiveRange llvm-svn: 1717
* Must include SetOperations to do set_*Chris Lattner2002-02-051-0/+1
| | | | llvm-svn: 1716
* * Eliminate the LiveVarSet class, making applyTranferFuncForMInst a staticChris Lattner2002-02-053-53/+41
| | | | | | | | | | 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
* * Eliminate the LiveVarSet class, making applyTranferFuncForMInst a staticChris Lattner2002-02-052-11/+9
| | | | | | | | | 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. llvm-svn: 1711
* * Code CleanupsChris Lattner2002-02-053-152/+102
| | | | | | * 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
OpenPOWER on IntegriCloud