Gitiles
Code Review
Sign In
gerrit-public.fairphone.software
/
toolchain
/
llvm-project
/
4e0969b50018db5ebb9623ecf79fd732dc77eb62
/
llvm
/
lib
/
CodeGen
/
RegAllocLinearScan.cpp
c51866a
Completely eliminate the intervals_ list. instead, the r2iMap_ maintains
by Chris Lattner
· 21 years ago
8563833
Rename LiveIntervals.(cpp|h) -> LiveIntervalAnalysis.(cpp|h)
by Chris Lattner
· 21 years ago
1a876fa
Some compile time improvements resulting in a 1sec speedup in the 5sec
by Alkis Evlogimenos
· 21 years ago
902dcf0
These files don't need to include <iostream> since they include "Support/Debug.h".
by Brian Gaeke
· 21 years ago
12a71ea
Remove dead code.
by Alkis Evlogimenos
· 21 years ago
8c8144b
Fix assertion to not dereference end!
by Chris Lattner
· 21 years ago
70f8dca
Add some asserts that the list of intervals returned by addIntervalsForSpills
by Chris Lattner
· 21 years ago
21b3a5b
Correctly compute the ration of iterations/#intervals.
by Alkis Evlogimenos
· 21 years ago
8f3cc03
Add efficiency statistic.
by Alkis Evlogimenos
· 21 years ago
4fbff99
Rename Interval class to LiveInterval to avoid conflicting with the already
by Chris Lattner
· 21 years ago
fbe799c
Pull Interval class out of LiveIntervals.
by Alkis Evlogimenos
· 21 years ago
a5268e8
When spilling an register, introduce a new temporary for each of its
by Alkis Evlogimenos
· 21 years ago
2a54b5d
Add required header
by Alkis Evlogimenos
· 22 years ago
991425a
numeric_limits::infinity() apparently does not work on all systems. As a
by Chris Lattner
· 22 years ago
02a5354
Make the set of fixed (preallocated) intervals be a fixed superset of
by Alkis Evlogimenos
· 22 years ago
31953c7
Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now.
by Alkis Evlogimenos
· 22 years ago
b76d234
Add the long awaited memory operand folding support for linear scan
by Alkis Evlogimenos
· 22 years ago
e669caa
Rename member function to be consistent with the rest.
by Alkis Evlogimenos
· 22 years ago
a9f03fb
Remove asssert since it is breaking cases that it shouldn't.
by Alkis Evlogimenos
· 22 years ago
f5a393a
Add an assertion
by Chris Lattner
· 22 years ago
1dd872c
Move machine code rewriter and spiller outside the register allocator.
by Alkis Evlogimenos
· 22 years ago
ab77b05
Remove '4Virt' from member function names as it is obvious.
by Alkis Evlogimenos
· 22 years ago
c794a90
Refactor VirtRegMap out of RegAllocLinearScan as the first part of bug
by Alkis Evlogimenos
· 22 years ago
52de9e2
Add number of spilled registers statistic.
by Alkis Evlogimenos
· 22 years ago
d780ce6
Remove implementation of default constructor as it is useless now.
by Alkis Evlogimenos
· 22 years ago
f83cb74
Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr
by Alkis Evlogimenos
· 22 years ago
d42c2f2
Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be consistent with the other two
by Alkis Evlogimenos
· 22 years ago
1410859
Pull PhysRegTracker out of RegAllocLinearScan as it can be used by other allocators as well
by Alkis Evlogimenos
· 22 years ago
486b12b
Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts of the compiler
by Alkis Evlogimenos
· 22 years ago
cb35230
Print basic block boundaries in machine instruction debug output.
by Alkis Evlogimenos
· 22 years ago
22de21e
Fix crash in debug output.
by Alkis Evlogimenos
· 22 years ago
bcc99a8
Fix instruction numbering in debug output.
by Alkis Evlogimenos
· 22 years ago
76eca06
Too many changes in one commit:
by Alkis Evlogimenos
· 22 years ago
3cf5460
Fix RA::verifyAssignment()
by Alkis Evlogimenos
· 22 years ago
d0a60b7
Rename reloads/spills to loads/stores.
by Alkis Evlogimenos
· 22 years ago
b490a12
Implement assignment correctness verification.
by Alkis Evlogimenos
· 22 years ago
2c5ddd2
Eliminate the use of spill (reserved) registers.
by Alkis Evlogimenos
· 22 years ago
ddcb4ad
Use std::numeric_limits<float>::infinity() instead of
by Alkis Evlogimenos
· 22 years ago
8cdd021
Remove getAllocatedRegNum(). Use getReg() instead.
by Alkis Evlogimenos
· 22 years ago
80da865
Change MachineBasicBlock's vector of MachineInstr pointers into an
by Alkis Evlogimenos
· 22 years ago
5dd5be3
Do not use MachineOperand::isVirtualRegister either!
by Chris Lattner
· 22 years ago
e82a707
Increase code clarity.
by Alkis Evlogimenos
· 22 years ago
cd2e7ff
Eliminate uneeded lookups by passing a Virt2PhysMap::iterator instead
by Alkis Evlogimenos
· 22 years ago
3274264
Modify the two address instruction pass to remove the duplicate
by Alkis Evlogimenos
· 22 years ago
3d100ef
When an instruction like: A += B had both A and B virtual registers
by Alkis Evlogimenos
· 22 years ago
6e34205
Fix debugging output.
by Alkis Evlogimenos
· 22 years ago
2cecace
Create an object for tracking physical register usage. This will look
by Alkis Evlogimenos
· 22 years ago
9b9c048
Change weight array into a vector and make it as big as the number of
by Alkis Evlogimenos
· 22 years ago
5e05a59
Use std::map::count() instead of std::map::find() != std::map::end()
by Alkis Evlogimenos
· 22 years ago
91dcc03
Use MRegisterInfo::isPhysicalRegister and MRegisterInfo::isVirtualRegister.
by Alkis Evlogimenos
· 22 years ago
73df113
Add option to join live intervals. Two intervals are joined if there
by Alkis Evlogimenos
· 22 years ago
e1c24c0
Remove unneeded check. An interval in active, by definition overlaps
by Alkis Evlogimenos
· 22 years ago
4716d76
Improve debugging output. Remove unneeded virtReg->0 mapping when
by Alkis Evlogimenos
· 22 years ago
d844972
Handle printing of intervals that are not assign to any physical
by Alkis Evlogimenos
· 22 years ago
8672af1
Handle printing of intervals that are not assign to any physical register yet.
by Alkis Evlogimenos
· 22 years ago
d86933d
Fold open interval ends handling into
by Alkis Evlogimenos
· 22 years ago
a0865ce
Improve debugging output.
by Alkis Evlogimenos
· 22 years ago
65bc990
Indentation and whitespace cleanups.
by Alkis Evlogimenos
· 22 years ago
6b1ec75
Fix bug introduced by previous commit: check if fixed intervals
by Alkis Evlogimenos
· 22 years ago
ae5b3d4
Add a separate list of fixed intervals. This improves the running time
by Alkis Evlogimenos
· 22 years ago
a64d712
Minor cleanups.
by Alkis Evlogimenos
· 22 years ago
9f62b96
Remove declared but undefined method.
by Alkis Evlogimenos
· 22 years ago
2fa1aef
Remove simple coalescing.
by Alkis Evlogimenos
· 22 years ago
a158dc8
Reserve ECX and EDI instead of EBX and EDI. Since EBX is a callee
by Alkis Evlogimenos
· 22 years ago
43b587d
Add coalescing to register allocator. A hint is added to each interval
by Alkis Evlogimenos
· 22 years ago
2e8c984
Improve debugging output when choosing a register to spill.
by Alkis Evlogimenos
· 22 years ago
7d7d7e8
Change the way free regusters are computed and perform better
by Alkis Evlogimenos
· 22 years ago
690e1b8
Remove verifyIntervals() since it doesn't actually work right now.
by Alkis Evlogimenos
· 22 years ago
2665d9c
Change weight into a float so that we can take into account the
by Alkis Evlogimenos
· 22 years ago
c09b77e
Add support for inactive intervals. This effectively reuses registers
by Alkis Evlogimenos
· 22 years ago
8f88cdf
Prune some #includes Add a statistic for # reloads
by Chris Lattner
· 22 years ago
e5e2bd6
Modify linear scan register allocator to use the two-address
by Alkis Evlogimenos
· 22 years ago
3bd69ea
Fix bug in reserved registers. DH actually aliases DX and EDX which
by Alkis Evlogimenos
· 22 years ago
4d87219
Rename LiveIntervals::expired() to LiveIntervals::expiredAt().
by Alkis Evlogimenos
· 22 years ago
aaba463
Change interface of MachineOperand as follows:
by Alkis Evlogimenos
· 22 years ago
4f7f017
When reserving a preallocated register spill the aliases of this register too.
by Alkis Evlogimenos
· 22 years ago
ed53b35
Expire any active intervals left when register allocation is done.
by Alkis Evlogimenos
· 22 years ago
e6dc614
Add instruction numbers to debugging output.
by Alkis Evlogimenos
· 22 years ago
f8fe176
Fix bug in register spilling when a preallocated live range overlaps a
by Alkis Evlogimenos
· 22 years ago
5fe0031
Improve debugging output and clean up some code.
by Alkis Evlogimenos
· 22 years ago
26f17e7
Print instructions before register allocation is performed. Also fix
by Alkis Evlogimenos
· 22 years ago
0aa40f8
Remove "numReloaded" statistic.
by Alkis Evlogimenos
· 22 years ago
0e9ded7
Merging the linear scan register allocator in trunk. It currently passes most tests under test/Programs/SingleSource/Benchmarks/Shootout so development will continue on trunk. The allocator is not enabled by default. You will need to pass -regallo=linearscan to lli or llc to use it.
by Alkis Evlogimenos
· 22 years ago