Add methods to StringMap to erase entries by key.
[oota-llvm.git] / tools / llvmc2 / Tools.td
index 63b713fb0a2e3aaccdf29829d5b597ebe31f4cf6..4c04f3c4c2f3aae9fe9aa7ad53d4488a1cfef8ff 100644 (file)
@@ -27,13 +27,13 @@ def llvm_gcc_c : Tool<
  (output_suffix "bc"),
  (cmd_line (case
             (switch_on "E"),
-              "llvm-g++ -E -x c $INFILE -o $OUTFILE -emit-llvm",
+              (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")),
- // TOFIX: Preprocessed files currently have suffix ".bc".
+              "llvm-gcc -c -x c $INFILE -o $OUTFILE -emit-llvm")),
  (switch_option "E", (stop_compilation),
-    // Make this possible:
-    // (output_suffix "i"),
    (help "Stop after the preprocessing stage, do not run the compiler")),
  (sink)
 ]>;
@@ -44,7 +44,10 @@ def llvm_gcc_cpp : Tool<
  (output_suffix "bc"),
  (cmd_line (case
             (switch_on "E"),
-              "llvm-g++ -E -x c++ $INFILE -o $OUTFILE -emit-llvm",
+              (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)),
@@ -56,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<
@@ -82,7 +85,7 @@ def llvm_gcc_assembler : Tool<
  (cmd_line "llvm-gcc -c -x assembler $INFILE -o $OUTFILE"),
  (switch_option "c", (stop_compilation),
                 (help "Compile and assemble, but do not link")),
- (prefix_list_option "Wa,", (unpack_values), (help "pass options to assembler"))
+ (prefix_list_option "Wa,", (unpack_values), (help "Pass options to assembler"))
 ]>;
 
 // Default linker
@@ -92,9 +95,9 @@ def llvm_gcc_linker : Tool<
  (output_suffix "out"),
  (cmd_line "llvm-gcc $INFILE -o $OUTFILE"),
  (join),
- (prefix_list_option "L", (forward), (help "add a directory to link path")),
- (prefix_list_option "l", (forward), (help "search a library when linking")),
- (prefix_list_option "Wl,", (unpack_values), (help "pass options to linker"))
+ (prefix_list_option "L", (forward), (help "Add a directory to link path")),
+ (prefix_list_option "l", (forward), (help "Search a library when linking")),
+ (prefix_list_option "Wl,", (unpack_values), (help "Pass options to linker"))
 ]>;
 
 // Alternative linker for C++