| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
allow it to go into an infinite loop, filling up the disk!
llvm-svn: 30494
|
|
|
|
|
|
| |
safe for later allocation. This fixes McCat/18-imp with llc-beta.
llvm-svn: 30204
|
|
|
|
| |
llvm-svn: 30198
|
|
|
|
|
|
|
| |
of unallocatable registers, just because an alias is allocatable. We were
picking registers like SIL just because ESI was being used.
llvm-svn: 30197
|
|
|
|
| |
llvm-svn: 30122
|
|
|
|
|
|
|
| |
Just because an alias of a register is available, it doesn't mean that we
can arbitrarily evict the register.
llvm-svn: 30064
|
|
|
|
|
|
| |
livevariables information. This fixes several regalloc=local failures on x86
llvm-svn: 30062
|
|
|
|
| |
llvm-svn: 29911
|
|
|
|
| |
llvm-svn: 29471
|
|
|
|
| |
llvm-svn: 29434
|
|
|
|
| |
llvm-svn: 29250
|
|
|
|
| |
llvm-svn: 29221
|
|
|
|
| |
llvm-svn: 29220
|
|
|
|
|
|
| |
dropped. This shrinks libllvmgcc.dylib another 67K
llvm-svn: 28975
|
|
|
|
|
|
|
| |
live at function entry. This prevents it from using arg registers for other
purposes before the arguments are used.
llvm-svn: 28809
|
|
|
|
| |
llvm-svn: 28102
|
|
|
|
| |
llvm-svn: 25515
|
|
|
|
| |
llvm-svn: 24258
|
|
|
|
|
|
| |
allocator from 23s to 11s on kc++ in debug mode.
llvm-svn: 24255
|
|
|
|
|
|
|
| |
code. PrologEpilogInserter hasn't been updated yet though, so targets cannot
use this info.
llvm-svn: 23536
|
|
|
|
| |
llvm-svn: 22992
|
|
|
|
| |
llvm-svn: 21420
|
|
|
|
| |
llvm-svn: 19792
|
|
|
|
|
|
| |
Patch contributed by Morten Ofstad
llvm-svn: 17251
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 15784
|
|
|
|
| |
llvm-svn: 15777
|
|
|
|
| |
llvm-svn: 15775
|
|
|
|
| |
llvm-svn: 15774
|
|
|
|
|
|
| |
"Support/Debug.h".
llvm-svn: 15089
|
|
|
|
|
|
|
|
| |
The vector may actually be empty if the register that we are marking as
recently used is not actually allocatable. This happens for physical registers
that are not allocatable, like the ST(x) registers on X86.
llvm-svn: 14195
|
|
|
|
| |
llvm-svn: 13956
|
|
|
|
|
|
| |
instruction to make the API more flexible.
llvm-svn: 12386
|
|
|
|
|
|
|
| |
MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes
to relevant files.
llvm-svn: 11882
|
|
|
|
| |
llvm-svn: 11868
|
|
|
|
|
|
| |
to objects.
llvm-svn: 11840
|
|
|
|
|
|
|
|
|
|
|
|
| |
block into MachineBasicBlock::getFirstTerminator().
This also fixes a bug in the implementation of the above in both
RegAllocLocal and InstrSched, where instructions where added after the
terminator if the basic block's only instruction was a terminator (it
shouldn't matter for RegAllocLocal since this case never occurs in
practice).
llvm-svn: 11748
|
|
|
|
| |
llvm-svn: 11716
|
|
|
|
|
|
| |
one terminator instruction in each basic block.
llvm-svn: 11714
|
|
|
|
| |
llvm-svn: 11687
|
|
|
|
|
|
|
| |
variable information to take into account the change of instruction
address.
llvm-svn: 11628
|
|
|
|
| |
llvm-svn: 11619
|
|
|
|
|
|
| |
and it was only for debugging in the first place.
llvm-svn: 11557
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 11535
|
|
|
|
|
|
| |
way to use it. :)
llvm-svn: 11517
|
|
|
|
|
|
| |
things to come.
llvm-svn: 11515
|
|
|
|
|
|
|
|
|
|
| |
MRegisterInfo::getNumRegs() instead of
MRegisterInfo::FirstVirtualRegister.
Also use MRegisterInfo::is{Physical,Virtual}Register where
appropriate.
llvm-svn: 11477
|
|
|
|
| |
llvm-svn: 11393
|
|
|
|
|
|
| |
Whitespace cleanups.
llvm-svn: 11389
|