]> granicus.if.org Git - clang/commitdiff
update to make IRBuilder API change.
authorChris Lattner <sabre@nondot.org>
Fri, 8 Aug 2008 19:57:58 +0000 (19:57 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 8 Aug 2008 19:57:58 +0000 (19:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54548 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDebugInfo.cpp
lib/CodeGen/CGDebugInfo.h
lib/CodeGen/CGExprAgg.cpp
lib/CodeGen/CGExprComplex.cpp
lib/CodeGen/CGExprScalar.cpp
lib/CodeGen/CGObjCGNU.cpp
lib/CodeGen/CGObjCRuntime.h
lib/CodeGen/CodeGenFunction.h

index 0b63463d1f76ddb161c741c04ac5a407e172dc5e..1a7e4dbab12f30610b5d7e1fb67d3d7af073d371 100644 (file)
@@ -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.
 
index 61664a696256afc2898ab2c9f2bdc4451e974857..d94619b391df681092fb95195350831f8398d0f8 100644 (file)
@@ -22,7 +22,7 @@
 
 namespace llvm {
   class Function;
-  class IRBuilder;
+  template<bool C> 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<true> &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<true> &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<true> &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<true> &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<true> &Builder);
 
   /// EmitGlobalVariable - Emit information about a global variable.
   void EmitGlobalVariable(llvm::GlobalVariable *GV, const VarDecl *decl);
index e51a852451e96ae23ee7e9baf0e91dd5d6068fb1..40f28a5c33d8f0ee78fcb89891680e37b24339e4 100644 (file)
@@ -29,7 +29,7 @@ using namespace CodeGen;
 namespace  {
 class VISIBILITY_HIDDEN AggExprEmitter : public StmtVisitor<AggExprEmitter> {
   CodeGenFunction &CGF;
-  llvm::IRBuilder &Builder;
+  llvm::IRBuilder<> &Builder;
   llvm::Value *DestPtr;
   bool VolatileDest;
 public:
index 2ea0a48a75deae1078fb233f542696d43d7eb2d6..0a03adfcf75370463f15b35595bb58a351a9df88 100644 (file)
@@ -31,7 +31,7 @@ namespace  {
 class VISIBILITY_HIDDEN ComplexExprEmitter
   : public StmtVisitor<ComplexExprEmitter, ComplexPairTy> {
   CodeGenFunction &CGF;
-  llvm::IRBuilder &Builder;
+  llvm::IRBuilder<> &Builder;
 public:
   ComplexExprEmitter(CodeGenFunction &cgf) : CGF(cgf), Builder(CGF.Builder) {
   }
index cfe23370d8c33fa781b089275f71b675cc1f4e0a..7f4bed7a2a00a3b7de4a99bc5cd2df0964cea638 100644 (file)
@@ -41,7 +41,7 @@ namespace {
 class VISIBILITY_HIDDEN ScalarExprEmitter
   : public StmtVisitor<ScalarExprEmitter, Value*> {
   CodeGenFunction &CGF;
-  llvm::IRBuilder &Builder;
+  llvm::IRBuilder<> &Builder;
   CGObjCRuntime *Runtime;
 
 public:
index 57c021f064227b46f926799b6028a5e13618599b..003991df349eb84cad372146dcdf836645a657f6 100644 (file)
@@ -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<Selector>  &ClassMethodSels,
            const llvm::SmallVectorImpl<llvm::Constant *>  &ClassMethodTypes,
            const llvm::SmallVectorImpl<std::string> &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<std::string> &Protocols,
       const llvm::SmallVectorImpl<llvm::Constant *>  &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);
index a5d88c38f92fee2cda2a2357f345ebc0e46f11a4..c2f9f54e7085c389447165ebab7a65657e771151 100644 (file)
@@ -19,7 +19,7 @@
 #include <string>
 
 namespace llvm {
-  class IRBuilder;
+  template<bool C> 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<true> &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<true> &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<llvm::Constant *>  &ClassMethodTypes,
              const llvm::SmallVectorImpl<std::string> &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<true> &Builder,
+                                           const char *ProtocolName) =0;
+  virtual llvm::Value *GenerateMessageSendSuper(llvm::IRBuilder<true> &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<true> &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
index 374cdf6cd7beb003a2cae8a4ce539786f86a6c79..27917a494879bb5965cd6de2de53e23554cdce10 100644 (file)
@@ -231,7 +231,7 @@ public:
   TargetInfo &Target;
   
   typedef std::pair<llvm::Value *, llvm::Value *> ComplexPairTy;
-  llvm::IRBuilder Builder;
+  llvm::IRBuilder<> Builder;
   
   // Holds the Decl for the current function or method
   const Decl *CurFuncDecl;