@alexcrichton As someone who works on an LLVM frontend, do you think the possibility that a feature can be "forgotten" would be worth introducing a restriction that functions can only be inlined into other functions that have a superset of their features?
Wed, Aug 5
- Fix and test macros as well
Mon, Aug 3
- Renumber i32x4.dot_i16x8_s to match V8 as well
Sun, Aug 2
Nice! Thanks for doing that :)
Fri, Jul 31
It would be good to split this into (at least) two patches. The first should do the minimal testable amount of work to get instruction selection working, and follow-on patches can add the other parts, like additions to the object file format. Part of the reason for that split is that different people will be better at reviewing those different parts of the patch.
Thu, Jul 30
- Remove IntrSpeculatable
Wed, Jul 29
Since this changes opcodes, it needs to be landed in concert with the corresponding Binaryen change.
Tue, Jul 28
Please ignore my .gitlab-ci.yml. That's just an internal change that I got uploaded by mistake.
I am looking to see this through and start discussion on this with the goal of landing it.
Mon, Jul 27
Fri, Jul 24
Thu, Jul 23
- Improve codegen: use faster i32x4.splats and reuse the existing vector as the second narrowing argument
They seem to have been written that way because negative offsets aren't folded? What does it mean that they are duplicates of other patterns?
Wed, Jul 22
Tue, Jul 21
I'm taking this patch sequence out of the review queue for now, pending an investigation of the alternatives suggested above.
Thu, Jul 16
Thank you all for the comments! I agree that the opcodes in SelectionDAG::isSplatValue are rather arbitrary, so a more principled approach using a TLI hook might be better. I will take a look at what X86 is doing to see if a simpler solution would work for WebAssembly, too.
Nit: NFC usually means code change that does not affect output, so adding tests or changing tests is not NFC by that definition :)
Mon, Jul 13
The part with the wrap lgtm!
Sun, Jul 12
- Remove superfluous parentheses
Sat, Jul 11
Is this supposed to fix some lowering-produced code?
If not, shouldn't this be best done in the middle-end?
Fri, Jul 10
- Update another x86 test
- Remove TODO
This whole patch got a whole lot more complex than I thought it would be at first, so I'm going to split out some of the separately-useful parts and experiment with other ways of getting rid of the undef lanes in splat build_vectors.
Thu, Jul 9
Jul 7 2020
Jul 6 2020
Jul 5 2020
Jul 4 2020
Landing TBR to unbreak stuff faster.
Jul 3 2020
Good point, that was a problem. I changed the implementation to examine the range check rather than the table index and added a test for this case.
- Check the range check condition rather than the index source
Jul 1 2020
Jun 29 2020
Jun 23 2020
Actually, a better commit to track is https://chromiumdash.appspot.com/commit/e1a9c1e807d3d44e03dc77c69cc2a0303f1d9f38.
Jun 22 2020
The corresponding semantics change in Chrome can be tracked at https://chromiumdash.appspot.com/commit/895c52ddcb783fed5637cb1e6e31b6fd730872da.
Jun 19 2020
+1 to what Derek said :)
Jun 18 2020
Thanks, @arsenm, looks fine to me. Do you have more context on why this change is necessary, though?