RFC: Removal of armv2/2A/3/3M target options

Arm architectures prior to v4 are not well supported by codegen, in some cases not at all (as noted in llvm does not actually support armv2 or armv3 · Issue #57486 · llvm/llvm-project · GitHub).

I propose to remove options to target them (⚙ D133109 [LLVM][ARM] Remove options for armv2, 2A, 3 and 3M) and am posting this on the slim chance that some project out there is using -march=armv2 etc. with clang and just happens to have not hit a codegen issue doing so.

Is anyone aware of a project that is currently doing that?

I know that there is a Linux kernel build but that is only enabled for GCC and even then, GCC < 9.

The existence of such projects will likely not block removing the options, but a heads up seems like the responsible thing to do (and there will be a release note of course, so it won’t be a hidden change anyway).

There’s no rush to land this so I’ll wait until Thursday next week and go ahead if there’s no objections.

1 Like

Thanks for the heads up, I did not get the notification from Phab. Perhaps I need to fix my herald rules.

There’s no point in supporting pre-v4 in a modern compiler.

This change has now landed: rGe428baf0019e

1 Like