Duncan Sands
89720bbd11
Remove some not-really-used variables, as warned
...
about by icc (#593 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
2009-09-06 12:41:19 +00:00
Chris Lattner
4dc3edde9f
remove a few DOUTs here and there.
...
llvm-svn: 79832
2009-08-23 06:35:02 +00:00
Dan Gohman
0402315d41
Use setPreservesAll and setPreservesCFG in CodeGen passes.
...
llvm-svn: 77754
2009-07-31 23:37:33 +00:00
Chris Lattner
7667332899
inline the global 'getInstrOperandRegClass' function into its callers
...
now that TargetOperandInfo does the heavy lifting.
llvm-svn: 77508
2009-07-29 21:36:49 +00:00
Evan Cheng
a776067d3f
Fix pr4552. Stack slot coloring with register must take care not to generate illegal ams.
...
llvm-svn: 76258
2009-07-17 22:42:51 +00:00
Evan Cheng
c94de92c54
Fixed a stack slot coloring with reg bug: do not update implicit use / def when doing forward / backward propagation.
...
llvm-svn: 71574
2009-05-12 18:31:57 +00:00
Evan Cheng
c84bf99f58
Eliminate a compiler warning.
...
llvm-svn: 71456
2009-05-11 18:40:35 +00:00
Bill Wendling
5a2fff718d
Just turn aggressive stack coloring off at -O3.
...
llvm-svn: 71140
2009-05-07 01:33:38 +00:00
Bill Wendling
6144f63bd5
Temporarily revert r71010. It was causing massive failures during self-hosting.
...
llvm-svn: 71138
2009-05-07 01:27:25 +00:00
Evan Cheng
9bf9002161
Enable stack coloring with regs at -O3.
...
llvm-svn: 71010
2009-05-05 20:30:36 +00:00
Evan Cheng
6fc03634db
Do not substitute if the new register isn't in the register class of the operand being updated.
...
llvm-svn: 70953
2009-05-05 00:46:16 +00:00
Evan Cheng
dbfb102523
Do forward and backward substitution to eliminate loads and stores when possible.
...
llvm-svn: 70937
2009-05-04 23:13:13 +00:00
Evan Cheng
4b6072bcb8
The stack slots which share the same stack slot after coloring can, but do not have to, use the same register. In fact, they each may have different register class requirements.
...
llvm-svn: 70815
2009-05-04 00:24:50 +00:00
Evan Cheng
1de5cf548e
Typo.
...
llvm-svn: 70792
2009-05-03 19:10:11 +00:00
Evan Cheng
210fc62a91
In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all.
...
VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants.
Not yet enabled. This is part 1. More coming.
llvm-svn: 70787
2009-05-03 18:32:42 +00:00
Owen Anderson
5c53a46297
Enable stack slot coloring DCE. Evan's spiller fixes were needed before this could happen.
...
llvm-svn: 65501
2009-02-26 04:47:57 +00:00
Owen Anderson
0fb12efbc1
Add a debugging option for SSC DCE.
...
llvm-svn: 65375
2009-02-24 05:44:18 +00:00
Owen Anderson
81db491b7f
Add a quick pass to the stack slot colorer to eliminate some trivially redundant spills after coloring.
...
Ideally these would never get created in the first place, but until we enhance the spiller to have a more
global picture of what's happening, this is necessary for code quality in some circumstances.
llvm-svn: 65120
2009-02-20 09:11:36 +00:00
Dan Gohman
9bb56443a1
Teach StackSlotColoring to update MachineMemOperands when
...
changing the stack slots on an instruction, to keep them
consistent with the actual memory addresses.
llvm-svn: 60584
2008-12-05 05:31:14 +00:00
Dan Gohman
4459c4250d
Adjust whitespace in debug messages to be more consistent
...
with other debug messages.
llvm-svn: 57543
2008-10-15 02:57:38 +00:00
Dan Gohman
0d1e9a8e04
Switch the MachineOperand accessors back to the short names like
...
isReg, etc., from isRegister, etc.
llvm-svn: 57006
2008-10-03 15:45:36 +00:00
Evan Cheng
962c2cf17a
Instead of setPreservesAll, just mark them preseving machine loop info and machine dominators.
...
llvm-svn: 56475
2008-09-22 22:21:38 +00:00
Evan Cheng
168f8f3916
Mark several codegen passes as preserving all analysis.
...
llvm-svn: 56469
2008-09-22 20:58:04 +00:00
Dan Gohman
a79db30d28
Tidy up several unbeseeming casts from pointer to intptr_t.
...
llvm-svn: 55779
2008-09-04 17:05:41 +00:00
Dan Gohman
7ce10037c4
Make stack slot coloring's debug output more consistent with
...
other passes.
llvm-svn: 53415
2008-07-10 19:49:32 +00:00
Evan Cheng
71013f8c78
Remove option used to debug stack coloring bugs. It's no longer needed since stack coloring is now bug free.
...
llvm-svn: 52644
2008-06-23 21:24:32 +00:00
Evan Cheng
c72dcd103c
Instead of adding an isSS field to LiveInterval to denote stack slot. Use top bit of 'reg' instead. If the top bit is set, than the LiveInterval represents a stack slot live interval.
...
llvm-svn: 52639
2008-06-23 21:03:19 +00:00
Evan Cheng
12a0222a01
Add a stack slot coloring pass. Not yet enabled.
...
llvm-svn: 51934
2008-06-04 09:18:41 +00:00