HomePhabricator

[WebAssembly] Support for WebAssembly globals in LLVM IR

Authored by pmatos on May 4 2021, 5:13 AM.

Description

[WebAssembly] Support for WebAssembly globals in LLVM IR

This patch adds support for WebAssembly globals in LLVM IR, representing
them as pointers to global values, in a non-default, non-integral
address space. Instruction selection legalizes loads and stores to
these pointers to new WebAssemblyISD nodes GLOBAL_GET and GLOBAL_SET.
Once the lowering creates the new nodes, tablegen pattern matches those
and converts them to Wasm global.get/set of the appropriate type.

Based on work by Paulo Matos in https://reviews.llvm.org/D95425.

Reviewed By: pmatos

Differential Revision: https://reviews.llvm.org/D101608

Details

Committed
wingoMay 11 2021, 2:19 AM
Reviewer
pmatos
Differential Revision
D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR
Parents
rG04adfb660987: [flang][cmake] Enable the new driver by default
Branches
Unknown
Tags
Unknown