forked from OSchip/llvm-project
[WebAssembly] Set threadmodel during LTO
Subscribers: dschuff, mehdi_amini, inglorion, jgravelle-google, aheejin, sunfish, steven_wu, llvm-commits Differential Revision: https://reviews.llvm.org/D48689 llvm-svn: 336118
This commit is contained in:
parent
198f3b16dc
commit
92c10492de
|
@ -0,0 +1,14 @@
|
|||
; RUN: llvm-as %s -o %t.o
|
||||
; RUN: wasm-ld %t.o -o %t.wasm -lto-O0
|
||||
; Atomic operations with fail to compile if the ThreadModel is not
|
||||
; correctly set to Single (i.e. if atomics are not lowered to regular ops).
|
||||
|
||||
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
|
||||
target triple = "wasm32-unknown-unknown-wasm"
|
||||
|
||||
@foo = hidden global i32 1
|
||||
|
||||
define void @_start() {
|
||||
%1 = load atomic i32, i32* @foo unordered, align 4
|
||||
ret void
|
||||
}
|
|
@ -45,10 +45,13 @@ static std::unique_ptr<lto::LTO> createLTO() {
|
|||
lto::Config C;
|
||||
C.Options = InitTargetOptionsFromCodeGenFlags();
|
||||
|
||||
// Always emit a section per function/datum with LTO.
|
||||
// Always emit a section per function/data with LTO.
|
||||
C.Options.FunctionSections = true;
|
||||
C.Options.DataSections = true;
|
||||
|
||||
// Wasm currently only supports ThreadModel::Single
|
||||
C.Options.ThreadModel = ThreadModel::Single;
|
||||
|
||||
C.DisableVerify = Config->DisableVerify;
|
||||
C.DiagHandler = diagnosticHandler;
|
||||
C.OptLevel = Config->LTOO;
|
||||
|
|
Loading…
Reference in New Issue