[PATCH] D75655: [Docs] Document -lto-whole-program-visibility

Teresa Johnson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 17 11:49:33 PDT 2020


tejohnson added a comment.

In D75655#1920036 <https://reviews.llvm.org/D75655#1920036>, @evgeny777 wrote:

> @pcc
>
> > That case seems somewhat questionable to me. If the symbols are being exported, it is presumably for the purpose of allowing the symbols to be used outside of the defining DSO. But LTO visibility based optimizations could make any such use of the symbols unsafe. For example with WPD it's unsafe to derive outside of the defining DSO and with dead virtual function elimination it's unsafe to call virtual functions outside of the defining DSO.
>
> True, but still direct (cross DSO) calls and globals accesses are possible and do not require explicitly setting visibility everywhere. That was my point.


Not sure if we have come to a resolution here. @evgeny777 it sounds like you want symbols that can be direct called not to be marked hidden while still allowing for hidden LTO visibility for virtual functions. Which my change will support, but it sounds like it could be dangerous if not used carefully (i.e. if you don't know for sure that virtual symbols are only called within their defining DSO). Is this a correct summary?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D75655





More information about the cfe-commits mailing list