[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