[PATCH] D137377: [lld][WebAssembly] Add support for LLD_REPRODUCE
Sam Clegg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 3 16:59:55 PDT 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG3c28a6d2cbf7: [lld][WebAssembly] Add support for LLD_REPRODUCE (authored by sbc100).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137377/new/
https://reviews.llvm.org/D137377
Files:
lld/test/wasm/reproduce.ll
lld/test/wasm/reproduce.s
lld/wasm/Driver.cpp
Index: lld/wasm/Driver.cpp
===================================================================
--- lld/wasm/Driver.cpp
+++ lld/wasm/Driver.cpp
@@ -618,6 +618,12 @@
}
}
+static const char *getReproduceOption(opt::InputArgList &args) {
+ if (auto *arg = args.getLastArg(OPT_reproduce))
+ return arg->getValue();
+ return getenv("LLD_REPRODUCE");
+}
+
// Force Sym to be entered in the output. Used for -u or equivalent.
static Symbol *handleUndefined(StringRef name) {
Symbol *sym = symtab->find(name);
@@ -955,8 +961,7 @@
}
// Handle --reproduce
- if (auto *arg = args.getLastArg(OPT_reproduce)) {
- StringRef path = arg->getValue();
+ if (const char *path = getReproduceOption(args)) {
Expected<std::unique_ptr<TarWriter>> errOrWriter =
TarWriter::create(path, path::stem(path));
if (errOrWriter) {
Index: lld/test/wasm/reproduce.s
===================================================================
--- /dev/null
+++ lld/test/wasm/reproduce.s
@@ -0,0 +1,32 @@
+# REQUIRES: shell
+# RUN: rm -rf %t.dir
+# RUN: mkdir -p %t.dir
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.dir/foo.o %s
+# RUN: wasm-ld --reproduce=%t.dir/repro.tar -o %t.dir/out.wasm %t.dir/foo.o
+# RUN: env LLD_REPRODUCE=%t.dir/repro2.tar wasm-ld -o %t.dir/out.wasm %t.dir/foo.o
+
+# RUN: cd %t.dir
+# RUN: tar tf repro.tar | FileCheck --check-prefix=TAR %s
+# RUN: tar tf repro2.tar | FileCheck --check-prefix=TAR2 %s
+
+# TAR: repro/response.txt
+# TAR: repro/version.txt
+# TAR: repro/{{.*}}/foo.o
+
+# TAR2: repro2/response.txt
+# TAR2: repro2/version.txt
+# TAR2: repro2/{{.*}}/foo.o
+
+# RUN: tar xf repro.tar
+# RUN: FileCheck --check-prefix=RSP %s < repro/response.txt
+
+# RSP: -o {{.*}}out.wasm
+# RSP: {{.*}}/foo.o
+
+# RUN: FileCheck %s --check-prefix=VERSION < repro/version.txt
+# VERSION: LLD
+
+.globl _start
+_start:
+ .functype _start () -> ()
+ end_function
Index: lld/test/wasm/reproduce.ll
===================================================================
--- lld/test/wasm/reproduce.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; REQUIRES: shell
-; RUN: rm -rf %t.dir
-; RUN: mkdir -p %t.dir
-; RUN: llc -filetype=obj %s -o %t.dir/foo.o
-; RUN: wasm-ld --reproduce=%t.dir/repro.tar -o %t.dir/out.wasm %t.dir/foo.o
-
-; RUN: cd %t.dir
-; RUN: tar tf repro.tar | FileCheck --check-prefix=TAR %s
-
-; TAR: repro/response.txt
-; TAR: repro/version.txt
-; TAR: repro/{{.*}}/foo.o
-
-; RUN: tar xf repro.tar
-; RUN: FileCheck --check-prefix=RSP %s < repro/response.txt
-
-; RSP: -o {{.*}}out.wasm
-; RSP: {{.*}}/foo.o
-
-; RUN: FileCheck %s --check-prefix=VERSION < repro/version.txt
-; VERSION: LLD
-
-target triple = "wasm32-unknown-unknown"
-
-define void @_start() {
- ret void
-}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D137377.473085.patch
Type: text/x-patch
Size: 2733 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221103/fac6e40f/attachment.bin>
More information about the llvm-commits
mailing list