- User Since
- Jul 31 2018, 10:54 AM (59 w, 5 d)
Fri, Sep 20
- Add encoding tests
Thu, Sep 19
@sunfish I believe you originally added the GlobalAddress patterns so I wanted to check in with you before removing them. Do you know whether they can ever be used? If so I will add tests for them instead, but I'm not sure I've ever seen a GlobalAddress offset.
Wed, Sep 18
- Add test for custom section names and change sorting to handle them
Mon, Sep 16
Fri, Sep 13
Thu, Sep 12
Wed, Sep 11
- Make narrows binary ops
Tue, Sep 10
I missed the fact that the narrows are supposed to be binary operations. Oops.
Fri, Sep 6
Thanks for the clarification. It makes sense to me that -mexception-handling only enables the architectural feature and a separate flag enables the behavior change. This is indeed consistent with how -pthread works.
Thu, Sep 5
Is there a plan to turn this on by default at some point, or will users always have to opt-in to using exceptions? Also, would it make sense to automatically turn this feature on if the user instead supplies -mexception-handling to turn on the target feature?
Wed, Sep 4
Tue, Sep 3
- Address review comments
- Switch to more robust scheme with cmpxchg/wait/notify
Abandoning in favor of @sunfish's idea for introducing a cost mechanism for shuffle masks in DAGCombiner.
Fri, Aug 30
@sunfish That sounds like a useful mechanism to me. I'd be happy to work on that next week. Is the consensus that we should not merge this change and instead pursue that idea?
Link to DAGCombiner.cpp code: https://github.com/llvm/llvm-project/blob/802aab5/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L19014
They need benchmarking data before they can be merged into the proposal, and they need to be supported in the toolchain for us to get good benchmarking data.
The context for this CL is https://github.com/emscripten-core/emscripten/issues/9340. The code that does the undesirable optimization is around llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18776. I think it is a reasonable assumption that what you put in is what you get out, especially if you're trying to trigger particular WebAssembly engine behavior that the backend should not really be reasoning about. Now perhaps users should not be reasoning about it either, but given that they are I think this patch is reasonable.
Thu, Aug 29
Generally LGTM, although the tests might be more readable if you pass -wasm-disable-explicit-locals and -wasm-keep-registers as well. It's also concerning that no one noticed this issue before. Do you know why other targets may not have run into it?
Aug 22 2019
Aug 16 2019
Aug 14 2019
Thanks for you comments! I am also planning to update the memory initialization scheme to use wait and notify so that it works with racing modules instead of requiring the runtime to ensure that no module is called into before the main module is finished initializing. In a web context the runtime will have to ensure the main thread wins this race because it is not allowed to wait, but this is still strictly more general than the current scheme. Does that sound good to you?
Aug 13 2019
Aug 7 2019
Aug 6 2019
It would be good to add a test here, too ;)
Sounds good; I'm happy to help out.
Aug 5 2019
Oops it would be good to have a test, too ;)
I have mixed feelings about this. One one hand I understand that this file is huge and cross-cutting changes could cause a lot of manual updating work, but on the other hand each individual test was very readable and succinct. The auto-generated version would certainly be less work to maintain, but its enormous amount of irrelevant information and repetition is unfortunate. @aheejin, what do you think about this?
LGTM with a small test format change.
Jul 31 2019
Jul 30 2019
This looks great! The code is straightforward and I like the extra information in the text format. We will have to do a little more work to support return_call_indirect, but it looks like doing so should be fairly straightforward on top of this base.
Jul 29 2019
- Update documentation
Jul 26 2019
- Do not allow varargs tail calls
- Address comments, add a few more tests
- Record proper return types for indirect tail calls as well
Jul 24 2019
Jul 23 2019
Jul 19 2019
Jul 18 2019
- Simplify flags logic
LGTM modulo a test!