[PATCH] D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries

Dan Gohman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 20 18:44:00 PST 2019


sunfish marked 2 inline comments as done.
sunfish added inline comments.


================
Comment at: clang/lib/Driver/ToolChains/WebAssembly.cpp:105
+        OOpt = "0";
+      else if (A->getOption().matches(options::OPT_O))
+        OOpt = A->getValue();
----------------
dschuff wrote:
> This chain is slightly confusing. I assume this `getValue()` captures the number in `-O3`, `-O2`, etc? But why then do we need special-casing for 0 and 4 above?
> 
> For that matter, we should probably not run wasm-opt at all if the opt-level is 0, right?
This isn't a wasm thing; O0 and O4 [are special](https://github.com/llvm/llvm-project/blob/master/clang/include/clang/Driver/Options.td#L393). See also [here](https://github.com/llvm/llvm-project/blob/master/clang/lib/Driver/ToolChains/Cuda.cpp#L368) and [here](https://github.com/llvm/llvm-project/blob/master/clang/lib/Driver/ToolChains/HIP.cpp#L97) for other code which does similar things. The wasm-opt version here is actually simpler because we don't need to special-case Os or Oz.

The `if (Arg *A = Args.getLastArg(options::OPT_O_Group)) {` guards against the case where no -O option is given, but you're right, we shouldn't run wasm-opt if -O0 is given. I'll update the patch.


================
Comment at: clang/test/Driver/wasm-toolchain-lto.c:6
+// LINK_OPT_KNOWN: clang{{.*}}" "-cc1" {{.*}} "-o" "[[temp:[^"]*]]"
+// LINK_OPT_KNOWN: wasm-ld{{.*}}" "-L/foo/lib/wasm32-wasi/llvm-lto/
----------------
sbc100 wrote:
> Include the final path segment in the expectation?
It's a git revision, so it'd be constantly changing.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70500





More information about the cfe-commits mailing list