diff options
author | Yuta Saito <kateinoigakukun@gmail.com> | 2024-02-21 03:35:36 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-21 03:35:36 +0900 |
commit | ba3c1f9ce30cf4f8aee5f1961df74d65e11d53bc (patch) | |
tree | 78b965013f5d43f4126f86547cda69deb93a8a3c /llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp | |
parent | fb615cf3b9c2d887441a4c0cca326eddc592351a (diff) | |
download | llvm-ba3c1f9ce30cf4f8aee5f1961df74d65e11d53bc.zip llvm-ba3c1f9ce30cf4f8aee5f1961df74d65e11d53bc.tar.gz llvm-ba3c1f9ce30cf4f8aee5f1961df74d65e11d53bc.tar.bz2 |
[WebAssembly] Add segment RETAIN flag to support private retained data (#81539)
In WebAssembly, we have `WASM_SYMBOL_NO_STRIP` symbol flag to mark the
referenced content as retained. However, the flag is not enough to
express retained data that is not referenced by any symbol. This patch
adds a new segment flag`WASM_SEG_FLAG_RETAIN` to support "private"
linkage data that is retained by llvm.used.
This kind of data that is not referenced but must be retained is usually
used with encapsulation symbols (__start/__stop). Swift runtime uses
this technique and depends on the fact "all metadata sections in live
objects are retained", which was not guaranteed with `--gc-sections`
before this patch.
This is a revised version of https://reviews.llvm.org/D126950 (has been
reverted) based on @MaskRay's comments
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp')
0 files changed, 0 insertions, 0 deletions