[PATCH] D131547: [Clang][AArch64] Use generic extract/insert vector for svget/svset/svcreate tuples

Sander de Smalen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 18 06:53:33 PDT 2022


sdesmalen added a comment.

Thanks for addressing the comments @CarolineConcatto!

In D131547#3731310 <https://reviews.llvm.org/D131547#3731310>, @dmgreen wrote:

>> Is there a formal requirement that LLVM must remain backward compatible with older LLVM IR (beyond the target-independent parts)?
>
> We have always done it in the past, and I don't see a good reason to change. This change is essentially for llvm 16, so we are talking about any bitcode between when SVE was added and that release. It is hard to tell how people will use bitcode up to that point and if they will expect it to continue working going forward. I think it's simpler to just add the upgrade code, than to try and argue that it is unneeded. But the upgrade code is really needed in D131548 <https://reviews.llvm.org/D131548> (and D131687 <https://reviews.llvm.org/D131687>) where the old intrinsics are being removed.

It seems that the LLVM Developer Policy <https://llvm.org/docs/DeveloperPolicy.html?highlight=backwards#ir-backwards-compatibility> provides better guidance than that.

> Newer releases can ignore features from older releases, but they cannot miscompile them

Removing the intrinsics but not auto-upgrading them would mean that older IR would miscompile (the call to the intrinsic would become an actual function call). This suggests there is no freedom of choice here and we must use AutoUpgrade.



================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:9099
+                                             ArrayRef<Value *> Ops) {
+
+  assert(TypeFlags.isTupleCreate() && "Expects TypleFlag isTupleCreate");
----------------
nit: redundant newline, please remove.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D131547



More information about the cfe-commits mailing list