Gitiles
Code Review
Sign In
gerrit-public.fairphone.software
/
fp2-dev
/
platform
/
external
/
llvm
/
df158c7e3f09c05805e129fc2e8e661ccbc21f54
/
lib
/
CodeGen
/
LiveIntervalAnalysis.cpp
df158c7
Disambiguate statistic descriptions.
by Alkis Evlogimenos
· 21 years ago
cea4471
Rename statistic and add another one.
by Alkis Evlogimenos
· 21 years ago
39a0d5c
Too many changes in one commit:
by Alkis Evlogimenos
· 21 years ago
23c114f
Be more agressive when joining ranges.
by Alkis Evlogimenos
· 21 years ago
99d9923
Fix overly conservative spill interval computation.
by Alkis Evlogimenos
· 21 years ago
355a724
Fix spilled interval update. It was too conservative.
by Alkis Evlogimenos
· 21 years ago
843b160
Eliminate the use of spill (reserved) registers.
by Alkis Evlogimenos
· 22 years ago
6ab5c15
Use std::numeric_limits<float>::infinity() instead of
by Alkis Evlogimenos
· 22 years ago
be766c7
Remove getAllocatedRegNum(). Use getReg() instead.
by Alkis Evlogimenos
· 22 years ago
c0b9dc5
Change MachineBasicBlock's vector of MachineInstr pointers into an
by Alkis Evlogimenos
· 22 years ago
1cbe4d0
Do not use MachineOperand::isVirtualRegister either!
by Chris Lattner
· 22 years ago
0b8cb2b
Change live interval representation. Machine instructions now have two
by Alkis Evlogimenos
· 22 years ago
ad48cd6
We don't need to scan the blocks that we are live-in on every
by Alkis Evlogimenos
· 22 years ago
b606eac
Should be more careful. The previously applied change made all counts
by Alkis Evlogimenos
· 22 years ago
b180e3e
Change string for joined intervals.
by Alkis Evlogimenos
· 22 years ago
b0b0eba
Change xor to ^.
by Alkis Evlogimenos
· 22 years ago
676cf8c
Missed one silly assert :-)
by Alkis Evlogimenos
· 22 years ago
01e74a2
Simplify joinIntervals() code.
by Alkis Evlogimenos
· 22 years ago
4f67b86
Use MRegisterInfo::isPhysicalRegister and MRegisterInfo::isVirtualRegister.
by Alkis Evlogimenos
· 22 years ago
52220f6
Apply final part of Chris' patch.
by Alkis Evlogimenos
· 22 years ago
02ba13c
Be a little smarter on the way we handle physical register defs.
by Alkis Evlogimenos
· 22 years ago
08cec00
Merge safe parts from last night's buggy commit. These do not break
by Alkis Evlogimenos
· 22 years ago
97017de
Optimize liveAt() and overlaps(). We now use a binary search instead
by Alkis Evlogimenos
· 22 years ago
4d46e1e
Revert last night's changes as they broke some tests. Will remerge parts of the patch.
by Alkis Evlogimenos
· 22 years ago
32bdd4e
Several performance enhancements and cleanups from Chris.
by Alkis Evlogimenos
· 22 years ago
79b0c3f
Fix failing test cases with joined live intervals. It turns out that
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
1075ecd
Revert previous change. The code was correct...
by Alkis Evlogimenos
· 22 years ago
e1a2107
Fix incorrect negatives in LiveIntervals::Interval::liveAt().
by Alkis Evlogimenos
· 22 years ago
1893a05
Add asserts to previous change.
by Alkis Evlogimenos
· 22 years ago
f5f1689
Use a list instead of a vector to store intervals. This will be needed
by Alkis Evlogimenos
· 22 years ago
d6e40a6
Properly update #intervals statistic.
by Alkis Evlogimenos
· 22 years ago
9739736
Fix bug in LiveIntervals::Interval::overlaps and
by Alkis Evlogimenos
· 22 years ago
af25473
Fix miscomputation of live intervals. The catch is that registers can
by Alkis Evlogimenos
· 22 years ago
1a119e2
Remove allocatable registers vector. It is already provided by LiveVariables.
by Alkis Evlogimenos
· 22 years ago
a3a6524
Cleanup debugging output.
by Alkis Evlogimenos
· 22 years ago
63841bc
Fix output of live intervals to show correctly its closed, open
by Alkis Evlogimenos
· 22 years ago
19b6486
Correctly compute live variable information for physical registers
by Alkis Evlogimenos
· 22 years ago
80b378c
Change implementation of LiveIntervals::overlap(). This results in a
by Alkis Evlogimenos
· 22 years ago
63caedf
Remove simple coalescing.
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
7a40eaa
Do a separate pass to compute spill weights because doing it inline
by Alkis Evlogimenos
· 22 years ago
056063e
Fix crash when compiling twolf.
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
4c08086
Remove TwoAddressInstruction from the public headers and add an ID
by Alkis Evlogimenos
· 22 years ago
a71e05a
Modify linear scan register allocator to use the two-address
by Alkis Evlogimenos
· 22 years ago
43f692f
When a variable is killed and redifined in a basic block only one
by Alkis Evlogimenos
· 22 years ago
dd2cc65
Handle multiple virtual register definitions gracefully.
by Alkis Evlogimenos
· 22 years ago
f6f91bf
Change preserve all claim to just preserve live variables and phielimination.
by Alkis Evlogimenos
· 22 years ago
4d7af65
Change interface of MachineOperand as follows:
by Alkis Evlogimenos
· 22 years ago
4c214d2
Ignore non-allocatable physical registers in live interval analysis.
by Alkis Evlogimenos
· 22 years ago
9435eda
Handle explicit physical register defs.
by Alkis Evlogimenos
· 22 years ago
b27ef24
Move operator<<(std::ostream&, const LiveInterval&) out of the header file.
by Alkis Evlogimenos
· 22 years ago
91ceae6
Sort live intervals by increasing start point.
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