All strings are in one section

kinke noone at nowhere.com
Tue Mar 16 16:44:41 UTC 2021


On Monday, 15 March 2021 at 19:11:33 UTC, Jack Applegame wrote:
> On Saturday, 27 February 2021 at 17:20:35 UTC, kinke wrote:
>> On Saturday, 27 February 2021 at 14:46:55 UTC, Kagamin wrote:
>>> On linux LLVM puts most things in different sections, so they 
>>> can be collected with --gc-sections linker option, but all 
>>> strings still go in one section, and can't be collected 
>>> individually. Is there a way to put strings in different 
>>> sections? --data-sections option doesn't help.
>>
>> See this thread: 
>> https://lists.llvm.org/pipermail/llvm-dev/2020-September/145121.html
>>
>> Adding a `-fmerge-all-constants` option in case the linker 
>> really isn't able to get rid of unused strings should be 
>> trivial according to https://reviews.llvm.org/D45289.
>
> Could you add -fno-merge-all-constants option, please?

According to the IR tests in the linked LLVM PR, that's what LDC 
does anyway (emitting string constants as `private 
unnamed_addr`). Changing that to `internal` for 
-fmerge-all-constants semantics can be done in 
https://github.com/ldc-developers/ldc/blob/58ee56a2100eb301c55220933dd2a84d3a7d2843/gen/irstate.cpp#L205-L208.


More information about the digitalmars-d-ldc mailing list