summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-08-22 11:04:31 +0000
committerJohn McCall <rjmccall@apple.com>2010-08-22 11:04:31 +0000
commitc29eb8a9d15495c00df011230d27dfb1ce8ecd31 (patch)
tree7842dfc20452d1d5cd4a7954b2d05a18521c0472 /clang/lib
parenta1dee5300b3a0ad0c6e763d83d528ab0e6fc9c78 (diff)
downloadbcm5719-llvm-c29eb8a9d15495c00df011230d27dfb1ce8ecd31.tar.gz
bcm5719-llvm-c29eb8a9d15495c00df011230d27dfb1ce8ecd31.zip
Clean up a very silly use of first-class aggregates.
llvm-svn: 111777
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/ItaniumCXXABI.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp
index efaddf217b4..4aa433c7ca5 100644
--- a/clang/lib/CodeGen/ItaniumCXXABI.cpp
+++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp
@@ -234,12 +234,6 @@ ItaniumCXXABI::EmitMemberFunctionPointerConversion(CodeGenFunction &CGF,
E->path_end());
if (!Adj) return Src;
- llvm::Value *SrcPtr = Builder.CreateExtractValue(Src, 0, "src.ptr");
- llvm::Value *SrcAdj = Builder.CreateExtractValue(Src, 1, "src.adj");
-
- llvm::Value *Result = llvm::UndefValue::get(Src->getType());
- Result = Builder.CreateInsertValue(Result, SrcPtr, 0);
-
// The this-adjustment is left-shifted by 1 on ARM.
if (IsARM) {
uint64_t Offset = cast<llvm::ConstantInt>(Adj)->getZExtValue();
@@ -247,14 +241,14 @@ ItaniumCXXABI::EmitMemberFunctionPointerConversion(CodeGenFunction &CGF,
Adj = llvm::ConstantInt::get(Adj->getType(), Offset);
}
+ llvm::Value *SrcAdj = Builder.CreateExtractValue(Src, 1, "src.adj");
llvm::Value *DstAdj;
if (DerivedToBase)
DstAdj = Builder.CreateSub(SrcAdj, Adj, "adj");
else
DstAdj = Builder.CreateAdd(SrcAdj, Adj, "adj");
- Result = Builder.CreateInsertValue(Result, DstAdj, 1);
- return Result;
+ return Builder.CreateInsertValue(Src, DstAdj, 1);
}
llvm::Constant *
OpenPOWER on IntegriCloud