summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/SparcRegClassInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Several fixes to handling of int CC register:Vikram S. Adve2003-07-101-20/+24
| | | | | | | | | | | | | | | | | | | | (1) An int CC live range must be spilled if there are any interferences, even if no other "neighbour" in the interf. graph has been allocated that reg. yet. This is actually true of any class with only one reg! (2) SparcIntCCRegClass::colorIGNode sets the color even if the LR must be spilled so that the machine-independent spill code doesn't have to make the machine-dependent decision of which CC name to use based on operand type: %xcc or %icc. (These are two halves of the same register.) (3) LR->isMarkedForSpill() is no longer the same as LR->hasColor(). These should never have been the same, and this is necessary now for #2. (4) All RDCCR and WRCCR instructions are directly generated with the phony number for %ccr so that EmitAssembly/EmitBinary doesn't have to deal with this. llvm-svn: 7151
* Correction to last fix: Pointer types do not return true in Type::IsIntegral().Vikram S. Adve2003-07-061-6/+9
| | | | llvm-svn: 7113
* Major bug fix though it happened rarely (only on a compare after anVikram S. Adve2003-07-061-0/+41
| | | | | | | | integer overflow): We need to use %icc and not %xcc for comparisons on 32-bit or smaller integer values. llvm-svn: 7111
* Fixed `volatile' typo.Misha Brukman2003-05-211-1/+1
| | | | llvm-svn: 6266
* Cleaned up code layout, spacing, etc. for readability purposes and to be moreMisha Brukman2003-05-211-59/+44
| | | | | | | | | consistent with the style of LLVM's code base (and itself! it's inconsistent in some places.) No functional changes were made. llvm-svn: 6262
* Namespacified `vector' and `cerr' to always use the `std::' namespace.Misha Brukman2003-05-211-17/+21
| | | | | | Eliminated `using' directives. llvm-svn: 6261
* Move private header to private directoryChris Lattner2003-01-151-1/+1
| | | | llvm-svn: 5305
* Remove unneccesary #includesChris Lattner2002-10-291-1/+0
| | | | llvm-svn: 4408
* - Clean up interface to Sparc register handling a bit:Chris Lattner2002-08-121-10/+15
| | | | | | | | | | | | - 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
* changes to make it compatible with 64bit gccAnand Shukla2002-06-251-0/+1
| | | | llvm-svn: 2791
* Convert RegClass::IsColorUsedArr from a dynamically allocated array toChris Lattner2002-05-231-6/+7
| | | | | | a vector. This makes asserting on array bounds easier. llvm-svn: 2731
* Numerous bug fixes:Vikram S. Adve2002-05-191-38/+17
| | | | | | | | | | | | | | | | | | | | | | | | -- 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/+1
| | | | llvm-svn: 2397
* * Code CleanupsChris Lattner2002-02-051-9/+8
| | | | | | * Removal dependencies on Type.h & remove uses of getTypeID() llvm-svn: 1718
* * Eliminate the LiveVarSet class, making applyTranferFuncForMInst a staticChris Lattner2002-02-051-5/+4
| | | | | | | | | | function in the one .cpp file that uses it. Use ValueSet's instead. * Prepare to delete LiveVarSet.h & LiveVarSet.cpp * Eliminate the ValueSet class, making all old member functions into global templates that will eventually be moved to Support. * Eliminate some irrelevant const's llvm-svn: 1712
* * Minor cleanupsChris Lattner2002-02-041-63/+27
| | | | | | | | | | * 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
* Changes to build successfully with GCC 3.02Chris Lattner2002-01-201-9/+10
| | | | llvm-svn: 1503
* Added comments and correct logic for finding register sizes.Ruchira Sasanka2002-01-071-78/+73
| | | | llvm-svn: 1494
* Added code so that colorIGNode does not unnecessarily reserve unusableRuchira Sasanka2001-10-191-7/+18
| | | | | | Suggested colors for neighbors. llvm-svn: 921
* Corrected call interference bug - suggested color not allocated ifRuchira Sasanka2001-10-191-14/+45
| | | | | | volatile and there are call interferences llvm-svn: 918
* Added support for condition code loading/stroing in methods cpReg2Reg etc.Ruchira Sasanka2001-10-181-2/+2
| | | | llvm-svn: 911
* Output to cerr rather than cout so that debug info doesn't mess up assembly ↵Chris Lattner2001-10-151-4/+4
| | | | | | generation llvm-svn: 840
* added support for suggesting colorsRuchira Sasanka2001-09-301-36/+82
| | | | llvm-svn: 671
* -- ruchiraRuchira Sasanka2001-09-181-0/+238
llvm-svn: 632
OpenPOWER on IntegriCloud