aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/SparcV9/SparcV9TargetMachine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* MEGAPATCH checkin.Chris Lattner2002-06-251-16/+13
| | | | | | | 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
* Add new optional getPassName() virtual function that a Pass can overrideChris Lattner2002-04-291-0/+9
| | | | | | | to make debugging output a lot nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2395 91177308-0d34-0410-b5e6-96231b3b80d8
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-271-7/+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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't pad spills and temp. stack areas for alignment.Vikram S. Adve2002-04-251-4/+5
| | | | | | | | Freeze auto vars and spill areas when their sizes are used for computing other offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2317 91177308-0d34-0410-b5e6-96231b3b80d8
* * Add a useful file commentChris Lattner2002-04-091-91/+7
| | | | | | | | | * Move InsertPrologEpilogCode class to PrologEpilogCodeInserter.cpp -> Among other things, this eliminates the need for the minstrVec static global array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2195 91177308-0d34-0410-b5e6-96231b3b80d8
* s/Method/FunctionChris Lattner2002-04-081-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2180 91177308-0d34-0410-b5e6-96231b3b80d8
* Change references to the Method class to be references to the FunctionChris Lattner2002-04-071-37/+39
| | | | | | | | class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2144 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().Vikram S. Adve2002-03-241-5/+8
| | | | | | | Also re-enable instr. scheduling pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1966 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor fixes.Vikram S. Adve2002-03-181-3/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1892 91177308-0d34-0410-b5e6-96231b3b80d8
* * Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and intoChris Lattner2002-02-121-3/+5
| | | | | | | | | | llvm/Support/CFG.h * Make pred & succ iterators for intervals global functions * Add #includes that are now neccesary because BasicBlock.h doesn't include InstrTypes.h anymore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1750 91177308-0d34-0410-b5e6-96231b3b80d8
* Method.h no longer includes BasicBlock.hChris Lattner2002-02-121-1/+6
| | | | | | | | Method::inst_* is now in llvm/Support/InstIterator.h GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1746 91177308-0d34-0410-b5e6-96231b3b80d8
* Write llvm bytecode to output .s file as last step of LLC.Chris Lattner2002-02-111-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1728 91177308-0d34-0410-b5e6-96231b3b80d8
* The interface to instruction scheduling is now just a call to get the pass.Chris Lattner2002-02-041-12/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1702 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert RegisterAllocator interface to opaque pass type, so that users do notChris Lattner2002-02-041-1/+1
| | | | | | | need to know _anything_ about RegAlloc to use it. Well in the end maybe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1681 91177308-0d34-0410-b5e6-96231b3b80d8
* * Minor cleanupsChris Lattner2002-02-041-0/+1
| | | | | | | | | | | * Reduce number of #includes * Remove blatently misleading qualifiers (how do you have an inlined pure virtual function?) * Remove unnecesary & ignored qualifiers (const int argument vs int argument) * SparcInternals.h now no longer #includes RegClass.h or SparcRegClassInfo.h * Pull inlined functions out of .h file if they are virtual and interfere with dependencies git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1677 91177308-0d34-0410-b5e6-96231b3b80d8
* Pull all of the scheduling related stuff out of Sparc.cpp into it's own fileChris Lattner2002-02-041-734/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1668 91177308-0d34-0410-b5e6-96231b3b80d8
* Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined passChris Lattner2002-02-041-27/+2
| | | | | | | that has a very minimal interface (like it should have). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1667 91177308-0d34-0410-b5e6-96231b3b80d8
* Move a ton of tables out of SparcInternals.h and move them to Sparc.cpp.Chris Lattner2002-02-041-0/+685
| | | | | | | | Eventually they will probably get moved again, but at least now they aren't having to be compiled by 7 different .cpp files... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1666 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert sparc backend over to use pass based compilation structure.Chris Lattner2002-02-031-96/+119
| | | | | | | | Convert some stages into passes in preparation for more splitting up. Try to decouple stuff as much as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1663 91177308-0d34-0410-b5e6-96231b3b80d8
* * Swithc to new MachineCodeForInstruction modelChris Lattner2002-02-031-5/+22
| | | | | | | * Implement memory freeing for instruction temporaries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1653 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes to build successfully with GCC 3.02Chris Lattner2002-01-201-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
* Added comments and correct logic for finding register sizes.Ruchira Sasanka2002-01-071-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1494 91177308-0d34-0410-b5e6-96231b3b80d8
* When allocating space on stack for writing a register,Vikram S. Adve2001-11-121-4/+12
| | | | | | | | use the size of the register, not the size of the Value type, to get the right alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1284 91177308-0d34-0410-b5e6-96231b3b80d8
* Added class UltraSparcCacheInfo.Vikram S. Adve2001-11-091-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1225 91177308-0d34-0410-b5e6-96231b3b80d8
* Use MachineFrameInfo as base class of UltraSparcFrameInfo, and madeVikram S. Adve2001-11-081-35/+42
| | | | | | | a major overhaul of this class and how stack frames are managed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1191 91177308-0d34-0410-b5e6-96231b3b80d8
* Added a frame layout class, and code to insert prolog/epilog code.Vikram S. Adve2001-10-221-15/+143
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@942 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved implementation of class UltraSparcInstrInfo to SparcInstrInfo.cpp.Vikram S. Adve2001-10-181-19/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@863 91177308-0d34-0410-b5e6-96231b3b80d8
* Output to cerr rather than cout so that debug info doesn't mess up assembly ↵Chris Lattner2001-10-151-3/+3
| | | | | | generation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@840 91177308-0d34-0410-b5e6-96231b3b80d8
* updated suggesting/coloring of call & return args & implicit operandsRuchira Sasanka2001-10-151-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@830 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the sparc.burg file be a little more flexible and rubust in the fact ofChris Lattner2001-10-141-1/+0
| | | | | | | | | renumbering of instructions. It is still horribly broken and grossly dependant on the number of instructions, but now it is a least a little better. Oh yeah it also works now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@793 91177308-0d34-0410-b5e6-96231b3b80d8
* Seperate instruction definitions into new SparcInstr.def fileChris Lattner2001-09-191-6/+8
| | | | | | | | Move contents of SparcMachineInstrDesc[] out of SparcInternals.h into Sparc.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@644 91177308-0d34-0410-b5e6-96231b3b80d8
* -- ruchiraRuchira Sasanka2001-09-181-308/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@632 91177308-0d34-0410-b5e6-96231b3b80d8
* Make class TargetMachine the common interface to all target-dependentVikram S. Adve2001-09-181-49/+64
| | | | | | | | | information, including instr, sched, and reg information. Rename files to match the primary classes they provide. Commented out call to register allocation until more tests run correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@616 91177308-0d34-0410-b5e6-96231b3b80d8
* modified printing of debug messagesRuchira Sasanka2001-09-151-26/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@593 91177308-0d34-0410-b5e6-96231b3b80d8
* added register allocation codeRuchira Sasanka2001-09-151-1/+364
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@585 91177308-0d34-0410-b5e6-96231b3b80d8
* Chris seems fond of #include <vector>. Fix these. Also convert use list inChris Lattner2001-09-141-5/+5
| | | | | | | | | Value to a vector instead of a list. Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@572 91177308-0d34-0410-b5e6-96231b3b80d8
* Checkin changes to:Chris Lattner2001-09-141-11/+9
| | | | | | | | | | 1. Clean up the TargetMachine structure. No more wierd pointers that have to be cast around and taken care of by the target. 2. Instruction Scheduling now takes the schedinfo as an argument. The same should be done with the instinfo, it just isn't now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@565 91177308-0d34-0410-b5e6-96231b3b80d8
* Move files.Chris Lattner2001-09-141-0/+123
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@561 91177308-0d34-0410-b5e6-96231b3b80d8