- 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 19, 2009
-
-
Evan Cheng authored
llvm-svn: 67335
-
- Jan 29, 2009
-
-
Evan Cheng authored
Local register allocator shouldn't assume only the entry and landing pad basic blocks have live-ins. llvm-svn: 63323
-
Evan Cheng authored
llvm-svn: 63267
-
Evan Cheng authored
A slight compile time optimization. If the caller knows there isn't a free register getReg() should not call getFreeReg(). llvm-svn: 63263
-
- Jan 20, 2009
-
-
Evan Cheng authored
llvm-svn: 62600
-
- Dec 05, 2008
-
-
Dan Gohman authored
llvm-svn: 60586
-
- Nov 24, 2008
-
-
Matthijs Kooijman authored
llvm-svn: 59961
-
- 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 08, 2008
-
-
Owen Anderson authored
Fix the case where an instruction is not properly marked as using all registers that alias its inputs. llvm-svn: 57286
-
- Oct 04, 2008
-
-
Dan Gohman authored
was setting kill flags on tied uses in two-address instructions. The kill flags were causing the allocator to think it could allocate the use and its tied def in different registers. llvm-svn: 57039
-
- Oct 03, 2008
-
-
Dan Gohman authored
isReg, etc., from isRegister, etc. llvm-svn: 57006
-
- Sep 25, 2008
-
-
Dale Johannesen authored
for earlyclobbers. Teach Local RA about earlyclobber, and add some tests for it. llvm-svn: 56592
-
- Sep 13, 2008
-
-
Dan Gohman authored
isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it. llvm-svn: 56189
-
- Sep 04, 2008
-
-
Dan Gohman authored
llvm-svn: 55779
-
- Aug 22, 2008
-
-
Chris Lattner authored
Patch contributed by m-s. llvm-svn: 55167
-
- Jul 10, 2008
-
-
Evan Cheng authored
llvm-svn: 53414
-
Evan Cheng authored
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel. llvm-svn: 53394
-
Owen Anderson authored
Use DenseMap instead of std::map in local register allocation. This improves the time on instcombine from .31s to .22s llvm-svn: 53390
-
Owen Anderson authored
llvm-svn: 53389
-
Owen Anderson authored
llvm-svn: 53378
-
- Jul 09, 2008
-
-
Owen Anderson authored
Loosen our check here. Local regalloc only cares that the reg is used and def'd by the same instruction, but about the details of the relationship. llvm-svn: 53367
-
Owen Anderson authored
Don't use an expensive check for two-address-ness when we have the information sitting around to determine it much more quickly, This speeds up the local register allocator from 0.37s to 0.31s on instcombine. llvm-svn: 53359
-
Owen Anderson authored
llvm-svn: 53352
-
Dan Gohman authored
Keep RegAllocSimple in sync. llvm-svn: 53351
-
Dan Gohman authored
of having local variables duplicate it. llvm-svn: 53346
-
Dan Gohman authored
with extra checks. llvm-svn: 53344
-
Owen Anderson authored
Fix the build. Apparently MachineInstr& is no longer implicitly convertable to MachineBasicBlock::iterator. llvm-svn: 53260
-
Owen Anderson authored
rather than depending on LiveVariables. This decreases compile time from: 0.5909s (LV + Regalloc) to 0.421s (just regalloc). llvm-svn: 53256
-
- May 28, 2008
-
-
Evan Cheng authored
llvm-svn: 51647
-
- May 13, 2008
-
-
Dan Gohman authored
several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
-
- Apr 02, 2008
-
-
Evan Cheng authored
llvm-svn: 49099
-
- Mar 05, 2008
-
-
Evan Cheng authored
findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. llvm-svn: 47927
-
- Feb 29, 2008
-
-
Bill Wendling authored
that instruction as its "last use". This fixes PR1925. llvm-svn: 47758
-
- Feb 26, 2008
-
-
Bill Wendling authored
llvm-svn: 47629
-
Bill Wendling authored
would have been a Godsend here! llvm-svn: 47625
-
- Feb 22, 2008
-
-
Evan Cheng authored
Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI. llvm-svn: 47499
-
Evan Cheng authored
llvm-svn: 47496
-
- Feb 20, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 47375
-
- Feb 11, 2008
-
-
Evan Cheng authored
Determine whether a spill kills the register it's spilling before insertion rather than trying to undo the kill marker afterwards. llvm-svn: 46953
-