Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Eliminate RegisterAnalysis. RegisterPass now does all that is necessary. | Chris Lattner | 2006-08-27 | 1 | -1/+1 | |
| | | | | llvm-svn: 29921 | |||||
* | Eliminate data relocations by using NULL instead of global empty list. | Jim Laskey | 2006-07-21 | 1 | -6/+10 | |
| | | | | llvm-svn: 29250 | |||||
* | Remove a bunch more dead V9 specific stuff | Chris Lattner | 2006-05-04 | 1 | -8/+6 | |
| | | | | llvm-svn: 28094 | |||||
* | Add a LiveVariables::VarInfo::dump method | Chris Lattner | 2006-01-04 | 1 | -0/+20 | |
| | | | | llvm-svn: 25080 | |||||
* | Add section switching to common code generator code. Add a couple of | Chris Lattner | 2005-11-21 | 1 | -2/+3 | |
| | | | | | | asserts. llvm-svn: 24445 | |||||
* | Implement LiveVariables.h change | Chris Lattner | 2005-08-24 | 1 | -0/+30 | |
| | | | | llvm-svn: 22994 | |||||
* | adjust to new live variables interface | Chris Lattner | 2005-08-23 | 1 | -22/+24 | |
| | | | | llvm-svn: 22992 | |||||
* | allow a virtual register to be associated with live-in values. | Chris Lattner | 2005-05-13 | 1 | -4/+4 | |
| | | | | llvm-svn: 21927 | |||||
* | Remove trailing whitespace | Misha Brukman | 2005-04-21 | 1 | -10/+10 | |
| | | | | llvm-svn: 21420 | |||||
* | Consider the livein/out set for a function, allowing targets to not have to | Chris Lattner | 2005-04-09 | 1 | -0/+20 | |
| | | | | | | use ugly imp_def/imp_uses for arguments and return values. llvm-svn: 21180 | |||||
* | Just in case, handle something that is both a use and a def. | Chris Lattner | 2005-01-19 | 1 | -1/+2 | |
| | | | | llvm-svn: 19696 | |||||
* | When an instruction moves, make sure to update the VarInfo::Kills list as | Chris Lattner | 2005-01-19 | 1 | -3/+10 | |
| | | | | | | | well as all of teh other stuff in livevar. This fixes the compiler crash on fourinarow last night. llvm-svn: 19695 | |||||
* | Do not use variable sized arrays in C++, they are non-portable. Patch | Chris Lattner | 2004-10-25 | 1 | -5/+5 | |
| | | | | | | contributed by Morten Ofstad llvm-svn: 17217 | |||||
* | Changes For Bug 352 | Reid Spencer | 2004-09-01 | 1 | -2/+2 | |
| | | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137 | |||||
* | Give a better assertion if we see a use before a def. | Alkis Evlogimenos | 2004-09-01 | 1 | -0/+2 | |
| | | | | llvm-svn: 16135 | |||||
* | Remove dead code. | Alkis Evlogimenos | 2004-08-28 | 1 | -1/+0 | |
| | | | | llvm-svn: 16077 | |||||
* | Use newly added API in MRegisterInfo and don't expose the allocatable | Alkis Evlogimenos | 2004-08-26 | 1 | -13/+1 | |
| | | | | | | register set anymore. Its users now use the MRegisterInfo API. llvm-svn: 16061 | |||||
* | There is no need to store the MBB along with the MI any more, we can now | Chris Lattner | 2004-07-19 | 1 | -9/+9 | |
| | | | | | | ask instructions for their parent. llvm-svn: 14998 | |||||
* | Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead) | Chris Lattner | 2004-07-19 | 1 | -2/+3 | |
| | | | | llvm-svn: 14997 | |||||
* | Remove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent() | Chris Lattner | 2004-07-19 | 1 | -4/+4 | |
| | | | | llvm-svn: 14996 | |||||
* | Add checks to ensure that there are no unreachable blocks in the function | Chris Lattner | 2004-07-09 | 1 | -0/+8 | |
| | | | | llvm-svn: 14725 | |||||
* | Now that MachineFunction/MachineBasicBlock keep a mapping of blocks to ID #'s | Chris Lattner | 2004-07-01 | 1 | -20/+0 | |
| | | | | | | use them instead of a local LiveVariables numbering llvm-svn: 14523 | |||||
* | Start using MBB numbers directly instead of going through the live variables | Chris Lattner | 2004-07-01 | 1 | -2/+2 | |
| | | | | | | map. llvm-svn: 14518 | |||||
* | Instead of building a private numbering of MBB's use brg's nifty auto-numbering. | Chris Lattner | 2004-07-01 | 1 | -5/+5 | |
| | | | | | | Also convert df_iterator -> df_ext_iterator for subsequent stuff I'm doing. llvm-svn: 14517 | |||||
* | Convert tabs to spaces. | Misha Brukman | 2004-06-24 | 1 | -45/+44 | |
| | | | | llvm-svn: 14373 | |||||
* | Adjust to new TargetMachine interface | Chris Lattner | 2004-06-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 13956 | |||||
* | Patch to fix PR337. Make sure to mark all aliased physical registers as used | Chris Lattner | 2004-05-10 | 1 | -3/+8 | |
| | | | | | | | | | | | | | when we see a read of a register. This is important in cases like: AL = ... AH = ... = AX The read of AX must make both the AL and AH defs live until the use. llvm-svn: 13444 | |||||
* | Stop LiveVariables from using BasicBlocks as part of the mapping, instead | Chris Lattner | 2004-05-01 | 1 | -29/+20 | |
| | | | | | | | | use MachineBasicBlocks. To do this, we traverse the Machine CFG instead of the LLVM CFG, which is also *MUCH* more efficient by having fewer levels of indirections and mappings. llvm-svn: 13301 | |||||
* | Correctly update LiveVariables when an instruction changes | Alkis Evlogimenos | 2004-03-30 | 1 | -3/+3 | |
| | | | | llvm-svn: 12561 | |||||
* | Add an assert | Chris Lattner | 2004-02-29 | 1 | -1/+4 | |
| | | | | llvm-svn: 12010 | |||||
* | Uncomment assertions that register# != 0 on calls to | Alkis Evlogimenos | 2004-02-26 | 1 | -3/+3 | |
| | | | | | | | MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes to relevant files. llvm-svn: 11882 | |||||
* | Fix an iterator invalidation problem. :( | Chris Lattner | 2004-02-19 | 1 | -2/+11 | |
| | | | | llvm-svn: 11627 | |||||
* | Add method to update livevar when an instruction moves | Chris Lattner | 2004-02-19 | 1 | -0/+34 | |
| | | | | llvm-svn: 11625 | |||||
* | Make dense maps keyed on physical registers smallerusing | Alkis Evlogimenos | 2004-02-15 | 1 | -4/+3 | |
| | | | | | | | | | | MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. llvm-svn: 11477 | |||||
* | Change MachineBasicBlock's vector of MachineInstr pointers into an | Alkis Evlogimenos | 2004-02-12 | 1 | -4/+3 | |
| | | | | | | | | | 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 | |||||
* | Add #include | Chris Lattner | 2004-02-10 | 1 | -0/+1 | |
| | | | | llvm-svn: 11285 | |||||
* | Do not use MachineOperand::isVirtualRegister either! | Chris Lattner | 2004-02-10 | 1 | -8/+6 | |
| | | | | llvm-svn: 11283 | |||||
* | Eliminate users of MachineOperand::isPhysicalRegister | Chris Lattner | 2004-02-10 | 1 | -2/+4 | |
| | | | | llvm-svn: 11278 | |||||
* | Ugh, perform an optimization that GCC should be able to do itself. This | Chris Lattner | 2004-02-09 | 1 | -6/+7 | |
| | | | | | | speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk llvm-svn: 11217 | |||||
* | Only do stuff for the REAL number of physical registers we have, not 1024. | Chris Lattner | 2004-02-09 | 1 | -10/+8 | |
| | | | | | | | This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for the first/second pass respectively. llvm-svn: 11216 | |||||
* | Finegrainify namespacification, use new MRegisterInfo::isVirtualRegister | Chris Lattner | 2004-01-31 | 1 | -1/+1 | |
| | | | | | | method llvm-svn: 11037 | |||||
* | Finegrainify namespacification | Chris Lattner | 2004-01-30 | 1 | -4/+17 | |
| | | | | | | Implement LiveVariables::getIndexMachineBasicBlock llvm-svn: 11018 | |||||
* | Remove unneeded check (with the recent change in live variables a use | Alkis Evlogimenos | 2004-01-13 | 1 | -4/+2 | |
| | | | | | | of a physical register is always dominated by a def). llvm-svn: 10821 | |||||
* | Correctly compute live variable information for physical registers | Alkis Evlogimenos | 2004-01-13 | 1 | -19/+12 | |
| | | | | | | | | | | | | | | when an implicitely defined register is later used by an alias. For example: call foo %reg1024 = mov %AL The call implicitely defines EAX but only AL is used. Before this fix no information was available on AL. Now EAX and all its aliases except AL get defined and die at the call instruction whereas AL lives to be killed by the assignment. llvm-svn: 10813 | |||||
* | 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 | |||||
* | Remove unecessary if statements when looping on ImplicitDefs. | Alkis Evlogimenos | 2003-12-13 | 1 | -3/+3 | |
| | | | | llvm-svn: 10444 | |||||
* | 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 | -15/+19 | |
| | | | | | | | | | | | | | | | | | | | | | 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 | |||||
* | (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 |