summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/SparcInternals.h
Commit message (Collapse)AuthorAgeFilesLines
* Extensive changes to the way code generation occurs for functionVikram S. Adve2003-05-311-27/+14
| | | | | | | | | | | | | | call arguments and return values: Now all copy operations before and after a call are generated during selection instead of during register allocation. The values are copied to virtual registers (or to the stack), but in the former case these operands are marked with the correct physical registers according to the calling convention. Although this complicates scheduling and does not work well with live range analysis, it simplifies the machine-dependent part of register allocation. llvm-svn: 6465
* The register types need to be visible outside of the class to be useful.Misha Brukman2003-05-301-14/+13
| | | | | | For one, converting register numbers based on class in the code emitter. llvm-svn: 6447
* Added the 'r' and 'i' annotations to instructions as their opcode names haveMisha Brukman2003-05-271-3/+3
| | | | | | changed. llvm-svn: 6380
* Add prototypes to add passes to JIT compilation and code emission.Misha Brukman2003-05-271-8/+17
| | | | | | | | Also, added annotations to how instructions are modified (reg/imm operands). Added prototype for adding register numbers to values pass for interfacing with the target-independent register allocators in the JIT. llvm-svn: 6366
* Added special register class containing (for now) %fsr.Vikram S. Adve2003-05-271-52/+8
| | | | | | | | Fixed spilling of %fcc[0-3] which are part of %fsr. Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. llvm-svn: 6339
* Add support for compiling varargs functions.Vikram S. Adve2003-05-251-2/+2
| | | | llvm-svn: 6325
* Reword to remove reference to how things worked in the past.Misha Brukman2003-05-241-4/+3
| | | | llvm-svn: 6323
* Implement the TargetInstrInfo's createNOPinstr() and isNOPinstr() interface.Misha Brukman2003-05-241-0/+29
| | | | llvm-svn: 6320
* Sparc instruction opcodes now all live under the `V9' namespace.Misha Brukman2003-05-201-20/+24
| | | | llvm-svn: 6249
* Move sparc specific code into the Sparc backendChris Lattner2003-01-151-0/+2
| | | | llvm-svn: 5317
* Adjust to simpler interfacesChris Lattner2003-01-151-14/+1
| | | | | | Eliminate dependency on RegClass.h llvm-svn: 5315
* Rename MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-141-5/+5
| | | | llvm-svn: 5272
* More renamings of Target/Machine*Info to Target/Target*InfoChris Lattner2002-12-291-7/+7
| | | | llvm-svn: 5204
* Rename MachineOptInfo to TargetoptInfoChris Lattner2002-12-291-10/+8
| | | | | | Rename MachineCacheInfo to TargetCacheInfo llvm-svn: 5202
* Rename MachineFrameInfo to TargetFrameInfo.hChris Lattner2002-12-281-1/+1
| | | | llvm-svn: 5199
* * Rename MachineFrameInfo to TargetFrameInfoChris Lattner2002-12-281-4/+28
| | | | | | * Move some sparc specific code here from Target files llvm-svn: 5176
* These are no longer virtual methodsChris Lattner2002-10-291-5/+5
| | | | llvm-svn: 4420
* Allow TargetMachine to refuse static code genChris Lattner2002-10-291-1/+1
| | | | llvm-svn: 4415
* MachineInstrInfo doesn't need a TargetMachineChris Lattner2002-10-291-1/+1
| | | | llvm-svn: 4372
* Remove all traces of the "Opcode Mask" field in the MachineInstr classChris Lattner2002-10-281-7/+0
| | | | llvm-svn: 4359
* Move addPassesToEmitAssembly from TargetMachine to UltraSparc because itChris Lattner2002-10-281-1/+2
| | | | | | really is sparc specific. llvm-svn: 4308
* Changed `MachineCodeForMethod' to `MachineFunction'.Misha Brukman2002-10-281-7/+7
| | | | llvm-svn: 4301
* Eliminate duplicate target pointer in SparcRegInfo.Vikram S. Adve2002-10-131-11/+0
| | | | llvm-svn: 4129
* Simplified code that handles call args and rets, so it no longerVikram S. Adve2002-09-281-4/+2
| | | | | | needs the RegClass list to be passed in. llvm-svn: 3964
* Modify operand order for Create{Sign,Zero}ExtensionInstructions.Vikram S. Adve2002-09-271-4/+4
| | | | llvm-svn: 3960
* Added class MachineOptInfo as interface to target-specificVikram S. Adve2002-09-201-2/+25
| | | | | | | routines supporting machine code optimization. Also added method MachineInstrInfo::getNOPOpCode(). llvm-svn: 3845
* Move all the code that creates code generation passes from Sparc.cpp toVikram S. Adve2002-09-161-15/+77
| | | | | | | | TargetMachine.cpp, since it is entirely machine-independent. Also, add options to disable optional back-end passes (preselection and instr. scheduling). llvm-svn: 3740
* Add new function UltraSparcInstrInfo::CreateZeroExtensionInstructions.Vikram S. Adve2002-09-051-1/+17
| | | | llvm-svn: 3581
* - Clean up interface to Sparc register handling a bit:Chris Lattner2002-08-121-1/+1
| | | | | | | | | | | | - Eliminate Sparc*Order classes, moving contents to Sparc*Class classes - get register name methods now return const char * const pointers instead of std::string's. - Added file header comments to SparcRegClassInfo.(cpp|h) - Moved BIG constant arrays out of SparcRegClassInfo.h, into SparcRegInfo.cpp. This should allow a LOT of std::string constructors to not have to be called. llvm-svn: 3295
* * Removed extraneous #includesChris Lattner2002-08-091-11/+7
| | | | | | | * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes llvm-svn: 3278
* GCC 3.1 changes, finally the burm file builds the FIRST time a clean ↵Chris Lattner2002-07-251-0/+1
| | | | | | directory is built. llvm-svn: 3073
* added std:: to vectorAnand Shukla2002-07-111-2/+2
| | | | llvm-svn: 2874
* Changed interface to insertCallerSavingCode().Vikram S. Adve2002-07-101-1/+3
| | | | llvm-svn: 2859
* Numerous changes in interface to class SparcRegInfo corresponding toVikram S. Adve2002-07-081-75/+78
| | | | | | | | changes in class MachineRegInfo (see MachineRegInfo.h for details). Added {LD,ST}[X]FSR instructions. llvm-svn: 2839
* Remove diff-cluttering tagsChris Lattner2002-06-301-1/+0
| | | | llvm-svn: 2808
* changes to make it compatible with 64bit gccAnand Shukla2002-06-251-4/+4
| | | | llvm-svn: 2791
* Numerous bug fixes:Vikram S. Adve2002-05-191-50/+73
| | | | | | | | | | | | | | | | | | | | | | | | -- correct sign extensions for integer casts and for shift-by-constant instructions generated for integer multiply -- 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 stack frame size when padding a section -- folding getelementptr operations with mixed array and struct indexes -- use uint64_t instead of uint for constant offsets in mem operands -- 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: 2640
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-291-1/+0
| | | | llvm-svn: 2397
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-271-17/+17
| | | | | | | | | | | | | | | - 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
* Added functions to compute which register, if any, to useVikram S. Adve2002-04-251-15/+20
| | | | | | for a particular argument in a list of arguments. llvm-svn: 2315
* Include prototype for interface to PrologEpilogCodeInserter.cpp fileChris Lattner2002-04-091-0/+2
| | | | llvm-svn: 2192
* s/Method/FunctionChris Lattner2002-04-081-6/+6
| | | | llvm-svn: 2180
* Added function getCallInstIndirectAddrVal() to set call interferenceVikram S. Adve2002-03-311-1/+3
| | | | | | for that value. llvm-svn: 2074
* s/Method/FunctionChris Lattner2002-03-291-1/+2
| | | | llvm-svn: 2035
* Several sundry bug fixes.Vikram S. Adve2002-03-181-15/+23
| | | | llvm-svn: 1890
* Clean up std namespace issuesChris Lattner2002-02-241-1/+1
| | | | | | Silence warning llvm-svn: 1790
* Write llvm bytecode to output .s file as last step of LLC.Chris Lattner2002-02-111-0/+1
| | | | llvm-svn: 1728
* * Minor cleanupsChris Lattner2002-02-041-198/+62
| | | | | | | | | | * 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 llvm-svn: 1677
* Move a ton of tables out of SparcInternals.h and move them to Sparc.cpp.Chris Lattner2002-02-041-687/+1
| | | | | | | Eventually they will probably get moved again, but at least now they aren't having to be compiled by 7 different .cpp files... llvm-svn: 1666
* Convert sparc backend over to use pass based compilation structure.Chris Lattner2002-02-031-29/+9
| | | | | | Try to decouple stuff as much as possible. llvm-svn: 1664
OpenPOWER on IntegriCloud