[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