summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
authorShuxin Yang <shuxin.llvm@gmail.com>2013-08-23 21:34:57 +0000
committerShuxin Yang <shuxin.llvm@gmail.com>2013-08-23 21:34:57 +0000
commit4b3c7ffc649a3da0c29df3e1280799884a2dfb6d (patch)
tree1b60d956bdd851f3e27c3e0d61e33676fbe6653b /clang/lib/Driver/Driver.cpp
parent274a023d70d0e25650c311c2dc555060aa6f16c1 (diff)
downloadbcm5719-llvm-4b3c7ffc649a3da0c29df3e1280799884a2dfb6d.tar.gz
bcm5719-llvm-4b3c7ffc649a3da0c29df3e1280799884a2dfb6d.zip
Driver::IsUsingLTO() no longer return true when seeing -emit-llvm.
One step toward differentiating following two commands: clang -O3 -flto a.c -c, and clang -O3 -emit-llvm a.c Thanks many awesome folks for clarifying things. llvm-svn: 189148
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r--clang/lib/Driver/Driver.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index f3b8beb94b8..09da30d2bc5 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1340,6 +1340,10 @@ Action *Driver::ConstructPhaseAction(const ArgList &Args, phases::ID Phase,
types::ID Output =
Args.hasArg(options::OPT_S) ? types::TY_LTO_IR : types::TY_LTO_BC;
return new CompileJobAction(Input, Output);
+ } else if (Args.hasArg(options::OPT_emit_llvm)) {
+ types::ID Output =
+ Args.hasArg(options::OPT_S) ? types::TY_LLVM_IR : types::TY_LLVM_BC;
+ return new CompileJobAction(Input, Output);
} else {
return new CompileJobAction(Input, types::TY_PP_Asm);
}
@@ -1352,9 +1356,7 @@ Action *Driver::ConstructPhaseAction(const ArgList &Args, phases::ID Phase,
}
bool Driver::IsUsingLTO(const ArgList &Args) const {
- // Check for -emit-llvm or -flto.
- if (Args.hasArg(options::OPT_emit_llvm) ||
- Args.hasFlag(options::OPT_flto, options::OPT_fno_lto, false))
+ if (Args.hasFlag(options::OPT_flto, options::OPT_fno_lto, false))
return true;
// Check for -O4.
OpenPOWER on IntegriCloud