[LLVMdev] [patch] print ".weak" directive
Rafael EspĂndola
rafael.espindola at gmail.com
Fri Dec 8 11:13:49 PST 2006
> The approach looks good, but why do you need both 'hasWeak' and
> 'hasExternalWeak' here? It seems that this should only check the external
> weak case.
Yes, we need the hasWeak also. Consider the code (from your previous email):
----------------------------
%b = global int* %a
%a = weak global int 0
----------------------------
The C backend produces a ".weak a" directive, the hasWeak call is
there to make sure the AsmPrinter prints one to.
> I think what we really want is for the asmprinter base-class to call a
> virtual method when it sees external weak uses. This would allow the
> asmprinter implementation to add it to the set of things that a .weak
> directive needs to be emitted for. That way we'd only get one .weak
> directive for a global, instead of one per use.
> Thoughts?
>
Do we really need a virtual method? I think that all backends will
want to print the .weak directives. If it doesn't, It can just set
WeakRefDirective to NULL.
I will try to implement a patch that prints only one directive per global.
> -Chris
>
Best Regards,
Rafael
More information about the llvm-dev
mailing list