Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | isMarkedForSpill() should be const. | Vikram S. Adve | 2003-07-10 | 1 | -1/+1 |
| | | | | llvm-svn: 7155 | ||||
* | Print out all neighbors in interference graph, not just higher-numbered ones. | Vikram S. Adve | 2003-07-10 | 1 | -1/+1 |
| | | | | llvm-svn: 7153 | ||||
* | Several fixes to handling of int CC register: | Vikram S. Adve | 2003-07-10 | 1 | -8/+10 |
| | | | | | | | | | | | | | | | | | | | | | (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: 7152 | ||||
* | Minor beautification: fold a couple of lines of code. | Vikram S. Adve | 2003-07-02 | 1 | -3/+2 |
| | | | | llvm-svn: 7054 | ||||
* | Remove a ton of extraneous #includes | Chris Lattner | 2003-06-22 | 2 | -5/+1 |
| | | | | llvm-svn: 6842 | ||||
* | Included assert.h so that the code compiles under newer versions of GCC. | John Criswell | 2003-06-11 | 2 | -0/+3 |
| | | | | llvm-svn: 6682 | ||||
* | Minor changes. | Vikram S. Adve | 2003-05-31 | 1 | -0/+5 |
| | | | | llvm-svn: 6470 | ||||
* | Extensive changes to the way code generation occurs for function | Vikram S. Adve | 2003-05-31 | 2 | -157/+261 |
| | | | | | | | | | | | | | | 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 | ||||
* | (1) Added special register class containing (for now) %fsr. | Vikram S. Adve | 2003-05-27 | 2 | -16/+15 |
| | | | | | | | | | | | | | 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 | ||||
* | Adjust to new interfaces | Chris Lattner | 2003-01-15 | 2 | -6/+8 |
| | | | | llvm-svn: 5314 | ||||
* | Move headers around | Chris Lattner | 2003-01-15 | 2 | -2/+2 |
| | | | | llvm-svn: 5312 | ||||
* | Header is moved into local directory | Chris Lattner | 2003-01-15 | 1 | -3/+2 |
| | | | | llvm-svn: 5311 | ||||
* | Add new method | Chris Lattner | 2003-01-15 | 1 | -0/+1 |
| | | | | llvm-svn: 5309 | ||||
* | #include RegClass.h explicitly | Chris Lattner | 2003-01-15 | 4 | -4/+5 |
| | | | | llvm-svn: 5307 | ||||
* | Remvoe dependency on RegClass.h | Chris Lattner | 2003-01-15 | 1 | -3/+4 |
| | | | | llvm-svn: 5306 | ||||
* | Use buildmi not MI ctor directly | Chris Lattner | 2003-01-15 | 1 | -3/+2 |
| | | | | llvm-svn: 5293 | ||||
* | Rename llvm/Analysis/LiveVar/FunctionLiveVarInfo.h -> ↵ | Chris Lattner | 2003-01-14 | 1 | -1/+1 |
| | | | | | | llvm/CodeGen/FunctionLiveVarInfo.h llvm-svn: 5284 | ||||
* | Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h | Chris Lattner | 2003-01-14 | 2 | -2/+2 |
| | | | | llvm-svn: 5282 | ||||
* | Rename MachineInstrInfo -> TargetInstrInfo | Chris Lattner | 2003-01-14 | 2 | -2/+2 |
| | | | | llvm-svn: 5272 | ||||
* | More renamings of Target/Machine*Info to Target/Target*Info | Chris Lattner | 2002-12-29 | 4 | -12/+12 |
| | | | | llvm-svn: 5204 | ||||
* | Rename MachineFrameInfo to TargetFrameInfo.h | Chris Lattner | 2002-12-28 | 1 | -1/+1 |
| | | | | llvm-svn: 5199 | ||||
* | Frame info moved out of MachineFunction into a seperate object | Chris Lattner | 2002-12-28 | 1 | -6/+7 |
| | | | | llvm-svn: 5192 | ||||
* | Use higher level methods, don't use TargetInstrDescriptors directly! | Chris Lattner | 2002-10-29 | 1 | -2/+2 |
| | | | | llvm-svn: 4389 | ||||
* | Remove #include, misleading comment, and a typedef used only once | Chris Lattner | 2002-10-29 | 1 | -25/+4 |
| | | | | llvm-svn: 4383 | ||||
* | Inline typedef, eliminate unused method | Chris Lattner | 2002-10-29 | 2 | -24/+12 |
| | | | | llvm-svn: 4382 | ||||
* | Remove long dead #if 0 | Chris Lattner | 2002-10-29 | 1 | -4/+0 |
| | | | | llvm-svn: 4381 | ||||
* | Add #includes that were eliminated from headers | Chris Lattner | 2002-10-29 | 4 | -1/+14 |
| | | | | llvm-svn: 4380 | ||||
* | De-inline methods | Chris Lattner | 2002-10-29 | 1 | -9/+2 |
| | | | | llvm-svn: 4379 | ||||
* | Remove #include | Chris Lattner | 2002-10-29 | 1 | -1/+0 |
| | | | | llvm-svn: 4378 | ||||
* | Remove unneeded #include | Chris Lattner | 2002-10-29 | 1 | -10/+9 |
| | | | | llvm-svn: 4377 | ||||
* | Remove forward decl | Chris Lattner | 2002-10-29 | 1 | -1/+0 |
| | | | | llvm-svn: 4376 | ||||
* | Make assertIGNode be private to the InterferenceGraph.cpp file | Chris Lattner | 2002-10-29 | 2 | -29/+26 |
| | | | | llvm-svn: 4375 | ||||
* | Rename some regalloc fields | Chris Lattner | 2002-10-28 | 1 | -4/+4 |
| | | | | llvm-svn: 4346 | ||||
* | Eliminate usage of MachineBasicBlock::get | Chris Lattner | 2002-10-28 | 2 | -103/+82 |
| | | | | llvm-svn: 4344 | ||||
* | Rename the redundant MachineOperand::getOperandType() to ↵ | Chris Lattner | 2002-10-28 | 2 | -17/+17 |
| | | | | | | MachineOperand::getType() llvm-svn: 4331 | ||||
* | Add #includes now that MachineInstr.h doesn't include ↵ | Chris Lattner | 2002-10-28 | 2 | -0/+2 |
| | | | | | | llvm/Target/MachineInstrInfo.h llvm-svn: 4327 | ||||
* | *** empty log message *** | Chris Lattner | 2002-10-28 | 2 | -2/+0 |
| | | | | llvm-svn: 4323 | ||||
* | *** empty log message *** | Chris Lattner | 2002-10-28 | 2 | -26/+25 |
| | | | | llvm-svn: 4317 | ||||
* | Changed `MachineCodeForMethod' to `MachineFunction'. | Misha Brukman | 2002-10-28 | 2 | -5/+5 |
| | | | | llvm-svn: 4301 | ||||
* | Ensure definate initialization | Chris Lattner | 2002-10-22 | 1 | -1/+1 |
| | | | | llvm-svn: 4263 | ||||
* | - Two minor improvements to the MachineInstr class to reduce footprint and | Chris Lattner | 2002-10-22 | 1 | -9/+8 |
| | | | | | | | overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a bitvector. Sped up LLC a little less than 10% in a debug build! llvm-svn: 4261 | ||||
* | Major bug fix: spill code for an instruction in a delay slot was | Vikram S. Adve | 2002-10-11 | 1 | -11/+73 |
| | | | | | | merrily being inserted before/after the instruction! llvm-svn: 4116 | ||||
* | Added a couple of helper methods for live range construction. | Vikram S. Adve | 2002-09-28 | 1 | -13/+12 |
| | | | | llvm-svn: 3970 | ||||
* | Live ranges for Return value and return address of a Call are now | Vikram S. Adve | 2002-09-28 | 1 | -91/+71 |
| | | | | | | | created here, simply by handling all implicit operands (which should have been done anyway). llvm-svn: 3969 | ||||
* | Fixed incorrect assertion: spill code for function ptr should be | Vikram S. Adve | 2002-09-28 | 1 | -3/+4 |
| | | | | | | handled like normal operands, not like other call arguments. llvm-svn: 3967 | ||||
* | Add method IGNode::getCombinedDegree to count the sum of the degrees | Vikram S. Adve | 2002-09-20 | 1 | -0/+3 |
| | | | | | | of two nodes, excluding duplicates. llvm-svn: 3848 | ||||
* | Allow copy coalescing in more cases: if sum of node degrees is more than | Vikram S. Adve | 2002-09-20 | 2 | -1/+26 |
| | | | | | | | | than #available regs, compute the sum excluding duplicates and if that is less than #regs, go ahead and coalesce. Add method IGNode::getCombinedDegree to count excluding duplicates. llvm-svn: 3842 | ||||
* | Fix typos in previous checkin. | Vikram S. Adve | 2002-09-15 | 1 | -2/+2 |
| | | | | llvm-svn: 3726 | ||||
* | RegAllocCommon no longer includes CommandLine.h so we have to include it | Chris Lattner | 2002-09-15 | 1 | -0/+1 |
| | | | | | | here. llvm-svn: 3725 | ||||
* | Break RA_DEBUG option into several levels to get better control over | Vikram S. Adve | 2002-09-14 | 6 | -104/+117 |
| | | | | | | debug output. llvm-svn: 3724 |