brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 1baa2eb Raw
40 lines · plain
1target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20"2target triple = "wasm32-unknown-unknown"3 4; Generated from this C++ code and simplified manually:5;6; int foo();7; inline int unused = foo();8;9; int foo() {10;   return 42;11; }12 13$unused = comdat any14 15@unused = linkonce_odr global i32 0, comdat, align 416@_ZGV6unused = linkonce_odr global i32 0, comdat($unused), align 417@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__cxx_global_var_init, ptr @unused }]18 19define internal void @__cxx_global_var_init() comdat($unused) {20entry:21  %0 = load i8, ptr @_ZGV6unused, align 422  %1 = and i8 %0, 123  %guard.uninitialized = icmp eq i8 %1, 024  br i1 %guard.uninitialized, label %init.check, label %init.end25 26init.check:                                       ; preds = %entry27  store i8 1, ptr @_ZGV6unused, align 428  %call = call i32 @foo()29  store i32 %call, ptr @unused, align 430  br label %init.end31 32init.end:                                         ; preds = %init.check, %entry33  ret void34}35 36define i32 @foo() {37entry:38  ret i32 4239}40