[llvm-bugs] [Bug 33649] New: remove appending linkage
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Jun 29 17:26:48 PDT 2017
https://bugs.llvm.org/show_bug.cgi?id=33649
Bug ID: 33649
Summary: remove appending linkage
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Core LLVM classes
Assignee: unassignedbugs at nondot.org
Reporter: rafael.espindola at gmail.com
CC: llvm-bugs at lists.llvm.org, tejohnson at google.com
The odd ways we have to handle appending linkage surfaced again in how
@llvm.global_ctors is handled.
I think we can make llvm linking simpler by removing the appending linkage.
Things like
@llvm.global_ctors = ... { i32 A1, i32 B1, i8* C1 }, { i32 A2, i32 B2, i8* C2
}
can be represented as
@ctor1 = private ... { i32 A1, i32 B1 }, section
"llvm.metadata.ctors", comdat $(comdat of C1).
@ctor2 = private ... { i32 A2, i32 B2 }, section
"llvm.metadata.ctors", comdat $(comdat of C2).
Which has a few advantages:
* It links just like every other IR.
* It representation matches what is actually done in the object file.
Currently the representation has different meaning if C is not in a
comdat.
Note that this still abstracts away the actual sections used by COFF/ELF/MachO.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170630/255225da/attachment.html>
More information about the llvm-bugs
mailing list