[PATCH] D66035: [WebAssembly] WIP: Add support for reference types

Paulo Matos via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 28 02:54:42 PDT 2020


pmatos added a comment.

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.

At the moment, for example this test crashes:

  struct {
    __attribute__((address_space(256))) char *a[0];
  } b;
  void c() {
    for (int d = 0; d < 10; d++)
      b.a[d] = 0;
  }

This picked up from previous work by @vchuravy. I am still surprised by, and don't understand the reasoning behind, using a an i8 * for the externref representation. If anything I would expect to see i32 *. 
In any case, the test above crashes in loop vectorization in `TargetLowering.h` `getValueType` because externref is casted just fine to a pointer type and it shouldn't be since `externref` is supposed to be opaque.

I would be keen to hear some comments and suggestions going forward on this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66035/new/

https://reviews.llvm.org/D66035



More information about the cfe-commits mailing list