tejohnson added a comment.

In D152741#4419366 <https://reviews.llvm.org/D152741#4419366>, @modimo wrote:

> In D152741#4419324 <https://reviews.llvm.org/D152741#4419324>, @tejohnson 
> wrote:
>
>> In D152741#4419265 <https://reviews.llvm.org/D152741#4419265>, @modimo wrote:
>>
>>> In D152741#4418831 <https://reviews.llvm.org/D152741#4418831>, @tejohnson 
>>> wrote:
>>>
>>>> I think I understand the motivation, but not sure I agree this is the 
>>>> right approach - can you simply not pass -flto-unit and 
>>>> -fwhole-program-vtables for these files?
>>>
>>> For our third-party libraries, they're pre-built into native files by GCC 
>>> so that's unfortunately not an option.
>>
>> I'm confused - how would you pass this new option then? I was assuming you 
>> were passing this option to some LLVM built files at the interface of those 
>> libraries. In which case not passing -flto-unit and 
>> -fwhole-program-visibility should have a similar effect (suppress the type 
>> metadata).
>
> Oh I see, I misunderstood. Yes this is being passed to LLVM built files. We 
> want to avoid manual allowlists/blocklists because code changes make it less 
> flexible and scalable than an automatic option.

It seems like you need allowlists or blocklists in either case - either it is 
passed as a regex via the option proposed here, or the build system modifies 
the options for that set of files.

> This can also be pretty tricky to do correctly since we can get type metadata 
> from multiple TUs and all of them would need to be opted out for WPD to not 
> kick in.

But clang is presumably compiling a single TU at a time, so your regex needs to 
cover them all anyway? I'm not sure I understand the distinction between doing 
something like -fskip-vtable-filepaths=third-party/.* vs something like 
applying -funknown-vtable-visibility to each third-party/*.cc compile.

I really think the logic for which files to apply this option to belongs in the 
build system, not in the clang driver - just like any other clang option. It 
isn't clear to me why this particular option should be applied based on a file 
regex.

I like the approach of communicating this via vcall visibility, but just think 
that it should be applied to the current TU whenever a TBD new option is 
provided.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D152741

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to