diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2010-06-07 23:28:45 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2010-06-07 23:28:45 +0000 |
| commit | 24e52992c030a7dd30455bea773b3b402c37df37 (patch) | |
| tree | 09e7fdfca1041c519a8436d91974f9615cb096aa /clang/test | |
| parent | 6f8362c6bf854b809e270a7d1bf727e0e21f7d2e (diff) | |
| download | bcm5719-llvm-24e52992c030a7dd30455bea773b3b402c37df37.tar.gz bcm5719-llvm-24e52992c030a7dd30455bea773b3b402c37df37.zip | |
Driver: Support invoking Clang on .ll or .bc inputs.
- We actually pretend that we have two separate types for LLVM assembly/bitcode because we need to use the standard suffixes with LTO ('clang -O4 -c t.c' should generate 't.o').
It is now possible to do something like:
$ clang -emit-llvm -S t.c -o t.ll ... assorted other compile flags ...
$ clang -c t.ll -o t.o ... assorted other compile flags ...
and expect that the output will be almost* identical to:
$ clang -c t.c -o t.o ... assorted other compile flags ...
because all the target settings (default CPU, target features, etc.) will all be initialized properly by the driver/frontend.
*: This isn't perfect yet, because in practice we will end up running the optimization passes twice. It's possible to get something equivalent out with a well placed -mllvm -disable-llvm-optzns, but I'm still thinking about the cleanest way to solve this problem more generally.
llvm-svn: 105584
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Driver/lto.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/clang/test/Driver/lto.c b/clang/test/Driver/lto.c index 4543ffcd023..22b47882691 100644 --- a/clang/test/Driver/lto.c +++ b/clang/test/Driver/lto.c @@ -1,15 +1,14 @@ -// -emit-llvm, -flto, and -O4 all cause a switch to llvm-bc object -// files. +// -emit-llvm, -flto, and -O4 all cause a switch to llvm-bc object files. // RUN: %clang -ccc-print-phases -c %s -flto 2> %t.log -// RUN: grep '2: compiler, {1}, llvm-bc' %t.log +// RUN: grep '2: compiler, {1}, lto-bc' %t.log // RUN: %clang -ccc-print-phases -c %s -O4 2> %t.log -// RUN: grep '2: compiler, {1}, llvm-bc' %t.log +// RUN: grep '2: compiler, {1}, lto-bc' %t.log // and -emit-llvm doesn't alter pipeline (unfortunately?). // RUN: %clang -ccc-print-phases %s -emit-llvm 2> %t.log // RUN: grep '0: input, ".*lto.c", c' %t.log // RUN: grep '1: preprocessor, {0}, cpp-output' %t.log -// RUN: grep '2: compiler, {1}, llvm-bc' %t.log +// RUN: grep '2: compiler, {1}, lto-bc' %t.log // RUN: grep '3: linker, {2}, image' %t.log // llvm-bc and llvm-ll outputs need to match regular suffixes |

