- User Since
- Jul 29 2016, 12:33 AM (254 w, 6 d)
Oh, forgot to fix comments... will fix soon
Wed, May 26
Remove unnecessary llvm::
Tue, May 25
Mon, May 24
This happened to uncover a long-existing bug in WebAssembly::getCalleeOp. For indirect calls it returns MI.getOperand(MI.getNumOperands() - 1), but in the presence of implicit operands, most of the time it returns an incorrect operand. For example:
%37:i32 = CALL_INDIRECT 0, 0, %55:i32, %38:i32, %54:i32, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def dead $arguments, implicit $sp32, implicit $sp64, implicit-def $value_stack, implicit $value_stack, debug-location !39; system/lib/libc/musl/src/stdlib/bsearch.c:9:10
The callee operand is %54 here, but this returns implicit $value_stack. The should have used MI.getNumExplicitOperand() instead. This has not been a problem so far because this utility function has been used only from a few places and all of them only cared about direct calls.
Fix WebAssembly::getCalleeOp for indirect calls
New standalone test
Add comment for DIArgList
Add BEFORE and AFTER tests
This also contains a revert of D102589.
Sun, May 23
Sat, May 22
Thu, May 20
Wed, May 19
May 17 2021
@jmorse Thanks for your help!
Improve comments and CHECK line
May 16 2021
May 14 2021
May 12 2021
Use DPTR in tests
Fix incorrect comment pointed out here: https://github.com/emscripten-core/emscripten/pull/14108/files#r627479849
May 11 2021
@jmorse Thank you very much for the info! I didn't know DbgEntityHistoryCalculator terminates debug value ranges at the end of a BB. That solves everything without this hacky stuff. I uploaded a new patch in D102309.
May 10 2021
@dblaikie I can remove this one. This is not an important test anyway. But where are we supposed to test the arguments clang driver invokes the backend LLVM compilation with? This was mainly to test if -exception-model=wasm reaches the backend compilation.
May 7 2021
To improve hygiene, consistency, and usability, it would be good to replace all
the macro intrinsics in wasm_simd128.h with functions. The reason for using
macros in the first place was to enforce the use of constants for some arguments
using _Static_assert with __builtin_constant_p. This commit switches to
using functions and uses the __diagnose_if__ attribute rather than
_Static_assert to enforce constantness.
May 6 2021
May 5 2021
I see, thanks. Then other load instructions are OK not to be fixed?
Why do only these instructions have const? It doesn't apply to other read-only arguments?
Thanks for the explanation!
May 4 2021
Fix more comments
Sorry I'm not sure if I understand. The "expected alignment" for all those memory instructions is 1, regardless of the size of the element of the vectors? Can you elaborate on why the previous code is incorrect?
Revert another accidental change
May 3 2021
Revert accidental test changes