diff options
author | Anders Carlsson <andersca@mac.com> | 2009-12-16 07:05:41 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-12-16 07:05:41 +0000 |
commit | e8e4a1c0bf2e3dd26dd0721a102307bbb589e96a (patch) | |
tree | e44725289737088310983e2b5b1b0e2f8f1e8674 /lib/CodeGen | |
parent | 30311fa6b0735b9cb73b01e25bf9652a4b9b0c53 (diff) |
Use GetAddrOfRTTI everywhere and remove GenerateRTTI and GenerateRTTIRef. With this change, we can now compile and link TableGen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91520 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGException.cpp | 9 | ||||
-rw-r--r-- | lib/CodeGen/CGExprCXX.cpp | 8 | ||||
-rw-r--r-- | lib/CodeGen/CGRTTI.cpp | 18 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenModule.h | 11 |
4 files changed, 8 insertions, 38 deletions
diff --git a/lib/CodeGen/CGException.cpp b/lib/CodeGen/CGException.cpp index b15b2e9b3b..c66bb46bd8 100644 --- a/lib/CodeGen/CGException.cpp +++ b/lib/CodeGen/CGException.cpp @@ -264,7 +264,7 @@ void CodeGenFunction::EmitCXXThrowExpr(const CXXThrowExpr *E) { // Now throw the exception. const llvm::Type *Int8PtrTy = llvm::Type::getInt8PtrTy(getLLVMContext()); - llvm::Constant *TypeInfo = CGM.GenerateRTTI(ThrowType); + llvm::Constant *TypeInfo = CGM.GetAddrOfRTTI(ThrowType); llvm::Constant *Dtor = llvm::Constant::getNullValue(Int8PtrTy); if (getInvokeDest()) { @@ -347,8 +347,7 @@ void CodeGenFunction::EmitStartEHSpec(const Decl *D) { for (unsigned i = 0; i < Proto->getNumExceptions(); ++i) { QualType Ty = Proto->getExceptionType(i); - llvm::Value *EHType - = CGM.GenerateRTTI(Ty.getNonReferenceType()); + llvm::Value *EHType = CGM.GetAddrOfRTTI(Ty.getNonReferenceType()); SelectorArgs.push_back(EHType); } if (Proto->getNumExceptions()) @@ -487,8 +486,8 @@ void CodeGenFunction::EmitCXXTryStmt(const CXXTryStmt &S) { const CXXCatchStmt *C = S.getHandler(i); VarDecl *CatchParam = C->getExceptionDecl(); if (CatchParam) { - llvm::Value *EHType - = CGM.GenerateRTTI(C->getCaughtType().getNonReferenceType()); + llvm::Value *EHType + = CGM.GetAddrOfRTTI(C->getCaughtType().getNonReferenceType()); SelectorArgs.push_back(EHType); } else { // null indicates catch all diff --git a/lib/CodeGen/CGExprCXX.cpp b/lib/CodeGen/CGExprCXX.cpp index 150f11ebf5..7f827ccd8e 100644 --- a/lib/CodeGen/CGExprCXX.cpp +++ b/lib/CodeGen/CGExprCXX.cpp @@ -469,9 +469,9 @@ llvm::Value * CodeGenFunction::EmitCXXTypeidExpr(const CXXTypeidExpr *E) { V = Builder.CreateLoad(V); return V; } - return Builder.CreateBitCast(CGM.GenerateRTTI(RD), LTy); + return Builder.CreateBitCast(CGM.GetAddrOfRTTI(RD), LTy); } - return Builder.CreateBitCast(CGM.GenerateRTTI(Ty), LTy); + return Builder.CreateBitCast(CGM.GetAddrOfRTTI(Ty), LTy); } llvm::Value *CodeGenFunction::EmitDynamicCast(llvm::Value *V, @@ -550,8 +550,8 @@ llvm::Value *CodeGenFunction::EmitDynamicCast(llvm::Value *V, // FIXME: Calculate better hint. llvm::Value *hint = llvm::ConstantInt::get(PtrDiffTy, -1ULL); - llvm::Value *SrcArg = CGM.GenerateRTTIRef(SrcTy); - llvm::Value *DstArg = CGM.GenerateRTTIRef(DstTy); + llvm::Value *SrcArg = CGM.GetAddrOfRTTI(SrcTy); + llvm::Value *DstArg = CGM.GetAddrOfRTTI(DstTy); V = Builder.CreateBitCast(V, PtrToInt8Ty); V = Builder.CreateCall4(CGM.CreateRuntimeFunction(FTy, "__dynamic_cast"), V, SrcArg, DstArg, hint); diff --git a/lib/CodeGen/CGRTTI.cpp b/lib/CodeGen/CGRTTI.cpp index 02de00e3d7..4b7814bdb0 100644 --- a/lib/CodeGen/CGRTTI.cpp +++ b/lib/CodeGen/CGRTTI.cpp @@ -485,21 +485,3 @@ llvm::Constant *CodeGenModule::GetAddrOfRTTI(QualType Ty) { return RTTIBuilder(*this).BuildType(Ty); } - -llvm::Constant *CodeGenModule::GenerateRTTIRef(const CXXRecordDecl *RD) { - RTTIBuilder b(*this); - - return b.Buildclass_type_infoRef(RD); -} - -llvm::Constant *CodeGenModule::GenerateRTTI(const CXXRecordDecl *RD) { - RTTIBuilder b(*this); - - return b.Buildclass_type_info(RD, llvm::GlobalValue::ExternalLinkage); -} - -llvm::Constant *CodeGenModule::GenerateRTTI(QualType Ty) { - RTTIBuilder b(*this); - - return b.BuildType(Ty); -} diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h index cc7ec9c301..20c71dc89b 100644 --- a/lib/CodeGen/CodeGenModule.h +++ b/lib/CodeGen/CodeGenModule.h @@ -219,17 +219,6 @@ public: /// decl. llvm::Constant *GetAddrOfRTTI(const CXXRecordDecl *RD); - /// GenerateRTTI - Generate the rtti information for the given type. - llvm::Constant *GenerateRTTI(const CXXRecordDecl *RD); - - /// GenerateRTTIRef - Generate a reference to the rtti information for the - /// given type. - llvm::Constant *GenerateRTTIRef(const CXXRecordDecl *RD); - - /// GenerateRTTI - Generate the rtti information for the given - /// non-class type. - llvm::Constant *GenerateRTTI(QualType Ty); - llvm::Constant *GetAddrOfThunk(GlobalDecl GD, const ThunkAdjustment &ThisAdjustment); llvm::Constant *GetAddrOfCovariantThunk(GlobalDecl GD, |