Gitiles
Code Review
Sign In
gerrit-public.fairphone.software
/
fp2-dev
/
platform
/
external
/
llvm
/
43b61f724ef68810c63fc54c99e88f9b278f05c0
/
lib
/
CodeGen
/
RegAllocLinearScan.cpp
eee9117
Make the set of fixed (preallocated) intervals be a fixed superset of
by Alkis Evlogimenos
· 21 years ago
dd420e0
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
· 21 years ago
5f37502
Add the long awaited memory operand folding support for linear scan
by Alkis Evlogimenos
· 21 years ago
fc54e83
Rename member function to be consistent with the rest.
by Alkis Evlogimenos
· 21 years ago
1d8b28a
Remove asssert since it is breaking cases that it shouldn't.
by Alkis Evlogimenos
· 21 years ago
95c34f2
Add an assertion
by Chris Lattner
· 21 years ago
0d6c5b6
Move machine code rewriter and spiller outside the register allocator.
by Alkis Evlogimenos
· 21 years ago
7974287
Remove '4Virt' from member function names as it is obvious.
by Alkis Evlogimenos
· 21 years ago
34d9bc9
Refactor VirtRegMap out of RegAllocLinearScan as the first part of bug
by Alkis Evlogimenos
· 21 years ago
5756493
Add number of spilled registers statistic.
by Alkis Evlogimenos
· 21 years ago
e6394e2
Remove implementation of default constructor as it is useless now.
by Alkis Evlogimenos
· 21 years ago
12edc7e
Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr
by Alkis Evlogimenos
· 21 years ago
534f545
Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be consistent with the other two
by Alkis Evlogimenos
· 21 years ago
888b1a6
Pull PhysRegTracker out of RegAllocLinearScan as it can be used by other allocators as well
by Alkis Evlogimenos
· 21 years ago
a2f6a40
Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts of the compiler
by Alkis Evlogimenos
· 21 years ago
0f338a1
Print basic block boundaries in machine instruction debug output.
by Alkis Evlogimenos
· 21 years ago
fa510c4
Fix crash in debug output.
by Alkis Evlogimenos
· 21 years ago
537fa98
Fix instruction numbering in debug output.
by Alkis Evlogimenos
· 21 years ago
39a0d5c
Too many changes in one commit:
by Alkis Evlogimenos
· 21 years ago
d195e99
Fix RA::verifyAssignment()
by Alkis Evlogimenos
· 21 years ago
2acef2d
Rename reloads/spills to loads/stores.
by Alkis Evlogimenos
· 21 years ago
779e640
Implement assignment correctness verification.
by Alkis Evlogimenos
· 21 years ago
843b160
Eliminate the use of spill (reserved) registers.
by Alkis Evlogimenos
· 21 years ago
6ab5c15
Use std::numeric_limits<float>::infinity() instead of
by Alkis Evlogimenos
· 21 years ago
be766c7
Remove getAllocatedRegNum(). Use getReg() instead.
by Alkis Evlogimenos
· 21 years ago
c0b9dc5
Change MachineBasicBlock's vector of MachineInstr pointers into an
by Alkis Evlogimenos
· 21 years ago
1cbe4d0
Do not use MachineOperand::isVirtualRegister either!
by Chris Lattner
· 21 years ago
f5eaf16
Increase code clarity.
by Alkis Evlogimenos
· 22 years ago
54d23c7
Eliminate uneeded lookups by passing a Virt2PhysMap::iterator instead
by Alkis Evlogimenos
· 22 years ago
14be640
Modify the two address instruction pass to remove the duplicate
by Alkis Evlogimenos
· 22 years ago
4e78544
When an instruction like: A += B had both A and B virtual registers
by Alkis Evlogimenos
· 22 years ago
cc6a129
Fix debugging output.
by Alkis Evlogimenos
· 22 years ago
22b7e44
Create an object for tracking physical register usage. This will look
by Alkis Evlogimenos
· 22 years ago
0466729
Change weight array into a vector and make it as big as the number of
by Alkis Evlogimenos
· 22 years ago
f440cc1
Use std::map::count() instead of std::map::find() != std::map::end()
by Alkis Evlogimenos
· 22 years ago
4f67b86
Use MRegisterInfo::isPhysicalRegister and MRegisterInfo::isVirtualRegister.
by Alkis Evlogimenos
· 22 years ago
e88280a
Add option to join live intervals. Two intervals are joined if there
by Alkis Evlogimenos
· 22 years ago
84dc5fb
Remove unneeded check. An interval in active, by definition overlaps
by Alkis Evlogimenos
· 22 years ago
ce50115
Improve debugging output. Remove unneeded virtReg->0 mapping when
by Alkis Evlogimenos
· 22 years ago
a12c7bb
Handle printing of intervals that are not assign to any physical
by Alkis Evlogimenos
· 22 years ago
a6d8c3f
Handle printing of intervals that are not assign to any physical register yet.
by Alkis Evlogimenos
· 22 years ago
3b02cbe
Fold open interval ends handling into
by Alkis Evlogimenos
· 22 years ago
5ab2027
Improve debugging output.
by Alkis Evlogimenos
· 22 years ago
b7be115
Indentation and whitespace cleanups.
by Alkis Evlogimenos
· 22 years ago
f7df173e
Fix bug introduced by previous commit: check if fixed intervals
by Alkis Evlogimenos
· 22 years ago
7d629b5
Add a separate list of fixed intervals. This improves the running time
by Alkis Evlogimenos
· 22 years ago
1283d86
Minor cleanups.
by Alkis Evlogimenos
· 22 years ago
75ca6a3
Remove declared but undefined method.
by Alkis Evlogimenos
· 22 years ago
63caedf
Remove simple coalescing.
by Alkis Evlogimenos
· 22 years ago
27490a6
Reserve ECX and EDI instead of EBX and EDI. Since EBX is a callee
by Alkis Evlogimenos
· 22 years ago
26bfc08
Add coalescing to register allocator. A hint is added to each interval
by Alkis Evlogimenos
· 22 years ago
843397c
Improve debugging output when choosing a register to spill.
by Alkis Evlogimenos
· 22 years ago
3bf564a
Change the way free regusters are computed and perform better
by Alkis Evlogimenos
· 22 years ago
4de1fef
Remove verifyIntervals() since it doesn't actually work right now.
by Alkis Evlogimenos
· 22 years ago
6b4edba
Change weight into a float so that we can take into account the
by Alkis Evlogimenos
· 22 years ago
169cfd0
Add support for inactive intervals. This effectively reuses registers
by Alkis Evlogimenos
· 22 years ago
5e46b51
Prune some #includes Add a statistic for # reloads
by Chris Lattner
· 22 years ago
a71e05a
Modify linear scan register allocator to use the two-address
by Alkis Evlogimenos
· 22 years ago
a3d0e5c
Fix bug in reserved registers. DH actually aliases DX and EDX which
by Alkis Evlogimenos
· 22 years ago
485ec3c
Rename LiveIntervals::expired() to LiveIntervals::expiredAt().
by Alkis Evlogimenos
· 22 years ago
4d7af65
Change interface of MachineOperand as follows:
by Alkis Evlogimenos
· 22 years ago
94743e4
When reserving a preallocated register spill the aliases of this register too.
by Alkis Evlogimenos
· 22 years ago
7d65a12
Expire any active intervals left when register allocation is done.
by Alkis Evlogimenos
· 22 years ago
f6e610c
Add instruction numbers to debugging output.
by Alkis Evlogimenos
· 22 years ago
49787e3
Fix bug in register spilling when a preallocated live range overlaps a
by Alkis Evlogimenos
· 22 years ago
69546d5
Improve debugging output and clean up some code.
by Alkis Evlogimenos
· 22 years ago
5858707
Print instructions before register allocation is performed. Also fix
by Alkis Evlogimenos
· 22 years ago
99d1a8f
Remove "numReloaded" statistic.
by Alkis Evlogimenos
· 22 years ago
ff0cbe1
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