Andrew Trick
05ff4667eb
Move RegisterClassInfo.h.
...
Allow targets to access this API. It's required for RegisterPressure.
llvm-svn: 158102
2012-06-06 20:29:31 +00:00
Benjamin Kramer
5d1bca8016
CriticalAntiDepBreaker: Replace a SmallSet of regs with a much denser BitVector.
...
llvm-svn: 152999
2012-03-17 20:22:57 +00:00
Jakob Stoklund Olesen
4f5f84c7e7
Teach antidependency breakers to use RegisterClassInfo.
...
No functional change was intended.
llvm-svn: 133202
2011-06-16 21:56:21 +00:00
Devang Patel
f02a376fbc
Update DBG_VALUEs while breaking anti dependencies.
...
llvm-svn: 132487
2011-06-02 21:26:52 +00:00
Mikhail Glushenkov
52847a9bb9
Typo.
...
llvm-svn: 125232
2011-02-09 22:55:48 +00:00
Andrew Trick
4b4918788b
Fix PostRA antidependence breaker.
...
Avoid using the same register for two def operands or and earlyclobber
def and use operand. This fixes PR8986 and improves on the prior fix
for rdar://problem/8959122.
llvm-svn: 125089
2011-02-08 17:39:46 +00:00
Andrew Trick
82ae9a95a5
Fixes <rdar://problem/8612856>: During postRAsched, the antidependence
...
breaker needs to check all definitions of the antidepenent register to
avoid multiple defs of the same new register.
llvm-svn: 118032
2010-11-02 18:16:45 +00:00
Bill Wendling
51a9c0a1b3
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time
...
make sure to allocate enough space in the std::vector.
llvm-svn: 108449
2010-07-15 19:58:14 +00:00
Chris Lattner
c48adb60ca
revert bill's patches in an attempt to fix the buildbot.
...
llvm-svn: 108419
2010-07-15 06:51:46 +00:00
Bill Wendling
d5b390189d
Use std::vector instead of a hard-coded array. The length of that array could
...
get *very* large, but we only need it to be the size of thenumber of pregs.
llvm-svn: 108411
2010-07-15 05:56:32 +00:00
Evan Cheng
f128bdcb55
Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler.
...
llvm-svn: 106091
2010-06-16 07:35:02 +00:00
Dan Gohman
35bc4d46cb
Make BreakAntiDependencies' SUnits argument const, and make the Begin
...
and End arguments by-value rather than by-reference.
llvm-svn: 101830
2010-04-19 23:11:58 +00:00
Jim Grosbach
a7cef4fab5
Anti-dependency breaking needs to be careful regarding instructions with
...
multiple register definitions.
llvm-svn: 92864
2010-01-06 22:21:25 +00:00
Jim Grosbach
eb431da074
80 column and whitespace cleanup
...
llvm-svn: 92837
2010-01-06 16:48:02 +00:00
David Goodwin
80a03cc0b1
Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks.
...
llvm-svn: 89471
2009-11-20 19:32:48 +00:00
David Goodwin
8501dbbe10
Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed.
...
llvm-svn: 85939
2009-11-03 20:57:50 +00:00
David Goodwin
e30ed53c05
Make AntiDepReg.h internal.
...
llvm-svn: 85412
2009-10-28 18:29:54 +00:00
David Goodwin
e056d1077e
Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken.
...
llvm-svn: 85166
2009-10-26 22:31:16 +00:00
David Goodwin
8370485db9
Break anti-dependence breaking out into its own class.
...
llvm-svn: 85127
2009-10-26 16:59:04 +00:00