#
61719d48 |
| 26-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Uncomment assertions that register# != 0 on calls to MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes to relevant files.
llvm-svn: 11882
|
#
4c988391 |
| 19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix an iterator invalidation problem. :(
llvm-svn: 11627
|
#
afa9d7eb |
| 19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add method to update livevar when an instruction moves
llvm-svn: 11625
|
#
bbf53937 |
| 15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make dense maps keyed on physical registers smallerusing MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister.
Also use MRegisterInfo::is{Physical,Virtual}Register where approp
Make dense maps keyed on physical registers smallerusing MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister.
Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate.
llvm-svn: 11477
show more ...
|
#
80da865f |
| 12-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MachineBasicBlock's vector of MachineInstr pointers into an ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each Machi
Change MachineBasicBlock's vector of MachineInstr pointers into an 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
show more ...
|
#
b21ec54e |
| 10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add #include
llvm-svn: 11285
|
#
5dd5be3e |
| 10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Do not use MachineOperand::isVirtualRegister either!
llvm-svn: 11283
|
#
373fba5c |
| 10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Eliminate users of MachineOperand::isPhysicalRegister
llvm-svn: 11278
|
#
bbd9a43d |
| 09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Ugh, perform an optimization that GCC should be able to do itself. This speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk
llvm-svn: 11217
|
#
26407384 |
| 09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Only do stuff for the REAL number of physical registers we have, not 1024. This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for the first/second pass respectively.
llvm-svn: 11
Only do stuff for the REAL number of physical registers we have, not 1024. This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for the first/second pass respectively.
llvm-svn: 11216
show more ...
|
#
c330b98c |
| 31-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification, use new MRegisterInfo::isVirtualRegister method
llvm-svn: 11037
|
#
07708623 |
| 30-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification Implement LiveVariables::getIndexMachineBasicBlock
llvm-svn: 11018
|
#
9d0c3d21 |
| 13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unneeded check (with the recent change in live variables a use of a physical register is always dominated by a def).
llvm-svn: 10821
|
#
ebbd66c0 |
| 13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly compute live variable information for physical registers when an implicitely defined register is later used by an alias. For example:
call foo %reg1024 = mov %AL
The cal
Correctly compute live variable information for physical registers 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
show more ...
|
Revision tags: llvmorg-1.1.0 |
|
#
aaba4639 |
| 14-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change interface of MachineOperand as follows:
a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits3
Change interface of MachineOperand as follows:
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
show more ...
|
#
9bced945 |
| 13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unecessary if statements when looping on ImplicitDefs.
llvm-svn: 10444
|
#
960707c3 |
| 11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109.
llvm-svn: 9903
|
Revision tags: llvmorg-1.0.0 |
|
#
482202a6 |
| 20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way.
llvm-svn: 9298
|
#
5f1f337d |
| 08-Oct-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs and TargetInstrDescriptor::ImplicitUses to always point to a null terminated array and never be null. So there is no need to check
Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs 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
show more ...
|
#
7366fa1a |
| 27-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
(1) Added special register class containing (for now) %fsr. Fixed spilling of %fcc[0-3] which are part of %fsr.
(2) Moved some machine-independent reg-class code to class TargetRegInfo from
(1) Added special register class containing (for now) %fsr. 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
show more ...
|
#
584bae47 |
| 12-May-2003 |
Chris Lattner <sabre@nondot.org> |
* Keep the BBMap around as long as the pass is live * Change getVarInfo to take real virtual register numbers and offset them itself. This has caused me so much grief, it's not even funny.
llvm-s
* Keep the BBMap around as long as the pass is live * Change getVarInfo to take real virtual register numbers and offset them itself. This has caused me so much grief, it's not even funny.
llvm-svn: 6115
show more ...
|
#
5ab42e57 |
| 07-May-2003 |
Chris Lattner <sabre@nondot.org> |
Add a vector to keep track of which registers are allocatable. Remove FIXMEs
llvm-svn: 6015
|
#
9eb21721 |
| 06-May-2003 |
Chris Lattner <sabre@nondot.org> |
Re-add gross hack, it's still necessary. :(
llvm-svn: 6012
|
#
824698b8 |
| 06-May-2003 |
Chris Lattner <sabre@nondot.org> |
Remove hideously nasty hack
llvm-svn: 6011
|
#
f641fd08 |
| 01-May-2003 |
Chris Lattner <sabre@nondot.org> |
Minor cleanup
llvm-svn: 5976
|