Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Fix PR294 | Chris Lattner | 2004-03-16 | 1 | -1/+2 | |
| | | | | llvm-svn: 12425 | |||||
* | Simplify iterator usage now that we have next(). Also don't pass iterators ↵ | Alkis Evlogimenos | 2004-02-23 | 1 | -11/+7 | |
| | | | | | | by reference now that MachineInstr* are in an ilist llvm-svn: 11732 | |||||
* | Rename reloads/spills to loads/stores. | Alkis Evlogimenos | 2004-02-19 | 1 | -4/+4 | |
| | | | | llvm-svn: 11619 | |||||
* | Finegrainify namespacification | Chris Lattner | 2004-02-15 | 1 | -8/+12 | |
| | | | | | | Remove one of the operands of a two operand instruction llvm-svn: 11478 | |||||
* | Make dense maps keyed on physical registers smallerusing | Alkis Evlogimenos | 2004-02-15 | 1 | -1/+1 | |
| | | | | | | | | | | MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. llvm-svn: 11477 | |||||
* | Remove getAllocatedRegNum(). Use getReg() instead. | Alkis Evlogimenos | 2004-02-13 | 1 | -4/+4 | |
| | | | | llvm-svn: 11393 | |||||
* | Change MachineBasicBlock's vector of MachineInstr pointers into an | Alkis Evlogimenos | 2004-02-12 | 1 | -7/+5 | |
| | | | | | | | | | 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. llvm-svn: 11340 | |||||
* | Do not use MachineOperand::isVirtualRegister either! | Chris Lattner | 2004-02-10 | 1 | -1/+1 | |
| | | | | llvm-svn: 11283 | |||||
* | Change interface of MachineOperand as follows: | Alkis Evlogimenos | 2003-12-14 | 1 | -2/+2 | |
| | | | | | | | | | | | | | | | a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits32() to isLoBits32(), opHiBits64() to isHiBits64(), opLoBits64() to isLoBits64(). This results to much more readable code, for example compare "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used very often in the code. llvm-svn: 10461 | |||||
* | Put all LLVM code into the llvm namespace, as per bug 109. | Brian Gaeke | 2003-11-11 | 1 | -0/+4 | |
| | | | | llvm-svn: 9903 | |||||
* | Added LLVM project notice to the top of every C++ source file. | John Criswell | 2003-10-20 | 1 | -0/+7 | |
| | | | | | | Header files will be on the way. llvm-svn: 9298 | |||||
* | Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs | Alkis Evlogimenos | 2003-10-08 | 1 | -6/+6 | |
| | | | | | | | | | | | | | | | | | | | | | and TargetInstrDescriptor::ImplicitUses to always point to a null terminated array and never be null. So there is no need to check for pointer validity when iterating over those sets. Code that looked like: if (const unsigned* AS = TID.ImplicitDefs) { for (int i = 0; AS[i]; ++i) { // use AS[i] } } was changed to: for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) { // use *AS } llvm-svn: 8960 | |||||
* | Spell `necessary' correctly. | Misha Brukman | 2003-08-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 7944 | |||||
* | Factory methods for FunctionPasses now return type FunctionPass *. | Brian Gaeke | 2003-08-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 7823 | |||||
* | Set debug types | Chris Lattner | 2003-08-03 | 1 | -0/+1 | |
| | | | | llvm-svn: 7533 | |||||
* | Move DEBUG to Debug.h | Chris Lattner | 2003-08-01 | 1 | -0/+1 | |
| | | | | llvm-svn: 7497 | |||||
* | (1) Added special register class containing (for now) %fsr. | Vikram S. Adve | 2003-05-27 | 1 | -1/+1 | |
| | | | | | | | | | | | | | Fixed spilling of %fcc[0-3] which are part of %fsr. (2) Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. (3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly() and related functions and flags. Fixed several bugs where only "isDef" was being checked, not "isDefAndUse". llvm-svn: 6341 | |||||
* | Rename MachineInstrInfo -> TargetInstrInfo | Chris Lattner | 2003-01-14 | 1 | -2/+2 | |
| | | | | llvm-svn: 5272 | |||||
* | * Use the PHI Elimination pass | Chris Lattner | 2003-01-13 | 1 | -80/+6 | |
| | | | | llvm-svn: 5220 | |||||
* | Rename FunctionFrameInfo to MachineFrameInfo | Chris Lattner | 2002-12-28 | 1 | -1/+1 | |
| | | | | llvm-svn: 5200 | |||||
* | * Convert to be a MachineFunctionPass instance | Chris Lattner | 2002-12-28 | 1 | -174/+67 | |
| | | | | | | | | | | | | | | | | | | * Use new FunctionFrameInfo object to manage stack slots instead of doing it directly * Adjust to new MRegisterInfo API * Don't take a TM as a ctor argument * Don't keep track of which callee saved registers are modified * Don't emit prolog/epilog code or spill/restore code for callee saved regs * Use new allocation_order_begin/end iterators to simplify dramatically the logic for picking registers to allocate * Machine PHI nodes can no longer contain constant arguments * Use a bitvector to keep track of registers used instead of a set * Fix problem where explicitly referenced registers would be added to regsused set and never removed llvm-svn: 5196 | |||||
* | Adjustments to work with the simpler spill interface | Chris Lattner | 2002-12-25 | 1 | -22/+24 | |
| | | | | llvm-svn: 5144 | |||||
* | Fix compilation on GCC 2.96 | Chris Lattner | 2002-12-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 5113 | |||||
* | Implicit defs/uses list may be empty. | Chris Lattner | 2002-12-18 | 1 | -6/+6 | |
| | | | | llvm-svn: 5103 | |||||
* | Use new reginfo interface | Chris Lattner | 2002-12-17 | 1 | -3/+59 | |
| | | | | llvm-svn: 5099 | |||||
* | Keep the stack frame aligned. | Chris Lattner | 2002-12-16 | 1 | -0/+4 | |
| | | | | llvm-svn: 5081 | |||||
* | Rename createSimpleX86RegisterAllocator to createSimpleRegisterAllocator. | Chris Lattner | 2002-12-16 | 1 | -28/+2 | |
| | | | | | | Remvoe some dead code llvm-svn: 5070 | |||||
* | Some simpliciations to the spill/reload interface | Chris Lattner | 2002-12-15 | 1 | -25/+21 | |
| | | | | llvm-svn: 5067 | |||||
* | Simplify PHI node elimination significantly by doing it as a prepass to | Chris Lattner | 2002-12-15 | 1 | -30/+13 | |
| | | | | | | register allocation llvm-svn: 5066 | |||||
* | Variety of small or trivial simplifications to the code, completely eliminated | Chris Lattner | 2002-12-15 | 1 | -92/+68 | |
| | | | | | | the dependence on PhysRegClassMap llvm-svn: 5064 | |||||
* | Remove unused savePhysRegToStack method | Chris Lattner | 2002-12-15 | 1 | -28/+4 | |
| | | | | llvm-svn: 5061 | |||||
* | Localize a map, remove another | Chris Lattner | 2002-12-15 | 1 | -9/+3 | |
| | | | | llvm-svn: 5060 | |||||
* | Give simple reg allocator a nice Pass Name | Chris Lattner | 2002-12-15 | 1 | -1/+5 | |
| | | | | llvm-svn: 5058 | |||||
* | Add a big assert making sure 2 address instructions are formed right | Chris Lattner | 2002-12-15 | 1 | -0/+6 | |
| | | | | llvm-svn: 5057 | |||||
* | Fix a problem that occurs when PHI nodes have multiple entries for the same ↵ | Chris Lattner | 2002-12-15 | 1 | -30/+47 | |
| | | | | | | predecessor llvm-svn: 5055 | |||||
* | Grab bag of minor cleanups. Export some statistics about the number of | Chris Lattner | 2002-12-15 | 1 | -46/+56 | |
| | | | | | | spills and reloads emitted llvm-svn: 5054 | |||||
* | Simplify interfaces used by regalloc to insert code | Chris Lattner | 2002-12-15 | 1 | -9/+6 | |
| | | | | llvm-svn: 5052 | |||||
* | * Simplify code a bit by breaking the PHI node handling stuff out into a ↵ | Chris Lattner | 2002-12-15 | 1 | -152/+161 | |
| | | | | | | | | | | seperate function from normal regalloc code * Make the regalloc for a block a function instead of part of runOnMachineBB, which makes it easier to see what's going on in runOnMBB. llvm-svn: 5051 | |||||
* | * Remove some unneccesary instance variables | Chris Lattner | 2002-12-15 | 1 | -19/+16 | |
| | | | | | | * Make allocateStackSpaceFor only allocate the right amount of space llvm-svn: 5048 | |||||
* | pull inverse reg class mapping into a class that is sharable and out of the | Chris Lattner | 2002-12-15 | 1 | -6/+28 | |
| | | | | | | target register description classes. llvm-svn: 5045 | |||||
* | Prune #includes | Chris Lattner | 2002-12-15 | 1 | -8/+2 | |
| | | | | llvm-svn: 5044 | |||||
* | Remove extraneous #includes, perform FIXME | Chris Lattner | 2002-12-15 | 1 | -10/+6 | |
| | | | | llvm-svn: 5043 | |||||
* | Fix borkness with not using MachineBasicBlocks in PHI nodes | Chris Lattner | 2002-12-15 | 1 | -12/+1 | |
| | | | | llvm-svn: 5035 | |||||
* | Fixed a bug where moves due to phis were being neglected. | Misha Brukman | 2002-12-13 | 1 | -23/+19 | |
| | | | | llvm-svn: 5019 | |||||
* | Need to insert all moves due to PHI nodes before *ALL* jumps in a predecessor | Misha Brukman | 2002-12-13 | 1 | -15/+10 | |
| | | | | | | basic block, as there could be multiple. llvm-svn: 5016 | |||||
* | This should be more correct: invalidates physical registers that are used in | Misha Brukman | 2002-12-13 | 1 | -4/+41 | |
| | | | | | | an instruction to avoid using them to allocate to other virtual registers. llvm-svn: 5013 | |||||
* | Fixed bug with running out of registers. Also, reinstated namespace which | Misha Brukman | 2002-12-13 | 1 | -2/+5 | |
| | | | | | | disappeared during the last checkin. llvm-svn: 5007 | |||||
* | This should handle register allocating PHI nodes. | Misha Brukman | 2002-12-13 | 1 | -23/+97 | |
| | | | | llvm-svn: 5002 | |||||
* | Start allocating stack space at [ebp-4] to not overwrite the return address. | Misha Brukman | 2002-12-13 | 1 | -2/+9 | |
| | | | | | | Also make all loads & stores 4-byte aligned for performance. ;) llvm-svn: 4982 | |||||
* | Take advantage of our knowledge of 2-address X86 instructions and | Misha Brukman | 2002-12-12 | 1 | -7/+24 | |
| | | | | | | register-allocated them appropriately. llvm-svn: 4976 |