diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-05-10 21:50:58 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-05-10 21:50:58 +0000 |
commit | 768de0a0f8ba519a5ac6c2681b58b2c7876d0fd7 (patch) | |
tree | 2919e11ebef321b788cc84f4d9fac7c17960937f /llvm/lib/CodeGen | |
parent | c2fcb4df5e2fcdde58fb8d51135f0399eb347bba (diff) | |
download | bcm5719-llvm-768de0a0f8ba519a5ac6c2681b58b2c7876d0fd7.tar.gz bcm5719-llvm-768de0a0f8ba519a5ac6c2681b58b2c7876d0fd7.zip |
Disable my little CopyToReg argument hack with fast-isel. rdar://problem/9413587 .
llvm-svn: 131156
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index a01e2b86c2b..e5329f76f1c 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -6440,10 +6440,11 @@ void SelectionDAGISel::LowerArguments(const BasicBlock *LLVMBB) { // If this argument is live outside of the entry block, insert a copy from // wherever we got it to the vreg that other BB's will reference it as. - if (Res.getOpcode() == ISD::CopyFromReg) { + if (!EnableFastISel && Res.getOpcode() == ISD::CopyFromReg) { // If we can, though, try to skip creating an unnecessary vreg. // FIXME: This isn't very clean... it would be nice to make this more - // general. + // general. It's also subtly incompatible with the hacks FastISel + // uses with vregs. unsigned Reg = cast<RegisterSDNode>(Res.getOperand(1))->getReg(); if (TargetRegisterInfo::isVirtualRegister(Reg)) { FuncInfo->ValueMap[I] = Reg; |