#
a5b10b33 |
| 28-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Recover most of the compile time regression due to recent live interval changes. 1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector.
Recover most of the compile time regression due to recent live interval changes. 1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector. The former performs slowly when the vector size is very large.
llvm-svn: 41536
show more ...
|
#
74c69f75 |
| 14-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bugs.
llvm-svn: 41064
|
#
5ca98c65 |
| 13-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Kill info update bugs.
llvm-svn: 41043
|
#
05cc486c |
| 11-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Code to maintain kill information during register coalescing.
llvm-svn: 41016
|
#
10394712 |
| 08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up and bug fix.
llvm-svn: 40921
|
#
a8c2f386 |
| 08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Each val# can have multiple kills. - Fix some minor bugs related to special markers on val# def. ~0U means undefined, ~1U means dead val#.
llvm-svn: 40916
|
#
c236617e |
| 08-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Remove a dead assertion.
llvm-svn: 40914
|
#
0d0fee26 |
| 07-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- LiveInterval value#'s now have 3 components: def instruction #, kill instruction #, and source register number (iff the value# is defined by a copy). - Now def instruction # is set for every value#
- LiveInterval value#'s now have 3 components: def instruction #, kill instruction #, and source register number (iff the value# is defined by a copy). - Now def instruction # is set for every value#, not just for copy defined ones. - Update some outdated code related inactive live ranges. - Kill info not yet set. That's next patch.
llvm-svn: 40913
show more ...
|
Revision tags: llvmorg-2.0.0 |
|
#
57b5214d |
| 17-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a register allocation preference field; add a method to compute size of a live interval.
llvm-svn: 36216
|
#
a77f1426 |
| 17-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Added an automatic cast to "std::ostream*" etc. from OStream. We then can rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the c
Added an automatic cast to "std::ostream*" etc. from OStream. We then can rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method.
llvm-svn: 32636
show more ...
|
#
29192e62 |
| 16-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
The best unbreakage yet, addressing Bill's concerns.
llvm-svn: 32622
|
#
b82309f1 |
| 15-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
An even better unbreakage...
llvm-svn: 32617
|
#
f3baad3e |
| 07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
#
5c3966aa |
| 29-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Converted to using llvm streams instead of <iostream>s
llvm-svn: 31992
|
#
bc0d5f8b |
| 28-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Put the #include for a module first.
llvm-svn: 31958
|
#
3f6f0fd0 |
| 28-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Changed to using llvm streams.
llvm-svn: 31954
|
Revision tags: llvmorg-1.9.0 |
|
#
de46e484 |
| 02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR786: Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to dele
For PR786: Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380
show more ...
|
#
5a56d309 |
| 02-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
When joining two intervals where the RHS is really simple, use a light-weight method for joining the live ranges instead of the fully-general one.
llvm-svn: 30049
|
#
aa36808f |
| 31-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
avoid calling the virtual isMoveInstr method endlessly by caching its results.
llvm-svn: 29994
|
#
34434e97 |
| 29-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Teach the coallescer to coallesce live intervals joined by an arbitrary number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coall
Teach the coallescer to coallesce live intervals joined by an arbitrary number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coallsced. Among other things, this fixes CodeGen/X86/shift-coalesce.ll and PR687.
llvm-svn: 29968
show more ...
|
#
122f2bcd |
| 26-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Simplifications to liveinterval analysis, no functionality change.
llvm-svn: 29896
|
#
f4f0b199 |
| 25-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Completely change the way that joining with physregs is implemented. This paves the way for future changes, increases coallescing opportunities (in theory, not witnessed in practice), and eliminates
Completely change the way that joining with physregs is implemented. This paves the way for future changes, increases coallescing opportunities (in theory, not witnessed in practice), and eliminates the really expensive LiveIntervals::overlapsAliases method.
llvm-svn: 29890
show more ...
|
#
24d4208c |
| 24-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
When replacing value numbers, make sure to compactify the value # space.
llvm-svn: 29865
|
#
bdf12106 |
| 24-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Take advantage of the recent improvements to the liveintervals set (tracking instructions which define each value#) to simplify and improve the coallescer. In particular, this patch:
1. Implements i
Take advantage of the recent improvements to the liveintervals set (tracking instructions which define each value#) to simplify and improve the coallescer. In particular, this patch:
1. Implements iterative coallescing. 2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a better solution. 3. Implements PR865, "coallescing" away the second copy in code like:
A = B ... B = A
This also includes changes to symbolically print registers in intervals when possible.
llvm-svn: 29862
show more ...
|
#
2e9f1bc0 |
| 22-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Improve the LiveInterval class to keep track of which machine instruction defines each value# tracked by the interval. This will be used to improve coallescing.
llvm-svn: 29830
|