[PATCH] D30415: Fix -mno-altivec cannot overwrite -maltivec option

Eric Christopher via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 20 21:58:17 PDT 2017


echristo added a comment.

In https://reviews.llvm.org/D30415#705889, @echristo wrote:

> In https://reviews.llvm.org/D30415#705196, @uweigand wrote:
>
> > In https://reviews.llvm.org/D30415#704761, @echristo wrote:
> >
> > > In https://reviews.llvm.org/D30415#703652, @uweigand wrote:
> > >
> > > > I'm a bit confused by this discussion.  -faltivec and -maltivec are simply aliases, they do exactly the same thing; the clang-internal variable OPT_faltivec indicates the use of either -faltivec or -maltivec.
> > >
> > >
> > > They didn't used to, I arranged it so that they did (technically breaking gcc compatibility) a while ago.
> >
> >
> > Well, mainline GCC doesn't have -faltivec at all and never had, I think this was only an Apple GCC extension ...  Not sure what exactly the semantics of that was.
>
>
> Sure it does and has for years. Check out rs6000/darwin.h :)
>
> FWIW: It turns on maltivec and adds a -include of altivec.h
>
> >>> Or is the suggestion to simply remove the alias -faltivec, and leave -maltivec as-is?  I'd be less opposed to this since it probably breaks fewer users ... but I'm still not quite sure what it actually buys us.   And in any case the patch currently under discussion here would still be necessary then, to fix -maltivec -mno-altivec ...
> >> 
> >> No, remove faltivec and move forward with -maltivec/-mno-altivec but you should be able to remove a lot of the special handling at that point.
> > 
> > I'm still confused as to what exactly you're refering to here.  As far as I can see, every single thing triggered by -faltivec / -maltivec in the compiler frontend would still be needed exactly the same if we only supported the -maltivec option name.  So the only thing we'd save is literally the two lines in include/clang/Driver/Options.td that set up the alias.
> > 
> > Do you have an example of the "special handling" to remove you're thinking of?
>
> Nearly all of the code in lib/Driver/ToolChains/Clang.cpp and lib/Driver/ToolChains/Arch/PPC.cpp that deal with altivec. Simplifying the interface by getting rid of needing to check multiple options.


I have a patch to do this now. I'll plan on committing it in a bit.

-eric


https://reviews.llvm.org/D30415





More information about the cfe-commits mailing list