Gitiles
Code Review
Sign In
gerrit-public.fairphone.software
/
fp2-dev
/
platform
/
external
/
llvm
/
5e93d1c61553628a9104ac19ce5edf165a7229b2
/
lib
/
CodeGen
/
RegAllocGreedy.cpp
b8d936b
Add a RAGreedy::canEvict function.
by Jakob Stoklund Olesen
· 14 years ago
bdda37d
Fix PR9883. Make sure all caches are invalidated when a live range is repaired.
by Jakob Stoklund Olesen
· 14 years ago
bf4e10f
Emit a proper error message when register allocators run out of registers.
by Jakob Stoklund Olesen
· 14 years ago
f42b661
Update LiveDebugVariables after live range splitting.
by Jakob Stoklund Olesen
· 14 years ago
7d6b6a0
Gracefully handle invalid live ranges. Fix PR9831.
by Jakob Stoklund Olesen
· 14 years ago
66446c8
Use hysteresis for local live range splitting as well.
by Jakob Stoklund Olesen
· 14 years ago
9f4b893
Add a safe-guard against repeated splitting for some rare cases.
by Jakob Stoklund Olesen
· 14 years ago
2007298
Always compare the cost of region splitting with the cost of per-block splitting.
by Jakob Stoklund Olesen
· 14 years ago
5928046
Allow allocatable ranges from global live range splitting to be split again.
by Jakob Stoklund Olesen
· 14 years ago
6bfba2e
Prefer cheap registers for busy live ranges.
by Jakob Stoklund Olesen
· 14 years ago
fd1cced
Stop using dead function.
by Jakob Stoklund Olesen
· 14 years ago
5db4289
SparseBitVector is SLOW.
by Jakob Stoklund Olesen
· 14 years ago
fd5c513
Create new intervals for isolated blocks during region splitting.
by Jakob Stoklund Olesen
· 14 years ago
3f5bedf
Speed up eviction by stopping collectInterferingVRegs as soon as the spill
by Jakob Stoklund Olesen
· 14 years ago
f4afdfc
Build the Hopfield network incrementally when splitting global live ranges.
by Jakob Stoklund Olesen
· 14 years ago
7b41fbe
Extract SpillPlacement::addLinks for handling the special transparent blocks.
by Jakob Stoklund Olesen
· 14 years ago
9a54352
Also account for the spill code that would be inserted in live-through blocks with interference.
by Jakob Stoklund Olesen
· 14 years ago
1b400e8
Abort the constraint calculation early when all positive bias is lost.
by Jakob Stoklund Olesen
· 14 years ago
70d4370
Keep track of the number of positively biased nodes when adding constraints.
by Jakob Stoklund Olesen
· 14 years ago
9efa2a2
Break the spill placement algorithm into three parts: prepare, addConstraints, and finish.
by Jakob Stoklund Olesen
· 14 years ago
49460bc
Oops. Scary.
by Jakob Stoklund Olesen
· 14 years ago
db529a8
Analyze blocks with uses separately from live-through blocks without uses.
by Jakob Stoklund Olesen
· 14 years ago
cfafc54
Run LiveDebugVariables in RegAllocBasic and RegAllocGreedy.
by Jakob Stoklund Olesen
· 14 years ago
612f780
Stop precomputing last split points, query the SplitAnalysis cache on demand.
by Jakob Stoklund Olesen
· 14 years ago
6c8afd7
Stop caching basic block index ranges now that SlotIndexes can keep up.
by Jakob Stoklund Olesen
· 14 years ago
eda0fe8
Use InterferenceCache in RegAllocGreedy.
by Jakob Stoklund Olesen
· 14 years ago
5907d86
Add an InterferenceCache class for caching per-block interference ranges.
by Jakob Stoklund Olesen
· 14 years ago
f22ca3f
Treat clones the same as their origin.
by Jakob Stoklund Olesen
· 14 years ago
6094bd8
Recompute register class and hint for registers created during spilling.
by Jakob Stoklund Olesen
· 14 years ago
eb29157
Drop interference reassignment in favor of eviction.
by Jakob Stoklund Olesen
· 14 years ago
c1655e1
Add debug output.
by Jakob Stoklund Olesen
· 14 years ago
1d5b845
Add a LiveRangeEdit delegate callback before shrinking a live range.
by Jakob Stoklund Olesen
· 14 years ago
c46570d
Clarify debugging output.
by Jakob Stoklund Olesen
· 14 years ago
7792e98
Tell the register allocator about new unused virtual registers.
by Jakob Stoklund Olesen
· 14 years ago
47dbf6c
Change the Spiller interface to take a LiveRangeEdit reference.
by Jakob Stoklund Olesen
· 14 years ago
38f6bd0
Make SpillIs an optional pointer. Avoid creating a bunch of temporary SmallVectors.
by Jakob Stoklund Olesen
· 14 years ago
92a55f4
Add a LiveRangeEdit::Delegate protocol.
by Jakob Stoklund Olesen
· 14 years ago
1973b3e
Make the UselessRegs argument optional in the LiveRangeEdit constructor.
by Jakob Stoklund Olesen
· 14 years ago
874be74
Rework the global split cost calculation.
by Jakob Stoklund Olesen
· 14 years ago
96dcd95
Compute the constraints for global live range splitting from an interference pattern.
by Jakob Stoklund Olesen
· 14 years ago
8b6a933
Extract a method. No functional change.
by Jakob Stoklund Olesen
· 14 years ago
d17924b
Go back to comparing spill weights when deciding if interference can be evicted.
by Jakob Stoklund Olesen
· 14 years ago
fb69810
Tweak debug output. No functional changes.
by Jakob Stoklund Olesen
· 14 years ago
40a42a2
Precompute block frequencies, pow() isn't free.
by Jakob Stoklund Olesen
· 14 years ago
36d6186
Cache basic block bounds instead of asking SlotIndexes::getMBBRange all the time.
by Jakob Stoklund Olesen
· 14 years ago
bece06f
Change the SplitEditor interface to a single instance can be shared for multiple splits.
by Jakob Stoklund Olesen
· 14 years ago
1841d14
Drop RAGreedy::trySpillInterferences().
by Jakob Stoklund Olesen
· 14 years ago
22a1df6
Keep track of which stage produced a live range, and bypass earlier stages when revisiting.
by Jakob Stoklund Olesen
· 14 years ago
57f1e2c
Try harder to get the hint by preferring to evict hint interference.
by Jakob Stoklund Olesen
· 14 years ago
107d366
Tweak the register allocator priority queue some more.
by Jakob Stoklund Olesen
· 14 years ago
d2a5073
Keep track of how many times a live range has been dequeued, and prioritize new ranges.
by Jakob Stoklund Olesen
· 14 years ago
417df01
Fix a bug in determining if there is only a single interfering register.
by Jakob Stoklund Olesen
· 14 years ago
98c8141
Be more aggressive about evicting interference.
by Jakob Stoklund Olesen
· 14 years ago
98d9648
Change the RAGreedy register assignment order so large live ranges are allocated first.
by Jakob Stoklund Olesen
· 14 years ago
06c0f25
Add SplitKit::isOriginalEndpoint and use it to force live range splitting to terminate.
by Jakob Stoklund Olesen
· 14 years ago
1b847de
Give SplitAnalysis a VRM member to access VirtRegMap::getOriginal().
by Jakob Stoklund Olesen
· 14 years ago
a2ebf60
Separate timers for local and global splitting.
by Jakob Stoklund Olesen
· 14 years ago
ba05c01
Add VirtRegMap::rewrite() and use it in the new register allocators.
by Jakob Stoklund Olesen
· 14 years ago
0db841f
Add basic register allocator statistics.
by Jakob Stoklund Olesen
· 14 years ago
034a80d
Split local live ranges.
by Jakob Stoklund Olesen
· 14 years ago
23cd57c
Simplify using the new leaveIntvBefore()
by Jakob Stoklund Olesen
· 15 years ago
f0ac26c
Move calcLiveBlockInfo() and the BlockInfo struct into SplitAnalysis.
by Jakob Stoklund Olesen
· 15 years ago
2710638
Evict a lighter single interference before attempting to split a live range.
by Jakob Stoklund Olesen
· 15 years ago
8a2bbde
Fix one more case of splitting after the last split point.
by Jakob Stoklund Olesen
· 15 years ago
a50c539
Reorganize interference code to check LastSplitPoint first.
by Jakob Stoklund Olesen
· 15 years ago
d08d773
Also handle the situation where an indirect branch is the first (and last)
by Jakob Stoklund Olesen
· 15 years ago
8a61da8
Add LiveIntervals::addKillFlags() to recompute kill flags after register allocation.
by Jakob Stoklund Olesen
· 15 years ago
124e423
Trim debug spew
by Jakob Stoklund Olesen
· 15 years ago
5c716bd
Add SplitEditor::overlapIntv() to create small ranges where both registers are live.
by Jakob Stoklund Olesen
· 15 years ago
fe3f99f
Be more strict about the first/last interference-free use.
by Jakob Stoklund Olesen
· 15 years ago
de71095
Add assertions to verify that the new interval is clear of the interference.
by Jakob Stoklund Olesen
· 15 years ago
6393542
Be more accurate about live range splitting at the end of blocks.
by Jakob Stoklund Olesen
· 15 years ago
9b3d24b
Verify that one of the ranges produced by region splitting is allocatable.
by Jakob Stoklund Olesen
· 15 years ago
4513987
Also compute interference intervals for blocks with no uses.
by Jakob Stoklund Olesen
· 15 years ago
2dfbb3e
Ensure that the computed interference intervals actually overlap their basic blocks.
by Jakob Stoklund Olesen
· 15 years ago
207c868
Return live range end points from SplitEditor::enter*/leave*.
by Jakob Stoklund Olesen
· 15 years ago
0f43811
Reapply this.
by Eric Christopher
· 15 years ago
463a297
Temporarily revert 124765 in an attempt to find the cycle breaking bootstrap.
by Eric Christopher
· 15 years ago
2cd2111
Defer SplitKit value mapping until all defs are available.
by Jakob Stoklund Olesen
· 15 years ago
c0de995
SplitKit requires that all defs are in place before calling useIntv().
by Jakob Stoklund Olesen
· 15 years ago
92e6939
Don't accidentally leave small gaps in the live ranges when leaving the active
by Jakob Stoklund Olesen
· 15 years ago
ccdb3fc
Implement RAGreedy::splitAroundRegion and remove loop splitting.
by Jakob Stoklund Olesen
· 15 years ago
b5fa933
Add RAGreedy methods for splitting live ranges around regions.
by Jakob Stoklund Olesen
· 15 years ago
2aea490
Pacify the compiler. BestWeight cannot in fact be used uninitialized
by Duncan Sands
· 15 years ago
770d42d
When RegAllocGreedy decides to spill the interferences of the current register,
by Jakob Stoklund Olesen
· 15 years ago
87c6d25
Tweak debug spew.
by Jakob Stoklund Olesen
· 15 years ago
bb1744e
Fix GCC warning:
by Nick Lewycky
· 15 years ago
89cab93
Pass a Banner argument to the machine code verifier both from
by Jakob Stoklund Olesen
· 15 years ago
af24964
Make the -verify-regalloc command line option available to base classes as
by Jakob Stoklund Olesen
· 15 years ago
f428eb6
Enable loop splitting in RegAllocGreedy.
by Jakob Stoklund Olesen
· 15 years ago
d0bb5e2
Start using SplitKit and MachineLoopRanges in RegAllocGreedy in preparation of
by Jakob Stoklund Olesen
· 15 years ago
257c556
Simplify RegAllocGreedy's use of register aliases.
by Jakob Stoklund Olesen
· 15 years ago
3ef9f3d
Move debugging code entirely within DEBUG(). Silences an unused variable
by Matt Beaumont-Gay
· 15 years ago
bfce678
Add LiveIntervalUnion print methods, RegAllocGreedy::trySplit debug spew.
by Jakob Stoklund Olesen
· 15 years ago
d84de8c
Q.seenAllInterferences() must be called after Q.collectInterferingVRegs().
by Jakob Stoklund Olesen
· 15 years ago
885b328
Remove unused vector.
by Jakob Stoklund Olesen
· 15 years ago
46c83c8
Try reassigning all virtual register interferences, not just those with lower
by Jakob Stoklund Olesen
· 15 years ago
b64d92e
Add stub for RAGreedy::trySplit.
by Jakob Stoklund Olesen
· 15 years ago
533f58e
Add named timer groups for the different stages of register allocation.
by Jakob Stoklund Olesen
· 15 years ago
4680dec
Move MRI into RegAllocBase. Clean up debug output a bit.
by Jakob Stoklund Olesen
· 15 years ago
Next »