mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 02:33:33 +00:00
llvmc: Support '-emit-llvm -S' with -opt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114541 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c9aa78d4ce
commit
3724945025
7
test/LLVMC/C/emit-llvm-opt.c
Normal file
7
test/LLVMC/C/emit-llvm-opt.c
Normal file
@ -0,0 +1,7 @@
|
||||
// RUN: llvmc -c -opt -emit-llvm -o - %s | llvm-dis | grep "@f0()" | count 1
|
||||
// RUN: llvmc -c -opt -emit-llvm -S -o - %s | grep "@f0()" | count 1
|
||||
// RUN: llvmc --dry-run -c -opt -emit-llvm %s |& grep "^opt"
|
||||
// XFAIL: vg_leak
|
||||
|
||||
int f0(void) {
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
// RUN: llvmc -c -emit-llvm -o - %s | llvm-dis | grep "@f0()" | count 1
|
||||
// RUN: llvmc -c -emit-llvm -S -o - %s | grep "@f0()" | count 1
|
||||
// XFAIL: vg_leak
|
||||
|
||||
int f0(void) {
|
||||
|
@ -178,14 +178,20 @@ class llvm_gcc_based <string cmd, string in_lang,
|
||||
(switch_on "E"),
|
||||
[(forward "E"), (stop_compilation), (output_suffix E_ext)],
|
||||
(and (switch_on "E"), (empty "o")), (no_out_file),
|
||||
(switch_on ["emit-llvm", "S"]),
|
||||
[(output_suffix "ll"), (stop_compilation)],
|
||||
(switch_on ["emit-llvm", "c"]), (stop_compilation),
|
||||
|
||||
// ('-emit-llvm') && !('opt') -> stop compilation
|
||||
(and (switch_on "emit-llvm"), (not (switch_on "opt"))),
|
||||
(stop_compilation),
|
||||
// ('-S' && '-emit-llvm') && !('opt') -> output .ll
|
||||
(and (switch_on ["emit-llvm", "S"]), (not (switch_on "opt"))),
|
||||
[(forward "S"), (output_suffix "ll")],
|
||||
// Ususally just output .bc
|
||||
(not (switch_on "fsyntax-only")),
|
||||
[(append_cmd "-c"), (append_cmd "-emit-llvm")],
|
||||
|
||||
// -fsyntax-only
|
||||
(switch_on "fsyntax-only"), [(forward "fsyntax-only"),
|
||||
(no_out_file), (stop_compilation)],
|
||||
(switch_on ["S", "emit-llvm"]), [(forward "S"), (forward "emit-llvm")],
|
||||
(not (or (switch_on ["S", "emit-llvm"]), (switch_on "fsyntax-only"))),
|
||||
[(append_cmd "-c"), (append_cmd "-emit-llvm")],
|
||||
|
||||
// Forwards
|
||||
(not_empty "Xpreprocessor"), (forward "Xpreprocessor"),
|
||||
@ -242,7 +248,10 @@ def opt : Tool<
|
||||
[(in_language "llvm-bitcode"),
|
||||
(out_language "llvm-bitcode"),
|
||||
(output_suffix "opt.bc"),
|
||||
(actions (case (not_empty "Wo,"), (forward_value "Wo,"),
|
||||
(actions (case (switch_on "emit-llvm"), (stop_compilation),
|
||||
(switch_on ["emit-llvm", "S"]),
|
||||
[(append_cmd "-S"), (output_suffix "ll")],
|
||||
(not_empty "Wo,"), (forward_value "Wo,"),
|
||||
(switch_on "O1"), (forward "O1"),
|
||||
(switch_on "O2"), (forward "O2"),
|
||||
(switch_on "O3"), (forward "O3"))),
|
||||
|
Loading…
x
Reference in New Issue
Block a user