aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Target/MRegisterInfo.h
Commit message (Collapse)AuthorAgeFilesLines
* Move destructor out of line to avoid vtable emission in every file that ↵Nate Begeman2004-10-271-1/+1
| | | | | | includes the header. Thanks to sabre. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17278 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the build by eliminating some more dead code. That'll learn me not to ↵Nate Begeman2004-10-271-1/+1
| | | | | | listen to Reid git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17275 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead data member in MRegisterInfo class. Thanks sabre!Nate Begeman2004-10-271-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17274 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove method getRegClass from MRegisterInfo, as it is no longer used.Nate Begeman2004-10-261-9/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17243 91177308-0d34-0410-b5e6-96231b3b80d8
* Update doxygen comment now that getSpillSize is supposed to return value in bitsNate Begeman2004-08-291-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16101 91177308-0d34-0410-b5e6-96231b3b80d8
* Add getAllocatableSet() function.Alkis Evlogimenos2004-08-261-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16059 91177308-0d34-0410-b5e6-96231b3b80d8
* Flags and TSFlags were (thankfully) never used, so remove them. But wait,Chris Lattner2004-08-161-4/+16
| | | | | | | not so fast, add some fields for spill slot size and alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15803 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new TargetRegisterClass::contains methodChris Lattner2004-08-151-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15783 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a long overdue FIXME, by changing these methods to return void.Chris Lattner2004-08-151-25/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15778 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate the RegisterClass argument, since it can easily be derived fromChris Lattner2004-08-151-4/+2
| | | | | | | the regno git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15773 91177308-0d34-0410-b5e6-96231b3b80d8
* Elminiate MachineFunction& argument from eliminateFrameIndexNate Begeman2004-08-141-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15736 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix out of date commentChris Lattner2004-07-271-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15256 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix grammar: 's is for possessive only.Misha Brukman2004-06-111-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14155 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a nasty bug that caused areAliases to always return false.Chris Lattner2004-06-041-1/+1
| | | | | | | Bug fix courtesy of Anshu Dasgupta git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14011 91177308-0d34-0410-b5e6-96231b3b80d8
* Another API change to MRegisterInfo::foldMemoryOperand. Instead of aAlkis Evlogimenos2004-03-141-1/+1
| | | | | | | MachineBasicBlock::iterator take a MachineInstr*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12392 91177308-0d34-0410-b5e6-96231b3b80d8
* Change MRegisterInfo::foldMemoryOperand to return the foldedAlkis Evlogimenos2004-03-141-9/+10
| | | | | | | instruction to make the API more flexible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12386 91177308-0d34-0410-b5e6-96231b3b80d8
* Uncomment assertions that register# != 0 on calls toAlkis Evlogimenos2004-02-261-2/+2
| | | | | | | | MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes to relevant files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11882 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily comment out asserts as they break things. I will uncommentAlkis Evlogimenos2004-02-251-2/+2
| | | | | | | them when all the problem areas are fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11855 91177308-0d34-0410-b5e6-96231b3b80d8
* Duh, forgot to close the parenthesis.Alkis Evlogimenos2004-02-251-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11843 91177308-0d34-0410-b5e6-96231b3b80d8
* Add assert to isPhysicalRegister and isVirtualRegister to fail whenAlkis Evlogimenos2004-02-251-0/+2
| | | | | | | passed the special 'register' 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11842 91177308-0d34-0410-b5e6-96231b3b80d8
* Add DenseMap template and actually use it for for mapping virtual regsAlkis Evlogimenos2004-02-251-1/+9
| | | | | | | to objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11840 91177308-0d34-0410-b5e6-96231b3b80d8
* This is needed by assignment verification in linear-scan.Alkis Evlogimenos2004-02-191-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11618 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify and document the new interfaceChris Lattner2004-02-171-7/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11524 91177308-0d34-0410-b5e6-96231b3b80d8
* Add API to check and fold memory operands into instructions.Alkis Evlogimenos2004-02-171-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11519 91177308-0d34-0410-b5e6-96231b3b80d8
* The prologue/epilogue related method calls have no reason to return a value,Chris Lattner2004-02-141-11/+10
| | | | | | | make them return void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11447 91177308-0d34-0410-b5e6-96231b3b80d8
* Change interface so that we can add to the end of a basic blockAlkis Evlogimenos2004-02-121-6/+6
| | | | | | | | without getting an assertion from ilist that we are dereferencing ilist<T>::end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11345 91177308-0d34-0410-b5e6-96231b3b80d8
* Change MachineBasicBlock's vector of MachineInstr pointers into anAlkis Evlogimenos2004-02-121-7/+8
| | | | | | | | | | ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11340 91177308-0d34-0410-b5e6-96231b3b80d8
* Add MRegisterInfo::getNumRegs().Alkis Evlogimenos2004-02-011-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11058 91177308-0d34-0410-b5e6-96231b3b80d8
* Add two static methods to avoid having client code explicitly compare againstChris Lattner2004-01-311-0/+12
| | | | | | | FirstVirtualRegister git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11031 91177308-0d34-0410-b5e6-96231b3b80d8
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
* Since this function returns an int, let's actually return something.Misha Brukman2003-11-051-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9734 91177308-0d34-0410-b5e6-96231b3b80d8
* Update documentation since it was misleading: make it clear that aAlkis Evlogimenos2003-11-041-10/+12
| | | | | | | | negative instruction count is returned if instructions are removed from a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9705 91177308-0d34-0410-b5e6-96231b3b80d8
* Change all machine basic block modifier functions in MRegisterInfo toAlkis Evlogimenos2003-11-041-23/+45
| | | | | | | | | | | | | | | | return the number of instructions added to/removed from the basic block passed as their first argument. Note: This is only needed because we use a std::vector instead of an ilist to keep MachineBasicBlock instructions. Inserting an instruction to a MachineBasicBlock invalidates all iterators to the basic block. The return value can be used to update an index to the machine basic block instruction vector and circumvent the iterator elimination problem but this is really not needed if we move to a better representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9704 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright header (for lack of a better term).John Criswell2003-10-201-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
* The word `dependent' has no `a'.Misha Brukman2003-08-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
* Code generation passes don't need access to raw LLVM types, this method is ↵Chris Lattner2003-07-301-2/+1
| | | | | | unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7412 91177308-0d34-0410-b5e6-96231b3b80d8
* Move value type enums to CodeGen/ValueTypes.hChris Lattner2003-07-291-20/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7376 91177308-0d34-0410-b5e6-96231b3b80d8
* #include <cassert> as necessary...Chris Lattner2003-07-251-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7315 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a ton of extraneous #includesChris Lattner2003-06-221-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6842 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new getName methodChris Lattner2003-01-131-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5212 91177308-0d34-0410-b5e6-96231b3b80d8
* * Keep track of register alignment as well as register sizeChris Lattner2002-12-281-35/+105
| | | | | | | | | | | | | | * Add comments * Add a new allocation_order iterator for register classes which targets may use to control the register order and available registers based on properties of the function being compiled. * Remove access to FP and SP registers * Add new callframe setup opcode support * Eliminate moveImm2Reg method * Revamp frame offset handling and prolog/epilog code generation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5167 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify spill interface methodsChris Lattner2002-12-251-21/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5142 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify interface to remove virtual function referencesChris Lattner2002-12-171-26/+50
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5100 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for register alias set descriptionChris Lattner2002-12-161-5/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5080 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify interfaces used by regalloc to insert codeChris Lattner2002-12-151-12/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5052 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify TargetRegisterClass a bit, also eliminating virtual function callChris Lattner2002-12-151-14/+18
| | | | | | | overhead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5049 91177308-0d34-0410-b5e6-96231b3b80d8
* * Rename const_regclass_begin/end to just regclass_begin/endChris Lattner2002-12-151-23/+3
| | | | | | | | * Regclass iterators need an extra level of pointerness to work right * Pull inverse mapping code out of target description files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5046 91177308-0d34-0410-b5e6-96231b3b80d8
* Added moveReg2Reg() and moveImm2Reg() to accomodate moving data around due toMisha Brukman2002-12-131-0/+10
| | | | | | | PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5001 91177308-0d34-0410-b5e6-96231b3b80d8
* Added prototypes for emitting prologue and epilogue for function codeMisha Brukman2002-12-041-0/+10
| | | | | | | generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4927 91177308-0d34-0410-b5e6-96231b3b80d8
* storeReg2RegOffset() and loadRegOffset2Reg() now take the iterator by valueMisha Brukman2002-12-041-2/+2
| | | | | | | instead of by reference, since they return the modified iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4914 91177308-0d34-0410-b5e6-96231b3b80d8