llvm-project/lld/wasm
Thomas Lively 09768c5d7a [WebAssembly] Initialize memory in start function
Summary:
 - `__wasm_init_memory` is now the WebAssembly start function instead
   of being called from `__wasm_call_ctors` or called directly by the
   runtime.
 - Adds a new synthetic data symbol `__wasm_init_memory_flag` that is
   atomically incremented from zero to one by the thread responsible
   for initializing memory.
 - All threads now unconditionally perform data.drop on all passive
   segments.
 - Removes --passive-segments and --active-segments flags and controls
   segment type based on --shared-memory instead. The deleted flags
   were only present to ameliorate the upgrade path in Emscripten.

Reviewers: sbc100, aheejin

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

Tags: #llvm

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

llvm-svn: 370965
2019-09-04 19:50:39 +00:00
..
CMakeLists.txt [WebAssembly] Refactor synthetic sections and relocation processing. NFC. 2019-05-21 09:13:09 +00:00
Config.h [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
Driver.cpp [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
InputChunks.cpp [WebAssembly][lld] Fix crash when applying relocations to debug sections 2019-08-20 18:39:24 +00:00
InputChunks.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
InputEvent.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
InputFiles.cpp [WebAssembly][lld] Fix crash when applying relocations to debug sections 2019-08-20 18:39:24 +00:00
InputFiles.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
InputGlobal.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
LTO.cpp [WebAssembly] Implement NO_STRIP 2019-08-29 22:41:05 +00:00
LTO.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
MarkLive.cpp [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
MarkLive.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Options.td [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
OutputSections.cpp [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
OutputSections.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
OutputSegment.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
Relocations.cpp [lld][WebAssembly] Allow linking of pic code into static binaries 2019-08-13 17:02:02 +00:00
Relocations.h [Coding style change][lld] Rename variables for non-ELF ports 2019-07-11 05:40:30 +00:00
SymbolTable.cpp [lld][WebAssembly] Fix spurious signature mismatch warnings 2019-08-30 19:50:59 +00:00
SymbolTable.h [lld][WebAssembly] Add optional symbols after input file handling 2019-08-08 16:58:36 +00:00
Symbols.cpp [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
Symbols.h [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
SyntheticSections.cpp [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
SyntheticSections.h [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
Writer.cpp [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
Writer.h [WebAssembly] Refactor synthetic sections and relocation processing. NFC. 2019-05-21 09:13:09 +00:00
WriterUtils.cpp [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
WriterUtils.h [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00