- Feb 17, 2004
-
-
Chris Lattner authored
llvm-svn: 11535
-
Chris Lattner authored
llvm-svn: 11517
-
Chris Lattner authored
llvm-svn: 11515
-
- Feb 15, 2004
-
-
Alkis Evlogimenos authored
MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. llvm-svn: 11477
-
- Feb 13, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11393
-
Alkis Evlogimenos authored
Whitespace cleanups. llvm-svn: 11389
-
- Feb 12, 2004
-
-
Alkis Evlogimenos authored
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
-
- Feb 10, 2004
-
-
Chris Lattner authored
llvm-svn: 11283
-
Chris Lattner authored
llvm-svn: 11278
-
- Feb 09, 2004
-
-
Chris Lattner authored
the Virt2PhysRegMap std::map with an std::vector. This speeds up the register allocator another (almost) 40%, from .72->.45s in a release build of LLC on 253.perlbmk. llvm-svn: 11219
-
Chris Lattner authored
from physical registers, and they are always dense, it makes sense to not have a ton of RBtree overhead. This change speeds up regalloclocal about ~30% on 253.perlbmk, from .35s -> .27s in the JIT (in LLC, it goes from .74 -> .55). Now live variable analysis is the slowest codegen pass. Of course it doesn't help that we have to run it twice, because regalloclocal doesn't update it, but even if it did it would be the slowest pass (now it's just the 2x slowest pass :( llvm-svn: 11215
-
- Jan 31, 2004
-
-
Chris Lattner authored
method llvm-svn: 11037
-
- Jan 13, 2004
-
-
Alkis Evlogimenos authored
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
-
- Dec 18, 2003
-
-
Alkis Evlogimenos authored
instead, since this pass doesn't expose any state to its users. llvm-svn: 10520
-
Alkis Evlogimenos authored
llvm-svn: 10513
-
- Dec 14, 2003
-
-
Alkis Evlogimenos authored
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
-
- Dec 13, 2003
-
-
Alkis Evlogimenos authored
llvm-svn: 10444
-
- Dec 05, 2003
-
-
Alkis Evlogimenos authored
this point, the second operand must be a physical register (it cannot be a virtual one). llvm-svn: 10292
-
- Nov 11, 2003
-
-
Brian Gaeke authored
llvm-svn: 9903
-
- Oct 24, 2003
-
-
Chris Lattner authored
llvm-svn: 9496
-
- Oct 20, 2003
-
-
John Criswell authored
Header files will be on the way. llvm-svn: 9298
-
- Oct 08, 2003
-
-
Alkis Evlogimenos authored
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
-
- Aug 24, 2003
-
-
Chris Lattner authored
llvm-svn: 8095
-
- Aug 17, 2003
-
-
Chris Lattner authored
llvm-svn: 7916
-
- Aug 15, 2003
-
-
Brian Gaeke authored
llvm-svn: 7906
-
- Aug 13, 2003
-
-
Brian Gaeke authored
llvm-svn: 7823
-
- Aug 05, 2003
-
-
Chris Lattner authored
llvm-svn: 7591
-
Chris Lattner authored
llvm-svn: 7588
-
Chris Lattner authored
llvm-svn: 7584
-
Chris Lattner authored
* Add a lot more DEBUG output, which is better structured than before * Fix bug: Jello/2003-08-04-PhysRegLiveFailure.llx llvm-svn: 7583
-
- Aug 03, 2003
-
-
Chris Lattner authored
llvm-svn: 7533
-
Chris Lattner authored
llvm-svn: 7503
-
- Aug 02, 2003
-
-
Chris Lattner authored
llvm-svn: 7497
-
- May 27, 2003
-
-
Vikram S. Adve authored
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
-
- May 12, 2003
-
-
Chris Lattner authored
llvm-svn: 6109
-
- May 05, 2003
-
-
Misha Brukman authored
llvm-svn: 6002
-
- Jan 16, 2003
-
-
Chris Lattner authored
llvm-svn: 5326
-
- Jan 14, 2003
-
-
Chris Lattner authored
llvm-svn: 5272
-
- Jan 13, 2003
-
-
Chris Lattner authored
* Convert to use PHIElimination pass * Don't spill values which have just been reloaded (big win reducing spills) * Add experimental support for eliminating spills before TwoAddress instructions. It currently is broken so it is #ifdef'd out. * Use new "is terminator" flag on instructions instead of looking for branches and returns explicitly. llvm-svn: 5219
-
- Dec 28, 2002
-
-
Chris Lattner authored
llvm-svn: 5200
-