Gitiles
Code Review
Sign In
gerrit-public.fairphone.software
/
fp2-dev
/
platform
/
external
/
llvm
/
581d535af91dd55326250986273eabb495e55119
/
lib
/
CodeGen
/
RegAllocGreedy.cpp
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
a0bb037
Remove extraneous close parenthesis. Fix build breakage.
by Nick Lewycky
· 15 years ago
5a4308b
Move variable that's unused in an NDEBUG build inside the DEBUG() macro, fixing
by Nick Lewycky
· 15 years ago
f6dff84
Force the greedy register allocator to always use the inline spiller.
by Jakob Stoklund Olesen
· 15 years ago
dd479e9
Use AllocationOrder in RegAllocGreedy, fix a bug in the hint calculation.
by Jakob Stoklund Olesen
· 15 years ago
6ce219e
Fix miscompilation caused by trivial logic error in the reassignVReg()
by Jakob Stoklund Olesen
· 15 years ago
ff092fa
Remember to filter out reserved rergisters from the allocation order.
by Jakob Stoklund Olesen
· 15 years ago
b853e6c
Added register reassignment prototype to RAGreedy. It's a simple
by Andrew Trick
· 15 years ago
9b0c4f8
Properly deal with empty intervals when checking for interference.
by Jakob Stoklund Olesen
· 15 years ago
90c1d7d
Implement very primitive hinting support in RegAllocGreedy.
by Jakob Stoklund Olesen
· 15 years ago
d0bec3e
Store (priority,regnum) pairs in the priority queue instead of providing an
by Jakob Stoklund Olesen
· 15 years ago
7539366
Trim includes.
by Jakob Stoklund Olesen
· 15 years ago
cba2e06
Stub out RegAllocGreedy.
by Jakob Stoklund Olesen
· 15 years ago