[PATCH] D123173: [llvm-ml] Add support for the -o flag

Alan Zhao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 6 10:17:06 PDT 2022


ayzhao updated this revision to Diff 420937.
ayzhao added a comment.

Append a newline to the end of output_flag.asm


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123173/new/

https://reviews.llvm.org/D123173

Files:
  llvm/test/tools/llvm-ml/output_flag.asm
  llvm/tools/llvm-ml/Opts.td
  llvm/tools/llvm-ml/llvm-ml.cpp


Index: llvm/tools/llvm-ml/llvm-ml.cpp
===================================================================
--- llvm/tools/llvm-ml/llvm-ml.cpp
+++ llvm/tools/llvm-ml/llvm-ml.cpp
@@ -342,8 +342,13 @@
     DefaultOutputFilename = InputFilename;
     sys::path::replace_extension(DefaultOutputFilename, FileType);
   }
-  const StringRef OutputFilename =
-      InputArgs.getLastArgValue(OPT_output_file, DefaultOutputFilename);
+  StringRef OutputFilename;
+  if (Arg *OutputFile = InputArgs.getLastArg(OPT_output_file))
+    OutputFilename = OutputFile->getValue();
+  else if (Arg *OutputFile = InputArgs.getLastArg(OPT_output_file_llvm))
+    OutputFilename = OutputFile->getValue();
+  else
+    OutputFilename = DefaultOutputFilename;
   std::unique_ptr<ToolOutputFile> Out = GetOutputStream(OutputFilename);
   if (!Out)
     return 1;
Index: llvm/tools/llvm-ml/Opts.td
===================================================================
--- llvm/tools/llvm-ml/Opts.td
+++ llvm/tools/llvm-ml/Opts.td
@@ -37,6 +37,8 @@
                HelpText<"Emit a file with the given type">;
 def output_att_asm : LLVMFlag<"output-att-asm">,
                      HelpText<"Use ATT syntax for output assembly">;
+def output_file_llvm : LLVMJoinedOrSeparate<"o">,
+                       HelpText<"Names the output file">;
 def show_encoding : LLVMFlag<"show-encoding">,
                     HelpText<"Show instruction encodings in output assembly">;
 def show_inst : LLVMFlag<"show-inst">,
Index: llvm/test/tools/llvm-ml/output_flag.asm
===================================================================
--- /dev/null
+++ llvm/test/tools/llvm-ml/output_flag.asm
@@ -0,0 +1,15 @@
+; RUN: llvm-ml --filetype=s %s /Fo - | FileCheck %s --check-prefix=HAS_OUTPUT
+; RUN: llvm-ml --filetype=s %s -o - | FileCheck %s --check-prefix=HAS_OUTPUT
+; /Fo takes precedence over -o, so we should still expect to see output
+; RUN: llvm-ml --filetype=s %s -o /dev/null /Fo - | FileCheck %s --check-prefix=HAS_OUTPUT
+
+; RUN: llvm-ml --filetype=s %s /Fo /dev/null | FileCheck %s --allow-empty --check-prefix=NO_OUTPUT
+; RUN: llvm-ml --filetype=s %s -o /dev/null | FileCheck %s --allow-empty --check-prefix=NO_OUTPUT
+
+.code
+
+t1:
+; HAS_OUTPUT: t1:
+; NO_OUTPUT-NOT: t1:
+
+END


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123173.420937.patch
Type: text/x-patch
Size: 2256 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220406/46570c07/attachment.bin>


More information about the llvm-commits mailing list