- Aug 23, 2009
-
-
Chris Lattner authored
llvm-svn: 79842
-
Chris Lattner authored
MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-) llvm-svn: 79813
-
- Aug 13, 2009
-
-
Owen Anderson authored
llvm-svn: 78948
-
- Aug 04, 2009
-
-
Jakob Stoklund Olesen authored
For an undef operand, MO.getReg() is meaningless and we should not use it. Undef operands should be skipped entirely. llvm-svn: 78095
-
- Aug 03, 2009
-
-
Jakob Stoklund Olesen authored
When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG instriction because it is an identity copy, make sure that the same registers are alive before and after the elimination. When the super-register is marked <undef> this requires inserting an IMPLICIT_DEF instruction to make sure the super register is live. Fix a related bug where a kill flag on the inserted sub-register was not transferred properly. Finally, clear the undef flag in MachineInstr::addRegisterKilled. Undef implies dead and kill implies live, so they cant both be valid. llvm-svn: 77989
-
- Aug 02, 2009
-
-
Jakob Stoklund Olesen authored
llvm-svn: 77906
-
- Jul 28, 2009
-
-
Evan Cheng authored
llvm-svn: 77369
-
- Jul 19, 2009
-
-
http://llvm.org/bugs/show_bug.cgi?id=4583Jakob Stoklund Olesen authored
Inline asm instructions may have additional <imp-def,kill> register operands. These operands are not marked with a flag like the normal asm operands, so we must not assert that there is a flag. llvm-svn: 76373
-
- Jul 16, 2009
-
-
Jakob Stoklund Olesen authored
The inline asm operands must be parsed from the first flag, you cannot assume that an immediate operand preceeding a register use operand is the flag. PowerPC "m" operands are represented as (flag, imm, reg) triples. isRegTiedToDefOperand() would incorrectly interpret the imm as the flag. llvm-svn: 76101
-
- Jul 14, 2009
-
-
Torok Edwin authored
This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
-
- Jul 11, 2009
-
-
Torok Edwin authored
Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
-
- Jun 30, 2009
-
-
Evan Cheng authored
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them. The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing. This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def. llvm-svn: 74518
-
- Jun 24, 2009
-
-
Chris Lattner authored
llvm-svn: 74087
-
Evan Cheng authored
Fix support for inline asm input / output operand tying when operand spans across multiple registers (e.g. two i64 operands in 32-bit mode). llvm-svn: 74053
-
- Jun 05, 2009
-
-
Dan Gohman authored
llvm-svn: 72948
-
- May 01, 2009
-
-
Argyrios Kyrtzidis authored
-Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) llvm-svn: 70520
-
- Apr 29, 2009
-
-
Jakob Stoklund Olesen authored
llvm-svn: 70408
-
- Apr 15, 2009
-
-
Dan Gohman authored
variadic operands correctly. Patch by Jakob Stoklund Olesen! llvm-svn: 69190
-
Dan Gohman authored
code out of line. llvm-svn: 69124
-
- Apr 10, 2009
-
-
Chris Lattner authored
isRegTiedToDefOperand. Thanks to Bob for pointing this out! llvm-svn: 68734
-
- 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
-
Chris Lattner authored
attached testcase. llvm-svn: 68712
-
- Mar 23, 2009
-
-
Evan Cheng authored
Model inline asm constraint which ties an input to an output register as machine operand TIED_TO constraint. This eliminated the need to pre-allocate registers for these. This also allows register allocator can eliminate the unneeded copies. llvm-svn: 67512
-
- Mar 19, 2009
-
-
Evan Cheng authored
llvm-svn: 67335
-
- Feb 19, 2009
-
-
Bill Wendling authored
llvm-svn: 65067
-
- Jan 28, 2009
-
-
Dale Johannesen authored
llvm-svn: 63152
-
- Dec 23, 2008
-
-
Dan Gohman authored
several places. isTerminator() returns true for a superset of cases, and includes things like FP_REG_KILL, which are nither return or branch but aren't safe to move/remat/etc. llvm-svn: 61373
-
- Dec 18, 2008
-
-
Dan Gohman authored
llvm-svn: 61213
-
- Dec 09, 2008
-
-
Dan Gohman authored
llvm-svn: 60804
-
- Dec 05, 2008
-
-
Dan Gohman authored
llvm-svn: 60586
-
- Nov 18, 2008
-
-
Dan Gohman authored
llvm-svn: 59542
-
Dan Gohman authored
llvm-svn: 59540
-
- Oct 10, 2008
-
-
Mon P Wang authored
llvm-svn: 57339
-
- Oct 03, 2008
-
-
Dan Gohman authored
isReg, etc., from isRegister, etc. llvm-svn: 57006
-
- Oct 02, 2008
-
-
Dan Gohman authored
volatile memory references are safe to move. llvm-svn: 56948
-
- Sep 24, 2008
-
-
Dale Johannesen authored
RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. llvm-svn: 56539
-
Dan Gohman authored
any volatile memory references. llvm-svn: 56528
-
- Sep 17, 2008
-
-
Dale Johannesen authored
with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments. llvm-svn: 56290
-
- Sep 14, 2008
-
-
Dale Johannesen authored
llvm-svn: 56194
-
- 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
-