[PATCH] D137623: [Hexagon] Use default attributes for intrinsics

Krzysztof Parzyszek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 12 08:44:56 PST 2022


kparzysz added a comment.

The problem is unrelated to this patch.

In this function we have variable stack object (the presence of `alloca` is treated as such even though the size here is 0), and the required stack alignment is greater than the default 8.  We do reserve an emergency spill slot for an HVX register, but we make it unaligned (i.e. aligned to 8 bytes) to make sure we can reach it via FP.  When the scavenger is looking for emergency spill slot, it ignores those whose alignment is less than `getSpillAlignment`, thus ignoring the spill slot we've reserved.

The least invasive thing to do would be to implement `HexagonRegisterInfo::saveScavengerRegister`, and find an unused spill slot.  The downside is that it would require some analysis to determine which slots are free to use.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D137623



More information about the llvm-commits mailing list