[PATCH] D99802: [rs4gc] Strip memory related attributes consistently

Serguei Katkov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 13 00:58:36 PDT 2021


skatkov added a comment.

Hi Philip, it seems this change causes functional failure.



================
Comment at: llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2629
 
-  for (auto Attr : {Attribute::NoSync, Attribute::NoFree})
+  for (auto Attr : FnAttrsToStrip)
     F.removeFnAttr(Attr);
----------------
It seems that leads to functional issue.
The problem here is that this function is invoked for any declared function in a module including llvm intrinsics which are not covered by statepoint instruction.

In my failed test it appeared llvm.x86.sse2.cvttsd2si64 and as a result readnone attribute has been cleared from it.

Later it could not find this intrinsic while linking:
Cannot select: intrinsic %llvm.x86.sse2.cvttsd2si64


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99802



More information about the llvm-commits mailing list