summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GCStrategy.cpp
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2010-04-15 20:51:13 +0000
committerGabor Greif <ggreif@gmail.com>2010-04-15 20:51:13 +0000
commit33ae80bff75a1f973b772e542c42fff92a3a8b07 (patch)
treee5c82a660f1f730d717d4a11cb0067ea9ea89772 /llvm/lib/CodeGen/GCStrategy.cpp
parent5b0a0629a3f0bb1f83a286274202e307e77cc9aa (diff)
downloadbcm5719-llvm-33ae80bff75a1f973b772e542c42fff92a3a8b07.tar.gz
bcm5719-llvm-33ae80bff75a1f973b772e542c42fff92a3a8b07.zip
reapply r101364, which has been backed out in r101368
with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
Diffstat (limited to 'llvm/lib/CodeGen/GCStrategy.cpp')
-rw-r--r--llvm/lib/CodeGen/GCStrategy.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/GCStrategy.cpp b/llvm/lib/CodeGen/GCStrategy.cpp
index 790cb216489..97826cdf2a0 100644
--- a/llvm/lib/CodeGen/GCStrategy.cpp
+++ b/llvm/lib/CodeGen/GCStrategy.cpp
@@ -271,7 +271,7 @@ bool LowerIntrinsics::PerformDefaultLowering(Function &F, GCStrategy &S) {
case Intrinsic::gcwrite:
if (LowerWr) {
// Replace a write barrier with a simple store.
- Value *St = new StoreInst(CI->getOperand(1), CI->getOperand(3), CI);
+ Value *St = new StoreInst(CI->getOperand(0), CI->getOperand(2), CI);
CI->replaceAllUsesWith(St);
CI->eraseFromParent();
}
@@ -279,7 +279,7 @@ bool LowerIntrinsics::PerformDefaultLowering(Function &F, GCStrategy &S) {
case Intrinsic::gcread:
if (LowerRd) {
// Replace a read barrier with a simple load.
- Value *Ld = new LoadInst(CI->getOperand(2), "", CI);
+ Value *Ld = new LoadInst(CI->getOperand(1), "", CI);
Ld->takeName(CI);
CI->replaceAllUsesWith(Ld);
CI->eraseFromParent();
@@ -290,7 +290,7 @@ bool LowerIntrinsics::PerformDefaultLowering(Function &F, GCStrategy &S) {
// Initialize the GC root, but do not delete the intrinsic. The
// backend needs the intrinsic to flag the stack slot.
Roots.push_back(cast<AllocaInst>(
- CI->getOperand(1)->stripPointerCasts()));
+ CI->getOperand(0)->stripPointerCasts()));
}
break;
default:
OpenPOWER on IntegriCloud