aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SparcV9/SparcV9TargetMachine.cpp
AgeCommit message (Collapse)Author
2002-09-20Added class MachineOptInfo as interface to target-specificVikram S. Adve
routines supporting machine code optimization. Also added method MachineInstrInfo::getNOPOpCode(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3845 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16Move all the code that creates code generation passes from Sparc.cpp toVikram S. Adve
TargetMachine.cpp, since it is entirely machine-independent. Also, add options to disable optional back-end passes (preselection and instr. scheduling). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3740 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27Added getFunctionInfo and MappingInfoForFunction pass, and fixed the earlier ↵Anand Shukla
error in compiling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3513 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07Fix breakage in the buildChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3258 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-05added Mapping and Function PassMehwish Nagda
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3251 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30* Move InstructionSelection pass to lib/CodeGen/InstrSelection so it isChris Lattner
shared by backends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3146 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25GCC 3.1 changes, finally the burm file builds the FIRST time a clean ↵Chris Lattner
directory is built. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3073 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-15Added the Mapping Pass to out put Mapping Info to .s fileMehwish Nagda
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2913 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-25MEGAPATCH checkin.Chris Lattner
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
2002-04-29Add new optional getPassName() virtual function that a Pass can overrideChris Lattner
to make debugging output a lot nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2395 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27* Rename MethodPass class to FunctionPassChris Lattner
- 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
2002-04-25Don't pad spills and temp. stack areas for alignment.Vikram S. Adve
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
2002-04-09* Add a useful file commentChris Lattner
* 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
2002-04-08s/Method/FunctionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2180 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07Change references to the Method class to be references to the FunctionChris Lattner
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
2002-03-24Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().Vikram S. Adve
Also re-enable instr. scheduling pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1966 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18Minor fixes.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1892 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-12* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and intoChris Lattner
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
2002-02-12Method.h no longer includes BasicBlock.hChris Lattner
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
2002-02-11Write llvm bytecode to output .s file as last step of LLC.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1728 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04The interface to instruction scheduling is now just a call to get the pass.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1702 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04Convert RegisterAllocator interface to opaque pass type, so that users do notChris Lattner
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
2002-02-04* Minor cleanupsChris Lattner
* 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
2002-02-04Pull all of the scheduling related stuff out of Sparc.cpp into it's own fileChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1668 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined passChris Lattner
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
2002-02-04Move a ton of tables out of SparcInternals.h and move them to Sparc.cpp.Chris Lattner
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
2002-02-03Convert sparc backend over to use pass based compilation structure.Chris Lattner
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
2002-02-03* Swithc to new MachineCodeForInstruction modelChris Lattner
* Implement memory freeing for instruction temporaries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1653 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-20Changes to build successfully with GCC 3.02Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-07Added comments and correct logic for finding register sizes.Ruchira Sasanka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1494 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12When allocating space on stack for writing a register,Vikram S. Adve
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
2001-11-09Added class UltraSparcCacheInfo.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1225 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08Use MachineFrameInfo as base class of UltraSparcFrameInfo, and madeVikram S. Adve
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
2001-10-22Added a frame layout class, and code to insert prolog/epilog code.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@942 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18Moved implementation of class UltraSparcInstrInfo to SparcInstrInfo.cpp.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@863 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15Output to cerr rather than cout so that debug info doesn't mess up assembly ↵Chris Lattner
generation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@840 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15updated suggesting/coloring of call & return args & implicit operandsRuchira Sasanka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@830 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14Make the sparc.burg file be a little more flexible and rubust in the fact ofChris Lattner
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
2001-09-19Seperate instruction definitions into new SparcInstr.def fileChris Lattner
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
2001-09-18-- ruchiraRuchira Sasanka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@632 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18Make class TargetMachine the common interface to all target-dependentVikram S. Adve
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
2001-09-15modified printing of debug messagesRuchira Sasanka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@593 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15added register allocation codeRuchira Sasanka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@585 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14Chris seems fond of #include <vector>. Fix these. Also convert use list inChris Lattner
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
2001-09-14Checkin changes to:Chris Lattner
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
2001-09-14Move files.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@561 91177308-0d34-0410-b5e6-96231b3b80d8