diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2010-09-22 09:00:41 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2010-09-22 09:00:41 +0000 |
commit | 922f13ce2e93f63a79433bc93c0a49370fbffe6a (patch) | |
tree | 9af5e84fd4b3cdd314e97569fdbbd63ecfd76d1e /llvm/tools | |
parent | 11adecbf7523c00eedda546d0f20d06d58300257 (diff) | |
download | bcm5719-llvm-922f13ce2e93f63a79433bc93c0a49370fbffe6a.tar.gz bcm5719-llvm-922f13ce2e93f63a79433bc93c0a49370fbffe6a.zip |
llvmc: Support '-emit-llvm -S' with -opt.
llvm-svn: 114541
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvmc/src/Base.td.in | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/llvm/tools/llvmc/src/Base.td.in b/llvm/tools/llvmc/src/Base.td.in index 3c001864cab..09960ddc764 100644 --- a/llvm/tools/llvmc/src/Base.td.in +++ b/llvm/tools/llvmc/src/Base.td.in @@ -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"))), |