]> granicus.if.org Git - clang/commit
Reapply "Change -save-temps to emit unoptimized bitcode files."
authorBob Wilson <bob.wilson@apple.com>
Sun, 21 Dec 2014 07:00:00 +0000 (07:00 +0000)
committerBob Wilson <bob.wilson@apple.com>
Sun, 21 Dec 2014 07:00:00 +0000 (07:00 +0000)
commit8d7e45e9e3e4e81426c308bb056b8679c8ec005f
tree6bd284b3e197dd73f3343c771236fed5d0b60485
parent370bc03b0d95aacc69630339f86dceb79bc73ddc
Reapply "Change -save-temps to emit unoptimized bitcode files."

This reapplies r224503 along with a fix for compiling Fortran by having the
clang driver invoke gcc (see r224546, where it was reverted). I have added
a testcase for that as well.

Original commit message:
It is often convenient to use -save-temps to collect the intermediate
results of a compilation, e.g., when triaging a bug report. Besides the
temporary files for preprocessed source and assembly code, this adds the
unoptimized bitcode files as well.

This adds a new BackendJobAction, which is mostly mechanical, to run after
the CompileJobAction. When not using -save-temps, the BackendJobAction is
combined into one job with the CompileJobAction, similar to the way the
integrated assembler is handled. I've implemented this entirely as a
driver change, so under the hood, it is just using -disable-llvm-optzns
to get the unoptimized bitcode.

Based in part on a patch by Steven Wu.
rdar://problem/18909437

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224688 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
include/clang/Driver/Action.h
include/clang/Driver/Phases.h
include/clang/Driver/Tool.h
lib/Driver/Action.cpp
lib/Driver/Driver.cpp
lib/Driver/Phases.cpp
lib/Driver/ToolChain.cpp
lib/Driver/Tools.cpp
lib/Driver/Tools.h
lib/Driver/Types.cpp
test/Driver/ast.c
test/Driver/darwin-dsymutil.c
test/Driver/darwin-verify-debug.c
test/Driver/fortran.f95 [new file with mode: 0644]
test/Driver/lto.c
test/Driver/phases.c
test/Driver/save-temps.c