aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.h
diff options
context:
space:
mode:
authorPete Cooper <peter_cooper@apple.com>2016-03-16 00:33:21 +0000
committerPete Cooper <peter_cooper@apple.com>2016-03-16 00:33:21 +0000
commitbe6c750a8ed11b3c165593c761137901d7730117 (patch)
treea0ea90b3311f0bb247ca2ae0eb92dfeea4cf2600 /clang/lib/CodeGen/CodeGenModule.h
parentf7cb16f7de3f12674e50f3bccdc6842103560b9b (diff)
downloadllvm-be6c750a8ed11b3c165593c761137901d7730117.zip
llvm-be6c750a8ed11b3c165593c761137901d7730117.tar.gz
llvm-be6c750a8ed11b3c165593c761137901d7730117.tar.bz2
Convert some ObjC msgSends to runtime calls.
It is faster to directly call the ObjC runtime for methods such as retain/release instead of sending a message to those functions. This patch adds support for converting messages to retain/release/alloc/autorelease to their equivalent runtime calls. Tests included for the positive case of applying this transformation, negative tests that we ensure we only convert "alloc" to objc_alloc, not "alloc2", and also a driver test to ensure we enable this only for supported runtime versions. Reviewed by John McCall. Differential Revision: http://reviews.llvm.org/D14737 llvm-svn: 263607
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.h')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h
index 8e662c25..eac4846 100644
--- a/clang/lib/CodeGen/CodeGenModule.h
+++ b/clang/lib/CodeGen/CodeGenModule.h
@@ -113,7 +113,10 @@ struct OrderGlobalInits {
struct ObjCEntrypoints {
ObjCEntrypoints() { memset(this, 0, sizeof(*this)); }
- /// void objc_autoreleasePoolPop(void*);
+ /// void objc_alloc(id);
+ llvm::Constant *objc_alloc;
+
+ /// void objc_autoreleasePoolPop(void*);
llvm::Constant *objc_autoreleasePoolPop;
/// void *objc_autoreleasePoolPush(void);