This patch adds type information for SVE ACLE vector types,
by describing them as vectors, with a lower bound of 0, and
an upper bound described by a DWARF expression using the
AArch64 Vector Granule register (VG), which contains the
runtime multiple of 64bit granules in an SVE vector.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/lib/CodeGen/CGDebugInfo.cpp | ||
---|---|---|
755 | I might be misreading the code, but if we're representing svbool_t as a bitmask (which is a good approach IMO), would it be better to pass UnsignedCharTy rather than BoolTy here? It seems odd to represent the type as <vscale x 2> “bools”. |
- Choose unsigned char element type for svbool_t bitpattern.
- Added LLVM test to ensure debug info for the vector type is correctly codegenerated when DISubrange has upper bound instead of count.
clang/lib/CodeGen/CGDebugInfo.cpp | ||
---|---|---|
741 | Yes, that's right. Only svbool_t, i.e. <vscale x 16 x i1> is exposed. | |
755 | You're right, good shout! | |
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp | ||
1428 | Yes it does, thanks for pointing out! |
I guess NumElemsPerVG of a bool vector is always divisible by 8 because we don't expose <vscale x 2 x i1> etc.?