mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Fix the -opt switch and add a test case for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51784 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
18aac1c622
commit
74a0c28fba
12
test/LLVMC/opt-test.c
Normal file
12
test/LLVMC/opt-test.c
Normal file
@ -0,0 +1,12 @@
|
||||
/*
|
||||
* Check that the -opt switch works.
|
||||
* RUN: llvmc2 %s -opt -o %t
|
||||
* RUN: ./%t | grep hello
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
printf("hello\n");
|
||||
return 0;
|
||||
}
|
@ -151,6 +151,10 @@ namespace {
|
||||
Out.appendComponent(BaseName);
|
||||
}
|
||||
Out.appendSuffix(Suffix);
|
||||
// NOTE: makeUnique always *creates* a unique temporary file,
|
||||
// which is good, since there will be no races. However, some
|
||||
// tools do not like it when the output file already exists, so
|
||||
// they have to be placated with -f or something like that.
|
||||
Out.makeUnique(true, NULL);
|
||||
return Out;
|
||||
}
|
||||
|
@ -27,9 +27,12 @@ def llvm_gcc_c : Tool<
|
||||
(output_suffix "bc"),
|
||||
(cmd_line (case
|
||||
(switch_on "E"),
|
||||
"llvm-g++ -E -x c $INFILE",
|
||||
(case (not_empty "o"),
|
||||
"llvm-gcc -E -x c++ $INFILE -o $OUTFILE",
|
||||
(default),
|
||||
"llvm-gcc -E -x c++ $INFILE"),
|
||||
(default),
|
||||
"llvm-g++ -c -x c $INFILE -o $OUTFILE -emit-llvm")),
|
||||
"llvm-gcc -c -x c $INFILE -o $OUTFILE -emit-llvm")),
|
||||
(switch_option "E", (stop_compilation),
|
||||
(help "Stop after the preprocessing stage, do not run the compiler")),
|
||||
(sink)
|
||||
@ -41,8 +44,10 @@ def llvm_gcc_cpp : Tool<
|
||||
(output_suffix "bc"),
|
||||
(cmd_line (case
|
||||
(switch_on "E"),
|
||||
// TOFIX: this does not play well with -o
|
||||
"llvm-g++ -E -x c++ $INFILE",
|
||||
(case (not_empty "o"),
|
||||
"llvm-g++ -E -x c++ $INFILE -o $OUTFILE",
|
||||
(default),
|
||||
"llvm-g++ -E -x c++ $INFILE"),
|
||||
(default),
|
||||
"llvm-g++ -c -x c++ $INFILE -o $OUTFILE -emit-llvm")),
|
||||
(switch_option "E", (stop_compilation)),
|
||||
@ -54,7 +59,7 @@ def opt : Tool<
|
||||
(out_language "llvm-bitcode"),
|
||||
(switch_option "opt", (help "Enable opt")),
|
||||
(output_suffix "bc"),
|
||||
(cmd_line "opt $INFILE -o $OUTFILE")
|
||||
(cmd_line "opt -f $INFILE -o $OUTFILE")
|
||||
]>;
|
||||
|
||||
def llvm_as : Tool<
|
||||
|
@ -32,8 +32,6 @@ using namespace llvmc;
|
||||
// Built-in command-line options.
|
||||
// External linkage here is intentional.
|
||||
|
||||
// TOFIX: Write a 'driver driver' (easier to do as a separate
|
||||
// executable that drives llvmc2 proper).
|
||||
cl::list<std::string> InputFilenames(cl::Positional, cl::desc("<input file>"),
|
||||
cl::ZeroOrMore);
|
||||
cl::opt<std::string> OutputFilename("o", cl::desc("Output file name"),
|
||||
@ -42,7 +40,7 @@ cl::list<std::string> Languages("x",
|
||||
cl::desc("Specify the language of the following input files"),
|
||||
cl::ZeroOrMore);
|
||||
cl::opt<bool> DryRun("dry-run",
|
||||
cl::desc("only pretend to run commands"));
|
||||
cl::desc("Only pretend to run commands"));
|
||||
cl::opt<bool> VerboseMode("v",
|
||||
cl::desc("Enable verbose mode"));
|
||||
cl::opt<bool> WriteGraph("write-graph",
|
||||
|
Loading…
Reference in New Issue
Block a user