From db1916a64620b3261fed450cbde047c730d758b5 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 9 Feb 2018 23:13:22 +0000 Subject: [WebAssembly] Add mechanisms for specifying an explicit import module name. This adds a wasm-import-module function attribute and a .import_module assembler directive, for specifying module import names for WebAssembly. Currently these may only be used for function symbols; global variables may be considered in the future. WebAssembly has a two-level namespace scheme for symbols, and it's normally the linker's job to assign the module name, which is the first-level name. The attributes here allow users to specify their own module names explicitly, which is useful for tools generating bindings to modules defined in other languages. This feature is not fully usable yet. It will evolve along with the ongoing symbol table and lld changes. Differential Revision: https://reviews.llvm.org/D42520 llvm-svn: 324778 --- llvm/test/CodeGen/WebAssembly/import-module.ll | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 llvm/test/CodeGen/WebAssembly/import-module.ll (limited to 'llvm/test/CodeGen') diff --git a/llvm/test/CodeGen/WebAssembly/import-module.ll b/llvm/test/CodeGen/WebAssembly/import-module.ll new file mode 100644 index 00000000000..e748b7ec1c7 --- /dev/null +++ b/llvm/test/CodeGen/WebAssembly/import-module.ll @@ -0,0 +1,19 @@ +; RUN: llc < %s -asm-verbose=false | FileCheck %s + +target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" +target triple = "wasm32-unknown-unknown-wasm" + +define void @test() { + call void @foo() + call void @plain() + ret void +} + +declare void @foo() #0 +declare void @plain() + +attributes #0 = { "wasm-import-module"="bar" } + +; CHECK-NOT: .import_module plain +; CHECK: .import_module foo, bar +; CHECK-NOT: .import_module plain -- cgit v1.2.3