================ @@ -324,14 +326,15 @@ MaybeAlign getAlign(const Function &F, unsigned Index) { F.getAttributes().getAttributes(Index).getStackAlignment()) return StackAlign; - // If that is missing, check the legacy nvvm metadata - std::vector<unsigned> Vs; - bool retval = findAllNVVMAnnotation(&F, "align", Vs); - if (!retval) - return std::nullopt; - for (unsigned V : Vs) - if ((V >> 16) == Index) - return Align(V & 0xFFFF); + // check the legacy nvvm metadata only for the return value since llvm does + // not support stackalign attribute for this. + if (Index == 0) { + std::vector<unsigned> Vs; + if (findAllNVVMAnnotation(&F, "align", Vs)) ---------------- Artem-B wrote:
Offtopic: I think if `findAllNVVMAnnotation()` returned `ArrayRef` it would work much nicer than copying data into a temp array. ``` if (Index == 0) { for (unsigned V : findAllNVVMAnnotation()) do stuff; } ``` https://github.com/llvm/llvm-project/pull/119261 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits