[PATCH] D63932: [GlobalDCE] Dead Virtual Function Elimination

Mehdi AMINI via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 24 00:22:07 PDT 2019


mehdi_amini added a comment.

In D63932#1679910 <https://reviews.llvm.org/D63932#1679910>, @ostannard wrote:

> > This makes the IR self-contained, which is good, but it also make the interpretation of the IR modal, which isn't great. It means that suddenly the rules of interpretation of what is valid to do or not changes according to this module flag.
>
> I think the original version was better from that perspective - most compiler passes only need to check for one value of the attribute, and only the linker needed to care about the difference between link-unit and public visibility.


The *linker* needed to care about the difference is fine, but that's different from a *compiler pass* during LTO. In general it is an important design point in LLVM so far to encode these information in the IR (for instance the linkage type of globals would be changed and not the interpretation of these with a flag).

> Do you think we should go back to that design, or do you have a different idea?

I didn't review the original version, but pcc@ did apparently, so I'm willing to trust them on what's the best way forward here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63932/new/

https://reviews.llvm.org/D63932





More information about the cfe-commits mailing list