#
a57b97e7 |
| 21-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS().
llvm-svn: 109045
|
#
37c42a3d |
| 16-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.
TII::isMoveInstr is going tobe completely removed.
llvm-svn: 108507
|
#
00264624 |
| 08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert EXTRACT_SUBREG to COPY when emitting machine instrs.
EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead.
Add isCopy() checks in many places using isMoveInstr() and
Convert EXTRACT_SUBREG to COPY when emitting machine instrs.
EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead.
Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg(). The isMoveInstr hook will be removed later.
llvm-svn: 107879
show more ...
|
#
4c82a9e7 |
| 03-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Detect and handle COPY in many places.
This code is transitional, it will soon be possible to eliminate isExtractSubreg, isInsertSubreg, and isMoveInstr in most places.
llvm-svn: 107547
|
#
a03e6f85 |
| 04-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 105308 with fix.
llvm-svn: 105502
|
#
30093b5d |
| 03-Jun-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert 105308.
llvm-svn: 105399
|
#
a2da2273 |
| 02-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine cse of instructions which define physical registers.
llvm-svn: 105308
|
#
53ff992d |
| 21-May-2010 |
Eric Christopher <echristo@apple.com> |
Make this LookAheadLimit, not the uninitialized LookAheadLeft.
Evan please verify!
llvm-svn: 104408
|
#
2c8bdead |
| 21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow machine cse to cse instructions which define physical registers. Controlled by option -machine-cse-phys-defs.
llvm-svn: 104385
|
#
7767d274 |
| 13-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a utility function for conservatively clearing kill flags, and make use of it in MachineCSE.
llvm-svn: 103726
|
Revision tags: llvmorg-2.7.0 |
|
#
4b2ef56a |
| 21-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite machine cse to avoid recursion.
llvm-svn: 101964
|
#
4019d571 |
| 20-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Typo.
llvm-svn: 101914
|
#
604bc162 |
| 02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted. rdar://7819990
llvm-svn
After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted. rdar://7819990
llvm-svn: 100170
show more ...
|
#
cf7be39e |
| 24-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
dbg_value may end a block.
llvm-svn: 99378
|
#
c7d721aa |
| 23-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up.
llvm-svn: 99319
|
#
197bd3ee |
| 11-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix debug_value handling.
llvm-svn: 98224
|
#
4c5f7a7f |
| 10-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a couple more heuristics to neuter machine cse some more.
1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a dir
Add a couple more heuristics to neuter machine cse some more.
1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a direct predecessor. We don't want cse of cheap instruction causing other expressions to be spilled. 2. Watch out for the case where the expression doesn't itself uses a virtual register. e.g. lea of frame object. If the common expression itself is used by copies (common for passing addresses to function calls), don't perform the cse. Since these expressions do not use a register, it creates a live range but doesn't close any, we want to be very careful with increasing register pressure.
Note these are heuristics so machine cse doesn't make register allocator unhappy. Once we have proper live range splitting and re-materialization support in place, these should be evaluated again.
Now machine cse is almost always a win on llvm nightly tests on x86 and x86_64.
llvm-svn: 98121
show more ...
|
#
51063739 |
| 09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Allow more cross-rc coalescing.
llvm-svn: 98048
|
#
7c699f92 |
| 09-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't do illegal cross-class coalescing.
llvm-svn: 98044
|
#
19e44b45 |
| 09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Make the machine cse dumb coalescer (as opposed to the more awesome simple coalescer) handle sub-register classes. - Add heuristics to avoid non-profitable cse. Given the current lack of live r
- Make the machine cse dumb coalescer (as opposed to the more awesome simple coalescer) handle sub-register classes. - Add heuristics to avoid non-profitable cse. Given the current lack of live range splitting, avoid cse when an expression has PHI use and the would be new use is in a BB where the expression wasn't already being used.
llvm-svn: 98043
show more ...
|
#
c9e86212 |
| 08-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason.
llvm-svn: 98009
|
#
6ec41ee3 |
| 08-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Restrict machine cse to really trivial coalescing. Leave the heavy lifting to a real coalescer.
llvm-svn: 98007
|
#
0f5f5478 |
| 06-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Don't update physical register def.
llvm-svn: 97861
|
#
1abd1a9f |
| 04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid cse load instructions unless they are known to be invariant loads.
llvm-svn: 97747
|
#
36f8aabb |
| 04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Look ahead a bit to determine if a physical register def that is not marked dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86.
llvm-svn: 97706
|