summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegAlloc
Commit message (Collapse)AuthorAgeFilesLines
...
* *** empty log message ***Chris Lattner2002-10-282-26/+25
| | | | llvm-svn: 4317
* Changed `MachineCodeForMethod' to `MachineFunction'.Misha Brukman2002-10-282-5/+5
| | | | llvm-svn: 4301
* Ensure definate initializationChris Lattner2002-10-221-1/+1
| | | | llvm-svn: 4263
* - 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
* Added a couple of helper methods for live range construction.Vikram S. Adve2002-09-281-13/+12
| | | | llvm-svn: 3970
* Live ranges for Return value and return address of a Call are nowVikram S. Adve2002-09-281-91/+71
| | | | | | | created here, simply by handling all implicit operands (which should have been done anyway). llvm-svn: 3969
* 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
* Add method IGNode::getCombinedDegree to count the sum of the degreesVikram S. Adve2002-09-201-0/+3
| | | | | | of two nodes, excluding duplicates. llvm-svn: 3848
* Allow copy coalescing in more cases: if sum of node degrees is more thanVikram S. Adve2002-09-202-1/+26
| | | | | | | | than #available regs, compute the sum excluding duplicates and if that is less than #regs, go ahead and coalesce. Add method IGNode::getCombinedDegree to count excluding duplicates. llvm-svn: 3842
* Fix typos in previous checkin.Vikram S. Adve2002-09-151-2/+2
| | | | llvm-svn: 3726
* 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-146-104/+117
| | | | | | debug output. llvm-svn: 3724
* Remove unnecessary include.Vikram S. Adve2002-09-141-2/+0
| | | | llvm-svn: 3723
* Break RA_DEBUG option into several levels to get better output.Vikram S. Adve2002-09-141-0/+23
| | | | llvm-svn: 3722
* Moving to lib/CodeGen/RegAlloc.Vikram S. Adve2002-09-141-18/+0
| | | | llvm-svn: 3718
* * 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
OpenPOWER on IntegriCloud