update to make IRBuilder API change.

llvm-svn: 54548
This commit is contained in:
Chris Lattner 2008-08-08 19:57:58 +00:00
parent 5927883970
commit c893a67fe3
8 changed files with 37 additions and 35 deletions

View 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.

View 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);

View 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:

View 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) {
}

View 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:

View 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);

View 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

View 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;