aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGObjCMac.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-10-01 01:06:06 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-10-01 01:06:06 +0000
commitad2dc71a6f40e94331e72c18b2cffa0320b18eb3 (patch)
tree971735a3452ed55801588de67a60329298995ee4 /lib/CodeGen/CGObjCMac.cpp
parentf1968f28869f4e0675450ae39c478a37c5b9abd6 (diff)
NeXT: Update to use CreateRuntimeFunction for the routines it imports.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56902 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGObjCMac.cpp')
-rw-r--r--lib/CodeGen/CGObjCMac.cpp134
1 files changed, 54 insertions, 80 deletions
diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp
index 42fad09cee..c9e5e68b5c 100644
--- a/lib/CodeGen/CGObjCMac.cpp
+++ b/lib/CodeGen/CGObjCMac.cpp
@@ -2208,47 +2208,40 @@ ObjCTypesHelper::ObjCTypesHelper(CodeGen::CodeGenModule &cgm)
std::vector<const llvm::Type*> Params;
Params.push_back(ObjectPtrTy);
Params.push_back(SelectorPtrTy);
- MessageSendFn = llvm::Function::Create(llvm::FunctionType::get(ObjectPtrTy,
- Params,
- true),
- llvm::Function::ExternalLinkage,
- "objc_msgSend",
- &CGM.getModule());
+ MessageSendFn =
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy,
+ Params,
+ true),
+ "objc_msgSend");
Params.clear();
Params.push_back(Int8PtrTy);
Params.push_back(ObjectPtrTy);
Params.push_back(SelectorPtrTy);
MessageSendStretFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::VoidTy,
- Params,
- true),
- llvm::Function::ExternalLinkage,
- "objc_msgSend_stret",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::VoidTy,
+ Params,
+ true),
+ "objc_msgSend_stret");
Params.clear();
Params.push_back(SuperPtrTy);
Params.push_back(SelectorPtrTy);
MessageSendSuperFn =
- llvm::Function::Create(llvm::FunctionType::get(ObjectPtrTy,
- Params,
- true),
- llvm::Function::ExternalLinkage,
- "objc_msgSendSuper",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy,
+ Params,
+ true),
+ "objc_msgSendSuper");
Params.clear();
Params.push_back(Int8PtrTy);
Params.push_back(SuperPtrTy);
Params.push_back(SelectorPtrTy);
MessageSendSuperStretFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::VoidTy,
- Params,
- true),
- llvm::Function::ExternalLinkage,
- "objc_msgSendSuper_stret",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::VoidTy,
+ Params,
+ true),
+ "objc_msgSendSuper_stret");
// Property manipulation functions.
@@ -2258,13 +2251,11 @@ ObjCTypesHelper::ObjCTypesHelper(CodeGen::CodeGenModule &cgm)
Params.push_back(LongTy);
Params.push_back(Types.ConvertTypeForMem(Ctx.BoolTy));
GetPropertyFn =
- llvm::Function::Create(llvm::FunctionType::get(ObjectPtrTy,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_getProperty",
- &CGM.getModule());
-
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy,
+ Params,
+ false),
+ "objc_getProperty");
+
Params.clear();
Params.push_back(ObjectPtrTy);
Params.push_back(SelectorPtrTy);
@@ -2273,24 +2264,20 @@ ObjCTypesHelper::ObjCTypesHelper(CodeGen::CodeGenModule &cgm)
Params.push_back(Types.ConvertTypeForMem(Ctx.BoolTy));
Params.push_back(Types.ConvertTypeForMem(Ctx.BoolTy));
SetPropertyFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::VoidTy,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_setProperty",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::VoidTy,
+ Params,
+ false),
+ "objc_setProperty");
// Enumeration mutation.
Params.clear();
Params.push_back(ObjectPtrTy);
EnumerationMutationFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::VoidTy,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_enumerationMutation",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::VoidTy,
+ Params,
+ false),
+ "objc_enumerationMutation");
// FIXME: This is the size of the setjmp buffer and should be
// target specific. 18 is what's used on 32-bit X86.
@@ -2310,58 +2297,45 @@ ObjCTypesHelper::ObjCTypesHelper(CodeGen::CodeGenModule &cgm)
Params.clear();
Params.push_back(ObjectPtrTy);
ExceptionThrowFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::VoidTy,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_exception_throw",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::VoidTy,
+ Params,
+ false),
+ "objc_exception_throw");
Params.clear();
Params.push_back(llvm::PointerType::getUnqual(ExceptionDataTy));
ExceptionTryEnterFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::VoidTy,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_exception_try_enter",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::VoidTy,
+ Params,
+ false),
+ "objc_exception_try_enter");
ExceptionTryExitFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::VoidTy,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_exception_try_exit",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::VoidTy,
+ Params,
+ false),
+ "objc_exception_try_exit");
ExceptionExtractFn =
- llvm::Function::Create(llvm::FunctionType::get(ObjectPtrTy,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_exception_extract",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy,
+ Params,
+ false),
+ "objc_exception_extract");
Params.clear();
Params.push_back(ClassPtrTy);
Params.push_back(ObjectPtrTy);
ExceptionMatchFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::Int32Ty,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "objc_exception_match",
- &CGM.getModule());
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::Int32Ty,
+ Params,
+ false),
+ "objc_exception_match");
Params.clear();
Params.push_back(llvm::PointerType::getUnqual(llvm::Type::Int32Ty));
SetJmpFn =
- llvm::Function::Create(llvm::FunctionType::get(llvm::Type::Int32Ty,
- Params,
- false),
- llvm::Function::ExternalLinkage,
- "_setjmp",
- &CGM.getModule());
-
+ CGM.CreateRuntimeFunction(llvm::FunctionType::get(llvm::Type::Int32Ty,
+ Params,
+ false),
+ "_setjmp");
}
ObjCTypesHelper::~ObjCTypesHelper() {