- Feb 18, 2004
-
-
Chris Lattner authored
llvm-svn: 11578
-
Chris Lattner authored
llvm-svn: 11577
-
Alkis Evlogimenos authored
llvm-svn: 11575
-
Alkis Evlogimenos authored
llvm-svn: 11574
-
Alkis Evlogimenos authored
llvm-svn: 11573
-
- Feb 17, 2004
-
-
Chris Lattner authored
and it was only for debugging in the first place. llvm-svn: 11557
-
Chris Lattner authored
that need them. This is very useful on CISCy targets like the X86 because it reduces the total spill pressure, and makes better use of it's (large) instruction set. Though the X86 backend doesn't know how to rewrite many instructions yet, this already makes a substantial difference on 176.gcc for example: Before: Time: 8.0099 ( 31.2%) 0.0100 ( 12.5%) 8.0199 ( 31.2%) 7.7186 ( 30.0%) Local Register Allocator Code quality: 734559 asm-printer - Number of machine instrs printed 111395 ra-local - Number of registers reloaded 79902 ra-local - Number of registers spilled 231554 x86-peephole - Number of peephole optimization performed After: Time: 7.8700 ( 30.6%) 0.0099 ( 19.9%) 7.8800 ( 30.6%) 7.7892 ( 30.2%) Local Register Allocator Code quality: 733083 asm-printer - Number of machine instrs printed 2379 ra-local - Number of reloads fused into instructions 109046 ra-local - Number of registers reloaded 79881 ra-local - Number of registers spilled 230658 x86-peephole - Number of peephole optimization performed So by fusing 2300 instructions, we reduced the static number of instructions by 1500, and reduces the number of peepholes (and thus the work) by about 900. This also clearly reduces the number of reload/spill instructions that are emitted. llvm-svn: 11542
-
Chris Lattner authored
llvm-svn: 11535
-
Chris Lattner authored
llvm-svn: 11517
-
Alkis Evlogimenos authored
llvm-svn: 11516
-
Chris Lattner authored
llvm-svn: 11515
-
- Feb 16, 2004
-
-
Alkis Evlogimenos authored
Move out of line member functions of MachineBasicBlock to MachineBasicBlock.cpp. llvm-svn: 11497
-
- Feb 15, 2004
-
-
Alkis Evlogimenos authored
analysis. It should only preserve them and update LiveVariables if it already ran. llvm-svn: 11479
-
Chris Lattner authored
Remove one of the operands of a two operand instruction llvm-svn: 11478
-
Alkis Evlogimenos authored
MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. llvm-svn: 11477
-
Alkis Evlogimenos authored
llvm-svn: 11476
-
Chris Lattner authored
clobber them by allocating other objects in the same space! llvm-svn: 11454
-
Alkis Evlogimenos authored
that will be responsible for the creation of MachineFunctions and will be required by all MachineFunctionPass passes. llvm-svn: 11453
-
- Feb 14, 2004
-
-
Chris Lattner authored
llvm-svn: 11449
-
Alkis Evlogimenos authored
llvm-svn: 11430
-
Alkis Evlogimenos authored
std::numeric_limits<float>::max() for weighting preallocated intervals. llvm-svn: 11427
-
- Feb 13, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11393
-
Alkis Evlogimenos authored
Whitespace cleanups. llvm-svn: 11389
-
Brian Gaeke authored
Add MachineBasicBlock::dump(). llvm-svn: 11364
-
Brian Gaeke authored
Rename SetMachineOperandConst's formal parameters to match other methods here. Mark some methods as being used only by the SPARC back-end. Fix a missing-paren bug in OutputValue(). llvm-svn: 11363
-
- Feb 12, 2004
-
-
Alkis Evlogimenos authored
MachineBasicBlock. Also change opcode to a short and numImplicitRefs to an unsigned char so that overall MachineInstr's size stays the same. llvm-svn: 11357
-
Chris Lattner authored
llvm-svn: 11348
-
Chris Lattner authored
llvm-svn: 11346
-
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
-
Brian Gaeke authored
llvm-svn: 11339
-
- Feb 10, 2004
-
-
Chris Lattner authored
llvm-svn: 11285
-
Chris Lattner authored
llvm-svn: 11283
-
Chris Lattner authored
llvm-svn: 11278
-
- Feb 09, 2004
-
-
Brian Gaeke authored
llvm-svn: 11239
-
Brian Gaeke authored
instead of randomly groping about inside its outEdges array. Make SchedGraph::addDummyEdges() use getNumOutEdges() instead of outEdges.size(). Get rid of ifdefed-out code in SchedGraph::buildGraph(). llvm-svn: 11238
-
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
speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk llvm-svn: 11217
-
Chris Lattner authored
This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for the first/second pass respectively. llvm-svn: 11216
-
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
-
- Feb 06, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11151
-