summaryrefslogtreecommitdiffstats
path: root/llvm/lib/LTO/LTOBackend.cpp
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2016-08-22 06:25:41 +0000
committerMehdi Amini <mehdi.amini@apple.com>2016-08-22 06:25:41 +0000
commitd310b47c23024a8a9c46d5029984855404598369 (patch)
treea1cae6b345aeda2d287f07b42734ea3bdf3ac803 /llvm/lib/LTO/LTOBackend.cpp
parent189b871a62bec4b5e714b6d686126537b95b2b06 (diff)
downloadbcm5719-llvm-d310b47c23024a8a9c46d5029984855404598369.tar.gz
bcm5719-llvm-d310b47c23024a8a9c46d5029984855404598369.zip
[LTO] Add a "CodeGenOnly" option. Allows the client to skip the optimizer.
Summary: Slowly getting on par with libLTO Reviewers: tejohnson Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D23615 llvm-svn: 279416
Diffstat (limited to 'llvm/lib/LTO/LTOBackend.cpp')
-rw-r--r--llvm/lib/LTO/LTOBackend.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/LTO/LTOBackend.cpp b/llvm/lib/LTO/LTOBackend.cpp
index 935152b970d..a89364e46a0 100644
--- a/llvm/lib/LTO/LTOBackend.cpp
+++ b/llvm/lib/LTO/LTOBackend.cpp
@@ -224,8 +224,9 @@ Error lto::backend(Config &C, AddOutputFn AddOutput,
std::unique_ptr<TargetMachine> TM =
createTargetMachine(C, M->getTargetTriple(), *TOrErr);
- if (!opt(C, TM.get(), 0, *M, /*IsThinLto=*/false))
- return Error();
+ if (!C.CodeGenOnly)
+ if (!opt(C, TM.get(), 0, *M, /*IsThinLto=*/false))
+ return Error();
if (ParallelCodeGenParallelismLevel == 1)
codegen(C, TM.get(), AddOutput, 0, *M);
@@ -247,6 +248,11 @@ Error lto::thinBackend(Config &Conf, unsigned Task, AddOutputFn AddOutput,
std::unique_ptr<TargetMachine> TM =
createTargetMachine(Conf, Mod.getTargetTriple(), *TOrErr);
+ if (Conf.CodeGenOnly) {
+ codegen(Conf, TM.get(), AddOutput, Task, Mod);
+ return Error();
+ }
+
if (Conf.PreOptModuleHook && !Conf.PreOptModuleHook(Task, Mod))
return Error();
OpenPOWER on IntegriCloud