From 85e356825b291f86c6e926638914222b834b71a3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 8 Aug 2008 19:57:58 +0000 Subject: [PATCH] update to make IRBuilder API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54548 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGDebugInfo.cpp | 11 ++++++----- lib/CodeGen/CGDebugInfo.h | 12 ++++++------ lib/CodeGen/CGExprAgg.cpp | 2 +- lib/CodeGen/CGExprComplex.cpp | 2 +- lib/CodeGen/CGExprScalar.cpp | 2 +- lib/CodeGen/CGObjCGNU.cpp | 24 ++++++++++++------------ lib/CodeGen/CGObjCRuntime.h | 17 +++++++++-------- lib/CodeGen/CodeGenFunction.h | 2 +- 8 files changed, 37 insertions(+), 35 deletions(-) diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 0b63463d1f..1a7e4dbab1 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -591,7 +591,7 @@ CGDebugInfo::getOrCreateType(QualType type, llvm::CompileUnitDesc *Unit) /// "llvm.dbg.func.start.". void CGDebugInfo::EmitFunctionStart(const FunctionDecl *FnDecl, llvm::Function *Fn, - llvm::IRBuilder &Builder) + llvm::IRBuilder<> &Builder) { // Create subprogram descriptor. Subprogram = new llvm::SubprogramDesc(); @@ -636,7 +636,7 @@ void CGDebugInfo::EmitFunctionStart(const FunctionDecl *FnDecl, void -CGDebugInfo::EmitStopPoint(llvm::Function *Fn, llvm::IRBuilder &Builder) +CGDebugInfo::EmitStopPoint(llvm::Function *Fn, llvm::IRBuilder<> &Builder) { if (CurLoc.isInvalid() || CurLoc.isMacroID()) return; @@ -670,7 +670,8 @@ CGDebugInfo::EmitStopPoint(llvm::Function *Fn, llvm::IRBuilder &Builder) /// EmitRegionStart- Constructs the debug code for entering a declarative /// region - "llvm.dbg.region.start.". -void CGDebugInfo::EmitRegionStart(llvm::Function *Fn, llvm::IRBuilder &Builder) +void CGDebugInfo::EmitRegionStart(llvm::Function *Fn, + llvm::IRBuilder<> &Builder) { llvm::BlockDesc *Block = new llvm::BlockDesc(); if (RegionStack.size() > 0) @@ -688,7 +689,7 @@ void CGDebugInfo::EmitRegionStart(llvm::Function *Fn, llvm::IRBuilder &Builder) /// EmitRegionEnd - Constructs the debug code for exiting a declarative /// region - "llvm.dbg.region.end." -void CGDebugInfo::EmitRegionEnd(llvm::Function *Fn, llvm::IRBuilder &Builder) +void CGDebugInfo::EmitRegionEnd(llvm::Function *Fn, llvm::IRBuilder<> &Builder) { // Lazily construct llvm.dbg.region.end function. if (!RegionEndFn) @@ -707,7 +708,7 @@ void CGDebugInfo::EmitRegionEnd(llvm::Function *Fn, llvm::IRBuilder &Builder) /// EmitDeclare - Emit local variable declaration debug info. void CGDebugInfo::EmitDeclare(const VarDecl *decl, unsigned Tag, llvm::Value *AI, - llvm::IRBuilder &Builder) + llvm::IRBuilder<> &Builder) { // FIXME: If it is a compiler generated temporary then return. diff --git a/lib/CodeGen/CGDebugInfo.h b/lib/CodeGen/CGDebugInfo.h index 61664a6962..d94619b391 100644 --- a/lib/CodeGen/CGDebugInfo.h +++ b/lib/CodeGen/CGDebugInfo.h @@ -22,7 +22,7 @@ namespace llvm { class Function; - class IRBuilder; + template class IRBuilder; class DISerializer; class CompileUnitDesc; class BasicBlock; @@ -103,24 +103,24 @@ public: /// EmitStopPoint - Emit a call to llvm.dbg.stoppoint to indicate a change of /// source line. - void EmitStopPoint(llvm::Function *Fn, llvm::IRBuilder &Builder); + void EmitStopPoint(llvm::Function *Fn, llvm::IRBuilder &Builder); /// EmitFunctionStart - Emit a call to llvm.dbg.function.start to indicate /// start of a new function void EmitFunctionStart(const FunctionDecl *FnDecl, llvm::Function *Fn, - llvm::IRBuilder &Builder); + llvm::IRBuilder &Builder); /// EmitRegionStart - Emit a call to llvm.dbg.region.start to indicate start /// of a new block. - void EmitRegionStart(llvm::Function *Fn, llvm::IRBuilder &Builder); + void EmitRegionStart(llvm::Function *Fn, llvm::IRBuilder &Builder); /// EmitRegionEnd - Emit call to llvm.dbg.region.end to indicate end of a /// block. - void EmitRegionEnd(llvm::Function *Fn, llvm::IRBuilder &Builder); + void EmitRegionEnd(llvm::Function *Fn, llvm::IRBuilder &Builder); /// EmitDeclare - Emit call to llvm.dbg.declare for a variable declaration. void EmitDeclare(const VarDecl *decl, unsigned Tag, llvm::Value *AI, - llvm::IRBuilder &Builder); + llvm::IRBuilder &Builder); /// EmitGlobalVariable - Emit information about a global variable. void EmitGlobalVariable(llvm::GlobalVariable *GV, const VarDecl *decl); diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index e51a852451..40f28a5c33 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -29,7 +29,7 @@ using namespace CodeGen; namespace { class VISIBILITY_HIDDEN AggExprEmitter : public StmtVisitor { CodeGenFunction &CGF; - llvm::IRBuilder &Builder; + llvm::IRBuilder<> &Builder; llvm::Value *DestPtr; bool VolatileDest; public: diff --git a/lib/CodeGen/CGExprComplex.cpp b/lib/CodeGen/CGExprComplex.cpp index 2ea0a48a75..0a03adfcf7 100644 --- a/lib/CodeGen/CGExprComplex.cpp +++ b/lib/CodeGen/CGExprComplex.cpp @@ -31,7 +31,7 @@ namespace { class VISIBILITY_HIDDEN ComplexExprEmitter : public StmtVisitor { CodeGenFunction &CGF; - llvm::IRBuilder &Builder; + llvm::IRBuilder<> &Builder; public: ComplexExprEmitter(CodeGenFunction &cgf) : CGF(cgf), Builder(CGF.Builder) { } diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp index cfe23370d8..7f4bed7a2a 100644 --- a/lib/CodeGen/CGExprScalar.cpp +++ b/lib/CodeGen/CGExprScalar.cpp @@ -41,7 +41,7 @@ namespace { class VISIBILITY_HIDDEN ScalarExprEmitter : public StmtVisitor { CodeGenFunction &CGF; - llvm::IRBuilder &Builder; + llvm::IRBuilder<> &Builder; CGObjCRuntime *Runtime; public: diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp index 57c021f064..003991df34 100644 --- a/lib/CodeGen/CGObjCGNU.cpp +++ b/lib/CodeGen/CGObjCGNU.cpp @@ -91,14 +91,14 @@ public: CGObjCGNU(CodeGen::CodeGenModule &cgm); virtual llvm::Constant *GenerateConstantString(const char *String, const size_t length); - virtual llvm::Value *GenerateMessageSend(llvm::IRBuilder &Builder, + virtual llvm::Value *GenerateMessageSend(llvm::IRBuilder<> &Builder, const llvm::Type *ReturnTy, llvm::Value *Sender, llvm::Value *Receiver, Selector Sel, llvm::Value** ArgV, unsigned ArgC); - virtual llvm::Value *GenerateMessageSendSuper(llvm::IRBuilder &Builder, + virtual llvm::Value *GenerateMessageSendSuper(llvm::IRBuilder<> &Builder, const llvm::Type *ReturnTy, llvm::Value *Sender, const char *SuperClassName, @@ -106,9 +106,9 @@ public: Selector Sel, llvm::Value** ArgV, unsigned ArgC); - virtual llvm::Value *LookupClass(llvm::IRBuilder &Builder, + virtual llvm::Value *LookupClass(llvm::IRBuilder<> &Builder, llvm::Value *ClassName); - virtual llvm::Value *GetSelector(llvm::IRBuilder &Builder, Selector Sel); + virtual llvm::Value *GetSelector(llvm::IRBuilder<> &Builder, Selector Sel); virtual llvm::Function *MethodPreamble( const std::string &ClassName, @@ -138,8 +138,8 @@ public: const llvm::SmallVectorImpl &ClassMethodSels, const llvm::SmallVectorImpl &ClassMethodTypes, const llvm::SmallVectorImpl &Protocols); - virtual llvm::Value *GenerateProtocolRef(llvm::IRBuilder &Builder, const char - *ProtocolName); + virtual llvm::Value *GenerateProtocolRef(llvm::IRBuilder<> &Builder, + const char *ProtocolName); virtual void GenerateProtocol(const char *ProtocolName, const llvm::SmallVectorImpl &Protocols, const llvm::SmallVectorImpl &InstanceMethodNames, @@ -200,7 +200,7 @@ CGObjCGNU::CGObjCGNU(CodeGen::CodeGenModule &cgm) } // This has to perform the lookup every time, since posing and related // techniques can modify the name -> class mapping. -llvm::Value *CGObjCGNU::LookupClass(llvm::IRBuilder &Builder, +llvm::Value *CGObjCGNU::LookupClass(llvm::IRBuilder<> &Builder, llvm::Value *ClassName) { llvm::Constant *ClassLookupFn = TheModule.getOrInsertFunction("objc_lookup_class", IdTy, PtrToInt8Ty, @@ -209,7 +209,7 @@ llvm::Value *CGObjCGNU::LookupClass(llvm::IRBuilder &Builder, } /// GetSelector - Return the pointer to the unique'd string for this selector. -llvm::Value *CGObjCGNU::GetSelector(llvm::IRBuilder &Builder, Selector Sel) { +llvm::Value *CGObjCGNU::GetSelector(llvm::IRBuilder<> &Builder, Selector Sel) { // FIXME: uniquing on the string is wasteful, unique on Sel instead! llvm::GlobalAlias *&US = UntypedSelectors[Sel.getName()]; if (US == 0) @@ -265,7 +265,7 @@ llvm::Constant *CGObjCGNU::GenerateConstantString(const char *String, const ///Generates a message send where the super is the receiver. This is a message ///send to self with special delivery semantics indicating which class's method ///should be called. -llvm::Value *CGObjCGNU::GenerateMessageSendSuper(llvm::IRBuilder &Builder, +llvm::Value *CGObjCGNU::GenerateMessageSendSuper(llvm::IRBuilder<> &Builder, const llvm::Type *ReturnTy, llvm::Value *Sender, const char *SuperClassName, @@ -312,7 +312,7 @@ llvm::Value *CGObjCGNU::GenerateMessageSendSuper(llvm::IRBuilder &Builder, } /// Generate code for a message send expression. -llvm::Value *CGObjCGNU::GenerateMessageSend(llvm::IRBuilder &Builder, +llvm::Value *CGObjCGNU::GenerateMessageSend(llvm::IRBuilder<> &Builder, const llvm::Type *ReturnTy, llvm::Value *Sender, llvm::Value *Receiver, @@ -572,7 +572,7 @@ llvm::Constant *CGObjCGNU::GenerateProtocolList( return MakeGlobal(ProtocolListTy, Elements, ".objc_protocol_list"); } -llvm::Value *CGObjCGNU::GenerateProtocolRef(llvm::IRBuilder &Builder, const +llvm::Value *CGObjCGNU::GenerateProtocolRef(llvm::IRBuilder<> &Builder, const char *ProtocolName) { return ExistingProtocols[ProtocolName]; } @@ -814,7 +814,7 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() { llvm::GlobalValue::InternalLinkage, ".objc_load_function", &TheModule); llvm::BasicBlock *EntryBB = llvm::BasicBlock::Create("entry", LoadFunction); - llvm::IRBuilder Builder; + llvm::IRBuilder<> Builder; Builder.SetInsertPoint(EntryBB); llvm::Value *Register = TheModule.getOrInsertFunction("__objc_exec_class", llvm::Type::VoidTy, llvm::PointerType::getUnqual(ModuleTy), NULL); diff --git a/lib/CodeGen/CGObjCRuntime.h b/lib/CodeGen/CGObjCRuntime.h index a5d88c38f9..c2f9f54e70 100644 --- a/lib/CodeGen/CGObjCRuntime.h +++ b/lib/CodeGen/CGObjCRuntime.h @@ -19,7 +19,7 @@ #include namespace llvm { - class IRBuilder; + template class IRBuilder; class Constant; class Type; class Value; @@ -42,7 +42,7 @@ public: virtual ~CGObjCRuntime(); /// Generate an Objective-C message send operation - virtual llvm::Value *GenerateMessageSend(llvm::IRBuilder &Builder, + virtual llvm::Value *GenerateMessageSend(llvm::IRBuilder &Builder, const llvm::Type *ReturnTy, llvm::Value *Sender, llvm::Value *Receiver, @@ -53,7 +53,8 @@ public: /// this compilation unit with the runtime library. virtual llvm::Function *ModuleInitFunction() =0; /// Get a selector for the specified name and type values - virtual llvm::Value *GetSelector(llvm::IRBuilder &Builder, Selector Sel) = 0; + virtual llvm::Value *GetSelector(llvm::IRBuilder &Builder, + Selector Sel) =0; /// Generate a constant string object virtual llvm::Constant *GenerateConstantString(const char *String, const size_t Length) = 0; @@ -79,9 +80,9 @@ public: const llvm::SmallVectorImpl &ClassMethodTypes, const llvm::SmallVectorImpl &Protocols) =0; /// Generate a reference to the named protocol. - virtual llvm::Value *GenerateProtocolRef(llvm::IRBuilder &Builder, const char - *ProtocolName) =0; - virtual llvm::Value *GenerateMessageSendSuper(llvm::IRBuilder &Builder, + virtual llvm::Value *GenerateProtocolRef(llvm::IRBuilder &Builder, + const char *ProtocolName) =0; + virtual llvm::Value *GenerateMessageSendSuper(llvm::IRBuilder &Builder, const llvm::Type *ReturnTy, llvm::Value *Sender, const char *SuperClassName, @@ -109,8 +110,8 @@ public: bool isClassMethod, bool isVarArg) = 0; /// Look up the class for the specified name - virtual llvm::Value *LookupClass(llvm::IRBuilder &Builder, llvm::Value - *ClassName) =0; + virtual llvm::Value *LookupClass(llvm::IRBuilder &Builder, + llvm::Value *ClassName) =0; /// If instance variable addresses are determined at runtime then this should /// return true, otherwise instance variables will be accessed directly from /// the structure. If this returns true then @defs is invalid for this diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index 374cdf6cd7..27917a4948 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -231,7 +231,7 @@ public: TargetInfo &Target; typedef std::pair ComplexPairTy; - llvm::IRBuilder Builder; + llvm::IRBuilder<> Builder; // Holds the Decl for the current function or method const Decl *CurFuncDecl; -- 2.40.0