llvm-project/llvm/lib
Sam Clegg 3b8d2be527 Reland: "[lld][WebAssembly] Initial support merging string data"
This change was originally landed in: 5000a1b4b9
It was reverted in: 061e071d8c

This change adds support for a new WASM_SEG_FLAG_STRINGS flag in
the object format which works in a similar fashion to SHF_STRINGS
in the ELF world.

Unlike the ELF linker this support is currently limited:
- No support for SHF_MERGE (non-string merging)
- Always do full tail merging ("lo" can be merged with "hello")
- Only support single byte strings (p2align 0)

Like the ELF linker merging is only performed at `-O1` and above.

This fixes part of https://bugs.llvm.org/show_bug.cgi?id=48828,
although crucially it doesn't not currently support debug sections
because they are not represented by data segments (they are custom
sections)

Differential Revision: https://reviews.llvm.org/D97657
2021-05-10 16:03:38 -07:00
..
Analysis [VecLib] Add support for vector fns from Darwin's libsystem. 2021-05-10 21:19:58 +01:00
AsmParser [CGAtomic] Lift strong requirement for remaining compare_exchange combinations 2021-05-06 21:05:20 -07:00
BinaryFormat [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
Bitcode [Bitcode] Ensure DIArgList in bitcode has no null or forward metadata refs 2021-04-22 12:03:33 +01:00
Bitstream
CodeGen Reland: "[lld][WebAssembly] Initial support merging string data" 2021-05-10 16:03:38 -07:00
DWARFLinker [MC] Untangle MCContext and MCObjectFileInfo 2021-05-05 10:03:02 -07:00
DebugInfo [DebugInfo] UnwindTable::create() should not add empty rows to CFI unwind table 2021-05-08 10:19:02 +05:30
Demangle [Demangle][Rust] Parse basic types 2021-05-10 09:44:46 -07:00
ExecutionEngine [ORC] Use the new dispatchTask API to run query callbacks. 2021-05-09 19:19:40 -07:00
Extensions
FileCheck Fix PR46880: Fail CHECK-NOT with undefined variable 2021-04-20 14:42:46 +01:00
Frontend [OpenMP][MLIR]Add support for guided, auto and runtime scheduling 2021-05-10 09:18:52 +00:00
FuzzMutate [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
Fuzzer
IR [Constant] Allow ConstantAggregateZero a scalable element count 2021-05-10 13:51:53 +01:00
IRReader [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
InterfaceStub
LTO [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
LineEditor
Linker Linker: Avoid scheduling the link of a global value twice due to an alias 2021-04-28 13:22:10 -07:00
MC Reland: "[lld][WebAssembly] Initial support merging string data" 2021-05-10 16:03:38 -07:00
MCA [MCA][RegisterFile] Refactor the move elimination logic to address PR50258. 2021-05-08 18:10:35 +01:00
Object Reland: "[lld][WebAssembly] Initial support merging string data" 2021-05-10 16:03:38 -07:00
ObjectYAML Reland: "[lld][WebAssembly] Initial support merging string data" 2021-05-10 16:03:38 -07:00
Option [clang][cli] NFC: Remove ArgList infrastructure for recording queries 2021-02-25 13:53:24 +01:00
Passes [PassManager] add helper function to hold set of vector passes (2nd try) 2021-05-10 14:43:00 -04:00
ProfileData [CSSPGO] Explicitly disallow Binary and Compact Binary profile format for CSSPGO 2021-04-26 09:10:24 -07:00
Remarks [Support] Don't include VirtualFileSystem.h in CommandLine.h 2021-04-21 10:19:01 -04:00
Support [NFC] Correctly assert the indents for printEnumValHelpStr. 2021-05-07 14:30:43 +02:00
TableGen [TableGen] Fix two bugs in 'defm' when complex 'assert' is involved. 2021-04-30 11:31:06 -04:00
Target Reland: "[lld][WebAssembly] Initial support merging string data" 2021-05-10 16:03:38 -07:00
Testing [SystemZ][z/OS] Add IsText Argument to GetFile and GetFileOrSTDIN 2021-04-16 10:08:36 -04:00
TextAPI [llvm][TextAPI] add mapping from OS string to Platform 2021-05-06 16:25:56 -07:00
ToolDrivers [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
Transforms [InstCombine] fold extract subvector of bitcast insertelt 2021-05-10 17:20:10 -04:00
WindowsManifest
XRay
CMakeLists.txt