summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-05-10 21:50:58 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-05-10 21:50:58 +0000
commit768de0a0f8ba519a5ac6c2681b58b2c7876d0fd7 (patch)
tree2919e11ebef321b788cc84f4d9fac7c17960937f /llvm/lib/CodeGen
parentc2fcb4df5e2fcdde58fb8d51135f0399eb347bba (diff)
downloadbcm5719-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.cpp5
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;
OpenPOWER on IntegriCloud