[patch] opt: Initialize asm printers to avoid DCE

Rafael EspĂ­ndola rafael.espindola at gmail.com
Tue May 20 13:54:14 PDT 2014


On 15 May 2014 03:51, Tobias Grosser <tobias at grosser.es> wrote:
> Hi,
>
> I would like to ask for review for the following patch:
>
> To avoid dead code elimination of the assembly printers, this patch calls
> InitializeAllAsmPrinters() from opt. This increases the static binary size
> of 'opt' from 50MB -> 52MB on my system (all backends compiled) and causes
> no measurable increase in the time needed to run 'make check'.
>
> Without initialising the assembly printers a shared library build of opt is
> linked with these libraries whereas for a static build these libraries are
> dead code eliminated. This is problematic for plugins
> that use assembly printers, as they neither can rely on opt to provide this
> functionality nor can they link the printers in themselves as this breaks
> with a shared object build of opt.
>
> As the impact is rather minor and for platforms where even a tiny binary
> size increase matters 'opt' is commonly not provided, I don't expect any
> problems. Still, I would like to ask for other opinions.

It seems odd to have asm printers in opt at all. I understand that is
because of the current library organization, but I don't think it is
an explicit design.

What is the plugin doing with the asm printer? Could it plugin in llc?

Cheers,
Rafael



More information about the llvm-commits mailing list