diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-09-22 00:29:40 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-09-22 00:29:40 +0000 |
commit | 8c500100f64e6387658e0ed29ce691fde1812c5c (patch) | |
tree | bc833a9cb108c910ad17f178f08cb575ca30bfb6 | |
parent | d6020c321a72da21f9763960033be735d4e8b5e8 (diff) | |
download | bcm5719-llvm-8c500100f64e6387658e0ed29ce691fde1812c5c.tar.gz bcm5719-llvm-8c500100f64e6387658e0ed29ce691fde1812c5c.zip |
Minor bug fix. LowerSubregs should translate
%S0<def> = EXTRACT_SUBREG %Q0<kill>, 1
to
%S0<def> = IMPLICIT_DEF %Q0<imp-use,kill>
Implicit_def does not *read* any register so the operand should be marked "implicit". The missing "implicit" marker on the operand is wrong, but it doesn't actually break anything.
llvm-svn: 82503
-rw-r--r-- | llvm/lib/CodeGen/LowerSubregs.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/LowerSubregs.cpp b/llvm/lib/CodeGen/LowerSubregs.cpp index 812d97d66c3..f3157f008b9 100644 --- a/llvm/lib/CodeGen/LowerSubregs.cpp +++ b/llvm/lib/CodeGen/LowerSubregs.cpp @@ -130,6 +130,7 @@ bool LowerSubregsInstructionPass::LowerExtract(MachineInstr *MI) { // instruction with IMPLICIT_DEF. MI->setDesc(TII.get(TargetInstrInfo::IMPLICIT_DEF)); MI->RemoveOperand(2); // SubIdx + MI->getOperand(1).setImplicit(true); DEBUG(errs() << "subreg: replace by: " << *MI); return true; } |