[llvm-bugs] [Bug 40805] New: [WebAssembly] codegen bug during instruction selection

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Feb 21 08:43:46 PST 2019


            Bug ID: 40805
           Summary: [WebAssembly] codegen bug during instruction selection
           Product: libraries
           Version: 8.0
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: WebAssembly
          Assignee: unassignedbugs at nondot.org
          Reporter: alex at crichton.co
                CC: dan433584 at gmail.com, llvm-bugs at lists.llvm.org,
                    tlively at google.com

First reported upstream to rust-lang/rust -
https://github.com/rust-lang/rust/issues/58548 - I've managed to reduce this a
little more from the Rust issue report. It looks like during "WebAssembly
Instruction Selection" on the `run_test` function a bug is generated. 

All the relevant files for this should be in
https://gist.github.com/alexcrichton/f0098f0505ce1476a2bef944b03ff06e, notably:

* lib.rs -
- the original Rust source used to generate this buggy program
* foo.ll -
- the LLVM IR generated by rustc with LTO (to avoid references to the Rust
standard library). 
* foo.js -
- auxiliary JS for node.js to run the output wasm binary
* build.sh -
- the invocations of `llc` and `wasm-ld` used to produce a WebAssembly binary.

Using `-opt-bisect-limit` I've found that the pass "WebAssembly Instruction
Selection on function (run_test)" looks to be causing the issue here (different
behavior in optimized vs non-optimized mode). This pass changes the final
output wasm with this diff:


but I unfortunately can't really make heads or tails of where the bug is. 

If any more info is needed from our end please just let me know!

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190221/9e7b1d10/attachment.html>

More information about the llvm-bugs mailing list