Add fatal error when running out of registers for SVE tuple call arguments
When passing SVE types as arguments to function calls we can run out of hardware SVE registers. This is normally fine, since we switch to an indirect mode where we pass a pointer to a SVE stack object in a GPR. However, if we switch over part-way through processing a SVE tuple then part of it will be in registers and the other part will be on the stack. This is wrong and we'd like to avoid any silent ABI compatibility issues in future. For now, I've added a fatal error when this happens until we can get a proper fix. NOTE: Cherry-pick contains changes to remove redundant operand from min/max tests in 'llvm-ir-to-intrinsic.ll', which weren't originally part of this patch since they were removed in D85142 before this landed, but they fail otherwise. Differential Revision: https://reviews.llvm.org/D89326 (cherry picked from commit af57a083)
Loading
Please sign in to comment