[PATCH] D142963: [AArch64] Handle negative architecture features

Andrew Kelley via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 31 12:12:14 PST 2023


andrewrk accepted this revision.
andrewrk added a comment.
This revision is now accepted and ready to land.

In D142963#4093094 <https://reviews.llvm.org/D142963#4093094>, @tmatheson wrote:

> It looks like this has these odd behaviours:
>
> - `-target-feature +v9.3a -target-feature -v9.2a` will remove `v9.2a` but add all the dependent features of both `v9.3a` and `v9.2a`. It also doesn't remove `v9.3a` which implies `v9.2a`.
> - `-target-feature -v9.2a -target-feature +v9.3a` will add the `v9.2a` back, and also add all the dependent features of both `v9.3a` and `v9.2a`.
> - `-target-feature +v9.3a -target-feature -v9.3a` will remove `v9.3a` but add all the dependent features of `v9.3a`.
>
> This seems like a bit of a minefield. Is there even a use case for negative architectural features?

Speaking as the one who filed the motivating bug report, all of the above behaviors are fine. The motivating use case is explicitly specifying a //full set// of enabled/disabled features, leaving nothing changed by LLVM's own dependency resolution. In this use case, LLVM would never see any of these three scenarios as input.


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

https://reviews.llvm.org/D142963



More information about the llvm-commits mailing list