We don't currently support passing unnamed variadic SVE arguments
so I've added a fatal error if we hit such cases to prevent any
silent ABI issues in future.
Details
Details
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Event Timeline
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
4802 | Does this also report a fatal error if ArgVT is a named argument? i.e. declare i32 @sve_printf(i8*, <vscale x 4 x i32> %v, ...) and then calling with: call i32 (i8*, <vscale x 4 x i32>, ...) @sve_printf(i8* %f, <vscale x 4 x i32> %x) |
Comment Actions
We should have corresponding handling for va_arg. (clang doesn't produce va_arg instructions, but other frontends do.)
Comment Actions
- Added fatal errors on the callee side when one of the variadic arguments is a scalable vector.
Does this also report a fatal error if ArgVT is a named argument?
i.e. declare i32 @sve_printf(i8*, <vscale x 4 x i32> %v, ...) and then calling with: