[PATCH] D157151: [Driver] Refactor to use llvm Option's new Visibility flags

Justin Bogner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 14 03:38:08 PDT 2023


bogner added a comment.

In D157151#4583904 <https://reviews.llvm.org/D157151#4583904>, @awarzynski wrote:

> This can be tweaked in `getOptionVisibilityMask` (extracted from this patch):
>
>   llvm::opt::Visibility
>   Driver::getOptionVisibilityMask(bool UseDriverMode) const {
>     if (!UseDriverMode)
>       return llvm::opt::Visibility(llvm::opt::Default);
>     if (IsCLMode())
>       return llvm::opt::Visibility(options::CLOption);
>     if (IsDXCMode())
>       return llvm::opt::Visibility(options::DXCOption);
>     if (IsFlangMode()) {
>       // vvvvvvvvvvvvvvv HERE vvvvvvvvvvvvvvvvvvv
>       // TODO: Does flang really want *all* of the clang driver options?
>       // We probably need to annotate more specifically.
>       return llvm::opt::Visibility(llvm::opt::Default | options::FlangOption);
>     }
>     return llvm::opt::Visibility(llvm::opt::Default);
>   }
>
> Now, prior to this change I couldn't find a way to disable unsupported Clang options in Flang. With this patch,
>
> - all Clang options gain a visibility flag (atm that's `Default`),
> - that flag can be used to disable options unsupported in Flang.
>
> For this to work, all options supported by Flang need to have their visibility flags set accordingly. That's the goal, but I can see that we have missed quite a few options over the time (*). Updated here: https://reviews.llvm.org/D157837.

Ah right. Yes, this is exactly the problem that this patch is trying to fix. Glad to see that it seems to be working as intended for flang-new!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D157151



More information about the cfe-commits mailing list