jyknight added a comment.

In D124435#3697259 <https://reviews.llvm.org/D124435#3697259>, @rjmccall wrote:

> I know what you're saying, but I don't think it matches any model of how 
> programmers use command line flags.  You're imagining that a programmer sits 
> down and considers all of their flags deeply and holistically before touching 
> any of them, and that's just not how these things go in actual build systems. 
>  Flags have a tendency to be set in separate places and therefore to drift.  
> Someone setting this option is doing it because they have a concrete 
> compatibility need, and the flag going from meaning "be compatible with GCC" 
> to meaning "be compatible with old Clangs" based on the value of a separate 
> flag is surprising and likely to cause bugs.

Funny, my argument is based precisely on the fact that people _don't_ 
understand deeply what things are doing, and that the original proposal is 
likely to trigger bugs via mistakes in its usage!

The default (`-mconservative-small-integer-abi`) is "be compatible with all 
Clang and GCC versions" -- it "just works". (I think everyone agrees upon that 
being the default.)

So, the use-case for `-mconservative-small-integer-abi` is not a need for 
compatibility but rather a need for performance/code-size overriding 
cross-compiler compatibility concerns. In that case, the user better be able to 
answer "what other compiler/version do you need to be compatible with, if any?" 
-- and set -fclang-abi-compat flag appropriately based on that answer.

That seems much easier thing to explain to a user than the details of where 
exactly extension may/must happen in the call ABI.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D124435

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

Reply via email to