Displaying 4 results from an estimated 4 matches for "linknamedmdnodes".
2011 Aug 04
2
[LLVMdev] metadata linking bug or by design
...global
values. Current trunk version links NamedMDNodes before that, though
the comment says otherwise: "We do this after linking GlobalValues so
that MDNodes that reference GlobalValues are properly remapped". see
ModuleLinker::run in lib/Linker/LinkModules.cpp.
If I move the call to linkNamedMDNodes in ModuleLinker::run to the
last step (just before return false), everything looks good. Not sure
if linkNamedMDNodes must be called earlier.
- xi
On Thu, Aug 4, 2011 at 1:22 PM, Devang Patel <dpatel at apple.com> wrote:
>
> On Aug 4, 2011, at 8:21 AM, Xi Wang wrote:
>
>> Hi...
2011 Aug 04
0
[LLVMdev] metadata linking bug or by design
...trunk version links NamedMDNodes before that, though
> the comment says otherwise: "We do this after linking GlobalValues so
> that MDNodes that reference GlobalValues are properly remapped". see
> ModuleLinker::run in lib/Linker/LinkModules.cpp.
>
> If I move the call to linkNamedMDNodes in ModuleLinker::run to the
> last step (just before return false), everything looks good. Not sure
> if linkNamedMDNodes must be called earlier.
I made that change in response to Chris's change ValueMapper. Metadata mapping is being investigated as part of PR 10553 anyway. So Ill fix...
2011 Aug 04
0
[LLVMdev] metadata linking bug or by design
On Aug 4, 2011, at 8:21 AM, Xi Wang wrote:
> Hi,
>
> It seems that current linker "drops" updated llvm::Value * references
> in metadata. Here goes an example. We have a two-line source file
> a.c:
>
> static int x;
> void foo() { x = 1; }
>
> and a similar b.c:
>
> static int x;
> void bar() { x = 1; }
>
> They both have an internal
2011 Aug 04
2
[LLVMdev] metadata linking bug or by design
Hi,
It seems that current linker "drops" updated llvm::Value * references
in metadata. Here goes an example. We have a two-line source file
a.c:
static int x;
void foo() { x = 1; }
and a similar b.c:
static int x;
void bar() { x = 1; }
They both have an internal variable x; one of them will be renamed (to
x1) during linking.
clang -emit-llvm -c -g a.c
clang -emit-llvm -c -g b.c