forked from OSchip/llvm-project
parent
5927883970
commit
c893a67fe3
|
@ -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.
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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) {
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace {
|
|||
class VISIBILITY_HIDDEN ScalarExprEmitter
|
||||
: public StmtVisitor<ScalarExprEmitter, Value*> {
|
||||
CodeGenFunction &CGF;
|
||||
llvm::IRBuilder &Builder;
|
||||
llvm::IRBuilder<> &Builder;
|
||||
CGObjCRuntime *Runtime;
|
||||
|
||||
public:
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue