summaryrefslogtreecommitdiff
path: root/lib/CodeGen
Commit message (Collapse)AuthorAge
* moving to the Reoptimizer/Mapping dirMehwish Nagda2002-07-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2993 91177308-0d34-0410-b5e6-96231b3b80d8
* *** empty log message ***Chris Lattner2002-07-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2985 91177308-0d34-0410-b5e6-96231b3b80d8
* changed size computationMehwish Nagda2002-07-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2974 91177308-0d34-0410-b5e6-96231b3b80d8
* added check for Function with 0 BBMehwish Nagda2002-07-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2942 91177308-0d34-0410-b5e6-96231b3b80d8
* Now will profile all Basic BlocksMehwish Nagda2002-07-16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2922 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial checking : Writes LLVM - MI mappiing to the .s fileMehwish Nagda2002-07-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2911 91177308-0d34-0410-b5e6-96231b3b80d8
* added std:: to endlAnand Shukla2002-07-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2875 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix print of BB name in dump().Vikram S. Adve2002-07-10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2861 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for marking each operand as a %hh, %hm, %lm or %lo.Vikram S. Adve2002-07-10
| | | | | | | | Represent previous bools and these ones with flags in a single byte per operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2860 91177308-0d34-0410-b5e6-96231b3b80d8
* changed mem_fun to std::mem_funAnand Shukla2002-07-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2847 91177308-0d34-0410-b5e6-96231b3b80d8
* Significant changes to correctly spill CC registers and to correctlyVikram S. Adve2002-07-08
| | | | | | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2833 91177308-0d34-0410-b5e6-96231b3b80d8
* MachineInstr* in vector are not const (and never really were)Vikram S. Adve2002-07-08
| | | | | | | | because operands may be modified directly to set register. Also, class MachineCodeForBasicBlock is now an annotation on BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2832 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename static struct Initializer to avoid name conflict with BB.Vikram S. Adve2002-07-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2831 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix printing of BB in dump.Vikram S. Adve2002-07-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2830 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.h.Vikram S. Adve2002-07-08
| | | | | | | This class is now an annotation on BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2829 91177308-0d34-0410-b5e6-96231b3b80d8
* MachineInstr::dump() now takes no arguments.Vikram S. Adve2002-07-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2828 91177308-0d34-0410-b5e6-96231b3b80d8
* Implementation of class MachineCodeForBasicBlock.Vikram S. Adve2002-07-08
| | | | | | | Moved here from MachineInstr.cpp to make it an annotation on BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2827 91177308-0d34-0410-b5e6-96231b3b80d8
* A single MachineInstr operand may now be both a def and a use,Vikram S. Adve2002-07-08
| | | | | | | | | | so additional dep. edges have to be added. This was needed to correctly handle conditional move instructions! MachineCodeForBasicBlock is now an annotation on BasicBlock. Renamed "earliestForNode" to "earliestReadyTimeForNode". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2826 91177308-0d34-0410-b5e6-96231b3b80d8
* getUsableUniRegAtMI interface simplified slightly.Vikram S. Adve2002-07-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2822 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}.Vikram S. Adve2002-07-08
| | | | | | | | | An (explicit or implicit) operand may now be both a def and a use. Also add a set of regs used by each instruction. dump() no longer takes an optional argument, which doesn't work in gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2821 91177308-0d34-0410-b5e6-96231b3b80d8
* MachineInstr* in vector are not const (and never really were)Vikram S. Adve2002-07-08
| | | | | | | because operands may be modified directly to set register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2820 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove tag that just clutters diffsChris Lattner2002-06-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2807 91177308-0d34-0410-b5e6-96231b3b80d8
* changes to make it compatible with 64bit gccAnand Shukla2002-06-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2791 91177308-0d34-0410-b5e6-96231b3b80d8
* MEGAPATCH checkin.Chris Lattner2002-06-25
| | | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
* MEGAPATCH checkin.Chris Lattner2002-06-25
| | | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2778 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert RegClass::IsColorUsedArr from a dynamically allocated array toChris Lattner2002-05-23
| | | | | | | a vector. This makes asserting on array bounds easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2731 91177308-0d34-0410-b5e6-96231b3b80d8
* Move debug options out of header files so that the header does not haveChris Lattner2002-05-22
| | | | | | | to #include CommandLine.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2712 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid #including CommandLine.hChris Lattner2002-05-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2710 91177308-0d34-0410-b5e6-96231b3b80d8
* Hide debugging optionsChris Lattner2002-05-20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2676 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't lose namespace qualifications on previous patch.Chris Lattner2002-05-20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2664 91177308-0d34-0410-b5e6-96231b3b80d8
* InstrnsBefore and InstrnsAfter are now vectors instead of deques.Vikram S. Adve2002-05-19
| | | | | | | | May be slightly less efficient but significantly reduces special cases interfaces in code generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2649 91177308-0d34-0410-b5e6-96231b3b80d8
* Better folding getelementptr operations with mixedVikram S. Adve2002-05-19
| | | | | | | | | array and struct indexes. Update operand values in CallArgsDescriptor (a new class) when replacing constant values with immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2645 91177308-0d34-0410-b5e6-96231b3b80d8
* cpValue2Value now needs a vector of MachineInstr to store return values.Vikram S. Adve2002-05-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2644 91177308-0d34-0410-b5e6-96231b3b80d8
* Annotation class for MachineInstr.Vikram S. Adve2002-05-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2643 91177308-0d34-0410-b5e6-96231b3b80d8
* Numerous bug fixes:Vikram S. Adve2002-05-19
| | | | | | | | | | | | | | | | | | | | -- 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2642 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace all usages of Type::isPointerType with isa<PointerType>Chris Lattner2002-05-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2486 91177308-0d34-0410-b5e6-96231b3b80d8
* Add neccesary #includeChris Lattner2002-04-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2406 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2397 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new optional getPassName() virtual function that a Pass can overrideChris Lattner2002-04-29
| | | | | | | to make debugging output a lot nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2395 91177308-0d34-0410-b5e6-96231b3b80d8
* Include appropriate fileChris Lattner2002-04-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2379 91177308-0d34-0410-b5e6-96231b3b80d8
* Split ConstantVals.h into Constant.h and Constants.hChris Lattner2002-04-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2378 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classesChris Lattner2002-04-28
| | | | | | | to the global namespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2370 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove all contents of the cfg namespace to the global namespaceChris Lattner2002-04-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2369 91177308-0d34-0410-b5e6-96231b3b80d8
* s/Method/FunctionChris Lattner2002-04-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2336 91177308-0d34-0410-b5e6-96231b3b80d8
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-27
| | | | | | | | | | | | | | | | - 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't record instructions for copying method arguments in theVikram S. Adve2002-04-25
| | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2318 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't record instructions for copying method arguments in theVikram S. Adve2002-04-25
| | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2312 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve printing during dumps.Vikram S. Adve2002-04-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2311 91177308-0d34-0410-b5e6-96231b3b80d8
* Optional args are no longer allocated as they are discovered.Vikram S. Adve2002-04-25
| | | | | | | | | (This can be improved to avoid making the initial pass over the method.) Also, ensure automatic vars and reg. spills areas are not extended if their sizes are used for computing some other offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2310 91177308-0d34-0410-b5e6-96231b3b80d8
* Only emit message if DEBUG_RA is onChris Lattner2002-04-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2252 91177308-0d34-0410-b5e6-96231b3b80d8