diff options
Diffstat (limited to 'lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
| -rw-r--r-- | lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp index 7b05f671bdcbf..3cc19ef5fbabc 100644 --- a/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp +++ b/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp @@ -68,12 +68,12 @@ static Reloc::Model getEffectiveRelocModel(Optional<Reloc::Model> RM) {  WebAssemblyTargetMachine::WebAssemblyTargetMachine(      const Target &T, const Triple &TT, StringRef CPU, StringRef FS,      const TargetOptions &Options, Optional<Reloc::Model> RM, -    CodeModel::Model CM, CodeGenOpt::Level OL) +    Optional<CodeModel::Model> CM, CodeGenOpt::Level OL, bool JIT)      : LLVMTargetMachine(T,                          TT.isArch64Bit() ? "e-m:e-p:64:64-i64:64-n32:64-S128"                                           : "e-m:e-p:32:32-i64:64-n32:64-S128",                          TT, CPU, FS, Options, getEffectiveRelocModel(RM), -                        CM, OL), +                        CM ? *CM : CodeModel::Large, OL),        TLOF(TT.isOSBinFormatELF() ?                static_cast<TargetLoweringObjectFile*>(                    new WebAssemblyTargetObjectFileELF()) : @@ -175,6 +175,9 @@ void WebAssemblyPassConfig::addIRPasses() {      // control specifically what gets lowered.      addPass(createAtomicExpandPass()); +  // Lower .llvm.global_dtors into .llvm_global_ctors with __cxa_atexit calls. +  addPass(createWebAssemblyLowerGlobalDtors()); +    // Fix function bitcasts, as WebAssembly requires caller and callee signatures    // to match.    addPass(createWebAssemblyFixFunctionBitcasts()); | 
