awarzynski added a comment.

Thank you all for you comments! Please find my replies below. I've picked 4 
main points raised here.

1
-

In D89799#2342677 <https://reviews.llvm.org/D89799#2342677>, @rnk wrote:

> This seems like pretty corner case functionality. Do we really need this 
> diagnostic?

Good point. If nobody objects I will remove it.

2
-

In D89799#2344672 <https://reviews.llvm.org/D89799#2344672>, @yaxunl wrote:

> I am not sure whether it is proper to rename it.
>
> Originally, this flag means driver option which is not supposed to be 
> forwarded to tools. It is more like a reminder to driver developers since 
> clang driver does not automatically forward options to tools and does not 
> enforce not forwarding options with this flag to tools.

I'm happy to rename this differently, e.g. `DontForwardToTools`. However, 
`DriverOption` is very confusing to me. Which driver is this flag referring to? 
Compiler driver (`clang`) ? Frontend driver (`clang -cc1`)? If it refers to 
libclangDriver in general, then everything in `Options.td` is a driver flag by 
default (i.e. it belongs to the library the implements the compiler driver 
API). Also, based on the current usage and feedback from [1]:

> It served two purposes (1) (@awarzynski: No longer applies) (2) whether an 
> option should be forwarded for -Xarch -Xarch_host -Xarch_device (macOS and 
> CUDA use cases)

I feel that `DriverOption` is currently too generic.

3
-

In D89799#2344672 <https://reviews.llvm.org/D89799#2344672>, @yaxunl wrote:

> Then some toolchains use this flag as a heuristic not to use options with 
> this flag with -Xarch. For that purpose it is too broad as many options with 
> this flag can be used with -Xarch.

Isn't there a more broader problem with various flags being used incorrectly in 
Options.td? I would love to help improving that, but I'm new to this codebase. 
Are there any heuristics that I could use to guide me in that? For example - 
how do I decide where to delete `DriverOption` from?
Btw, are you suggesting that this change will be incompatible with some 
downstream projects?

4
-

In D89799#2344672 <https://reviews.llvm.org/D89799#2344672>, @yaxunl wrote:

> So the question is: Is there any value to keep the original intention of this 
> flag, i.e. mark some options as driver options without enforcing it? Or do we 
> want to add assertions or warnings in clang -cc1 to check if driver options 
> are passed to FE?

Isn't this already enforced in `ToolChain::TranslateXarchArgs` (via the 
diagnostic)? That's the only place where `DriverOption` is currently used.  
Also, FE?

Thank you for reviewing!
[1] http://lists.llvm.org/pipermail/cfe-dev/2020-October/067023.html


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D89799

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

Reply via email to