- May 18, 2009
-
-
Lang Hames authored
llvm-svn: 72030
-
- May 06, 2009
-
-
Lang Hames authored
llvm-svn: 71057
-
- Apr 22, 2009
-
-
Evan Cheng authored
This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. llvm-svn: 69743
-
- Apr 17, 2009
-
-
Evan Cheng authored
register is available and when it's profitable. e.g. xorq %r12<kill>, %r13 addq %rax, -184(%rbp) addq %r13, -184(%rbp) ==> xorq %r12<kill>, %r13 movq -184(%rbp), %r12 addq %rax, %r12 addq %r13, %r12 movq %r12, -184(%rbp) Two more instructions, but fewer memory accesses. It can also open up opportunities for more optimizations. llvm-svn: 69341
-
- Apr 13, 2009
-
-
Dan Gohman authored
the subreg field to 0, since the subreg field is only used for virtual register subregs. This doesn't change current functionality; it just eliminates bogus noise from debug output. llvm-svn: 68955
-
- Apr 09, 2009
-
-
Bob Wilson authored
register destinations that are tied to source operands. The TargetInstrDescr::findTiedToSrcOperand method silently fails for inline assembly. The existing MachineInstr::isRegReDefinedByTwoAddr was very close to doing what is needed, so this revision makes a few changes to that method and also renames it to isRegTiedToUseOperand (for consistency with the very similar isRegTiedToDefOperand and because it handles both two-address instructions and inline assembly with tied registers). llvm-svn: 68714
-
- Mar 31, 2009
-
-
Bill Wendling authored
llvm-svn: 68099
-
Bill Wendling authored
llvm-svn: 68092
-
- Mar 30, 2009
-
-
Bill Wendling authored
llvm-svn: 68059
-
- Mar 20, 2009
-
-
Sanjiv Gupta authored
llvm-svn: 67372
-
- Mar 19, 2009
-
-
Evan Cheng authored
llvm-svn: 67335
-
- Mar 17, 2009
-
-
Evan Cheng authored
Spiller may unfold load / mod / store instructions as an optimization when the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded. llvm-svn: 67068
-
- Mar 14, 2009
-
-
Daniel Dunbar authored
llvm-svn: 67000
-
- Mar 12, 2009
-
-
Owen Anderson authored
llvm-svn: 66780
-
- Mar 11, 2009
-
-
Owen Anderson authored
Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. No (intended) functionality change. llvm-svn: 66720
-
- Mar 09, 2009
-
-
Evan Cheng authored
Yet another case where the spiller marked two uses of the same register on the same instruction as kill. This fixes PR3706. llvm-svn: 66428
-
- Mar 08, 2009
-
-
Evan Cheng authored
llvm-svn: 66363
-
- Feb 28, 2009
-
-
Evan Cheng authored
llvm-svn: 65679
-
- Feb 26, 2009
-
-
Evan Cheng authored
llvm-svn: 65498
-
Evan Cheng authored
If an available register falls through to a succ block, unset the last kill. Sorry, it's impossible to reduce a sensible test case. It basically requires the moon and stars to align in order to cause a failure. llvm-svn: 65497
-
- Feb 17, 2009
-
-
Evan Cheng authored
A couple of places where reused use operands should be marked kill. This is exposed by recent availability fallthrough changes. llvm-svn: 64745
-
- Feb 13, 2009
-
-
Bill Wendling authored
llvm-svn: 64428
-
Bill Wendling authored
the new way, where all of the information is passed on SDNodes and machine instructions. llvm-svn: 64427
-
- Feb 12, 2009
-
-
Dan Gohman authored
llvm-svn: 64381
-
Evan Cheng authored
It's (currently) not safe to keep certain physical registers live across basic blocks, e.g. x86 fp stack registers. llvm-svn: 64374
-
Evan Cheng authored
If availability info is kept when fallthrough into a bb, add the available registers to live-in set. llvm-svn: 64372
-
Evan Cheng authored
Remove a bogus assertion. It's possible a live-in available value is used by a previous instruction. llvm-svn: 64339
-
- Feb 11, 2009
-
-
Evan Cheng authored
Implement PR3495: local spiller optimization. The local spiller can now keep availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies. llvm-svn: 64298
-
- Feb 03, 2009
-
-
Bill Wendling authored
llvm-svn: 63599
-
- Jan 20, 2009
-
-
Evan Cheng authored
llvm-svn: 62600
-
- Dec 02, 2008
-
-
Evan Cheng authored
llvm-svn: 60392
-
- Oct 17, 2008
-
-
Evan Cheng authored
Patch by Lang Hames! llvm-svn: 57720
-
Evan Cheng authored
llvm-svn: 57673
-
- Oct 14, 2008
-
-
Dan Gohman authored
instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. llvm-svn: 57521
-
- Oct 06, 2008
-
-
Dan Gohman authored
ENABLE_EXPENSIVE_CHECKS for finding this. llvm-svn: 57181
-
- Oct 03, 2008
-
-
Dan Gohman authored
isReg, etc., from isRegister, etc. llvm-svn: 57006
-
- Sep 11, 2008
-
-
Evan Cheng authored
llvm-svn: 56085
-
- Sep 10, 2008
-
-
Evan Cheng authored
llvm-svn: 56065
-
- Sep 04, 2008
-
-
Evan Cheng authored
Fix an overly strict assertion. Source register of a copy may not be killed, it may be killed by an implicit super-register use. llvm-svn: 55762
-
- Aug 19, 2008
-
-
Owen Anderson authored
llvm-svn: 54968
-