[PATCH] D104797: [WebAssembly] Implementation of global.get/set for reftypes in LLVM IR

Paulo Matos via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 24 07:42:39 PDT 2021


pmatos added a comment.

In D104797#2837417 <https://reviews.llvm.org/D104797#2837417>, @tlively wrote:

> In D104797#2836475 <https://reviews.llvm.org/D104797#2836475>, @pmatos wrote:
>
>> @tlively Do you think it would be ok to re-add the code removed in `ac81cb7e` but only error if the pointer is to an **opaque** non-integral type?
>
> Unfortunately that wouldn't be future-proof given the ongoing project to remove type information from pointers. I think the best we can do right now is call `report_fatal_error` from the backend whenever a reference type is the operand or result of ptrtoint or inttoptr.

Which 'ongoing project' is this and how can I obtain more information about it? Who's leading it?
Before the crashing, the only place we seem to touch the Wasm backend is in `WebAssemblyDAGToDAGISel::runOnMachineFunction`. Then this calls `SelectionDAGISel::runOnMachineFunction`, which visits each node in the Function and crashes when trying to call `getPtrExtOrTrunc` because it cannot create a `TRUNCATE` node for a zero sized type. So, if you prefer to have a `report_fatal_error` in the WebAssembly backend, we will need to visit the nodes in the function in `WebAssemblyDAGToDAGISel::runOnMachineFunction` before calling the generic `runOnMachineFunction`. I will look at how to proceed in this direction, but I am also interested in following this project on removing type information from pointers in LLVM, so any refs would be great. Thanks.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D104797



More information about the llvm-commits mailing list