aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
diff options
context:
space:
mode:
authorYuta Saito <kateinoigakukun@gmail.com>2024-02-21 03:35:36 +0900
committerGitHub <noreply@github.com>2024-02-21 03:35:36 +0900
commitba3c1f9ce30cf4f8aee5f1961df74d65e11d53bc (patch)
tree78b965013f5d43f4126f86547cda69deb93a8a3c /llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
parentfb615cf3b9c2d887441a4c0cca326eddc592351a (diff)
downloadllvm-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