Files
clang-p2996/lld/test/wasm/Inputs/locals-duplicate2.ll
Thomas Lively 190dacc3cc [WebAssembly] Elide data segments for .bss sections
Summary:
WebAssembly memories are zero-initialized, so when module does not
import its memory initializing .bss sections is guaranteed to be a
no-op. To reduce binary size and initialization time, .bss sections
are simply not emitted into the final binary unless the memory is
imported.

Reviewers: sbc100

Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits

Tags: #llvm

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

llvm-svn: 374940
2019-10-15 19:05:11 +00:00

52 lines
1.0 KiB
LLVM

target triple = "wasm32-unknown-unknown"
; Will collide: local (internal linkage) with global (external) linkage
@colliding_global1 = default global i32 1, align 4
; Will collide: global with local
@colliding_global2 = internal default global i32 1, align 4
; Will collide: local with local
@colliding_global3 = internal default global i32 1, align 4
; Will collide: local with global
define i32 @colliding_func1() {
entry:
ret i32 2
}
; Will collide: global with local
define internal i32 @colliding_func2() {
entry:
ret i32 2
}
; Will collide: local with local
define internal i32 @colliding_func3() {
entry:
ret i32 2
}
define i32* @get_global1B() {
entry:
ret i32* @colliding_global1
}
define i32* @get_global2B() {
entry:
ret i32* @colliding_global2
}
define i32* @get_global3B() {
entry:
ret i32* @colliding_global3
}
define i32 ()* @get_func1B() {
entry:
ret i32 ()* @colliding_func1
}
define i32 ()* @get_func2B() {
entry:
ret i32 ()* @colliding_func2
}
define i32 ()* @get_func3B() {
entry:
ret i32 ()* @colliding_func3
}