User Details
- User Since
- Jun 23 2014, 10:15 AM (456 w, 2 d)
Oct 18 2022
Jun 22 2022
This somehow caused a regression in the wasm targets, which I bisected to here. Certain files when compiled with -O1 appear to hang for a very long time (maybe forever). This happened on the Bullet physics engine codebase in the Emscripten test suite, but affects all wasm targets (wasm32-unknown-unknown, -wasi, and -emscripten).
Jun 21 2022
May 13 2022
Jan 26 2022
Seems reasonable to me, this restriction doesn't worry me, and great to have a clear error.
Jul 11 2021
This caused assertions to be hit on some tests as well as real-world code that we run. Here is a testcase:
Jul 9 2021
Jul 2 2021
I believe we have all agreed that this is the right path forward, and so this can land?
Jun 23 2021
May 20 2021
I'm not very familiar with this code, but it looks right, and sgtm to add a warning here.
May 19 2021
Nice find!
Mar 23 2021
Feb 22 2021
I think this broke the LLVM roll on Emscripten CI. I don't have time to bisect atm, but this is the only wasm-related commit in the range, and the compiler crash is on a file and function modified in this patch:
Feb 5 2021
Jan 26 2021
Jan 25 2021
Jan 22 2021
Jan 21 2021
Very interesting perf data!
Nov 25 2020
I don't know enough to tell if these changes are sufficient, but they make sense to me.
Oct 27 2020
Oct 12 2020
I'm not an expert on the LLVM details here, but, the logic looks correct and that it properly corresponds to the original idea of this optimization (that this will replace).
Sep 25 2020
I don't understand the LLVM side enough to review, but running this locally it fixes all the issues we had earlier!
Sep 24 2020
I can do a roll if needed, sure. (Is one needed? Let's see on the bots I guess...)
Just to be sure, is it ok to do this even when atomics are not enabled?
Jul 3 2020
Thanks!
Jul 1 2020
It looks like this pattern-matches on the switch's input. Does that mean that if we see a valid wrap there, we would also optimize this less?
Apr 13 2020
Apr 12 2020
Is the general plan for LLVM documented somewhere?
Mar 23 2020
Mar 6 2020
Feb 21 2020
Remove unneeded & in lambda capture.
Feb 7 2020
Nice, thanks! Will help with debug info coverage too.
Jan 28 2020
Makes sense to me, nice. Also verified no crashes on wasm0 and wasm3 on the emscripten test suite.
Aug 16 2019
lgtm module the error message, let's find the best phrasing there.
Aug 8 2019
Nothing looks wrong to me here, but I don't know enough to fully understand it, sorry - like what the various indexes are, what a virtual address means here, etc.
Jul 26 2019
To make sure I understand, is the issue that in the presence of a setjmp we turn those calls into invokes, which means in wasm we end up with an indirect call - and then in binaryen we don't see the emscripten_asm_const_int etc., and instead just the indirect call? (Or does the backend do more processing here?)
Jul 17 2019
I'm not an expert on this but it looks right to me.
Jul 7 2019
This looks right to me, but I'm not an expert on this stuff.
Jun 22 2019
May 10 2019
This may have broken CI, as it shows as one of the commits in the first broken roll here:
May 9 2019
I bisected the failure on emscripten's wasm0.test_dylink_rtti (and two others, also failing on the waterfall) which hits
Apr 22 2019
I'm in favor of this. There are a bunch of tradeoffs that VMs can make, and this lets them make their own choices, by emitting the higher-level construct, which is also smaller in size in the wasm.
Apr 19 2019
Not an expert on this code but it looks right to me.
Apr 18 2019
As mentioned on the issue, I'd prefer if we got imports for such globals, but if that's not possible then definitely an error instead of just silently emitting a 0 is better, lgtm.
Apr 3 2019
Fair enough. Slightly worries me since it's not obvious from the name or the docs, and so perhaps it might change one day, but that's overly paranoid perhaps.
Apr 2 2019
Mar 27 2019
This broke wasm2.test_openjpeg on CI, reproducible locally. Errors on error: undefined symbol: __memory_base
Mar 26 2019
Mar 25 2019
Nice!
Mar 19 2019
Thanks for the explanation! I think I understand.
Mar 18 2019
Nice idea, and overall looks good to me. I didn't quite understand the TII part though.
I'm not that familiar with the BuildMI parts though.
Mar 15 2019
Great, and thanks for the comments!
Mar 14 2019
- Thanks, indeed one of the tests removed before (func_2) was still irreducible at -O0, restored it into the main irreducible file test, which is now at -O0. The other (tre_parse) was actually not irreducible, so we mis-identified it, and I left it out.
- Fixed extra newline at the end of a test.
- Renamed the title to have [WebAssembly]
Mar 13 2019
Various changes from the feedback:
Mar 12 2019
Review feedback changes, in particular:
What changes fixed the previous bug?
Mar 5 2019
Code change lgtm, thanks!
Mar 4 2019
Jan 29 2019
This broke binaryen2.test_exceptions_white_list_2
Jan 6 2019
From the point of view of FixIrreducibleControlFlow this sounds good.
Dec 18 2018
Use SmallPtrSet for our sets, and return to using a vector for SortedEntries which we sort, avoiding SetVector.
Dec 17 2018
- Use SetVector for determinism
- Simplify names in exceptions testcase
- Improve comments about canonicalization
Thanks for the comments, uploading an updated patch now.
Dec 14 2018
Thanks, submitting a fixed patch now.
Dec 13 2018
Thanks for the comments @aheejin!
Dec 12 2018
Dec 10 2018
Use llvm::sort following @mgrang's feedback. Thanks!
Dec 7 2018
Oct 22 2018
Aug 9 2018
No, I think I don't. I think someone else landed the few patches I had a few years ago.
Thanks aheejin!