summaryrefslogtreecommitdiff
path: root/tools/lto/LTOCodeGenerator.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2013-03-29 23:28:55 +0000
committerBob Wilson <bob.wilson@apple.com>2013-03-29 23:28:55 +0000
commitd696544eacbab22277924bc5f5acd85f615f31ea (patch)
tree42cd3dbbacf858384e6be3560e2c4c89f01532a5 /tools/lto/LTOCodeGenerator.cpp
parent2030d5f3e9bdde75c9585f1df5994dd4d63ce5f1 (diff)
downloadllvm-d696544eacbab22277924bc5f5acd85f615f31ea.tar.gz
llvm-d696544eacbab22277924bc5f5acd85f615f31ea.tar.bz2
llvm-d696544eacbab22277924bc5f5acd85f615f31ea.tar.xz
Run the ObjCARCContract pass for LTO. <rdar://problem/13538084>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178385 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/lto/LTOCodeGenerator.cpp')
-rw-r--r--tools/lto/LTOCodeGenerator.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp
index cf7ffe2800..e7c83f94f5 100644
--- a/tools/lto/LTOCodeGenerator.cpp
+++ b/tools/lto/LTOCodeGenerator.cpp
@@ -44,6 +44,7 @@
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
+#include "llvm/Transforms/ObjCARC.h"
using namespace llvm;
static cl::opt<bool>
@@ -397,6 +398,10 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out,
formatted_raw_ostream Out(out);
+ // If the bitcode files contain ARC code and were compiled with optimization,
+ // the ObjCARCContractPass must be run, so do it unconditionally here.
+ codeGenPasses.add(createObjCARCContractPass());
+
if (_target->addPassesToEmitFile(codeGenPasses, Out,
TargetMachine::CGFT_ObjectFile)) {
errMsg = "target file type not supported";