[PATCH] D105067: [SystemZ] Emit .gnu_attribute for an externally visible vector abi.
Jonas Paulsson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 27 08:38:13 PDT 2022
jonpa updated this revision to Diff 463242.
jonpa added a comment.
Patch reworked to support opaque pointers which are now the default and soon mandatory. This was not just a syntactic change, but as far as I understand we have to respect that it is legal to use pointer in any arbitrary way. For example, this program now compiles without warning:
define void @fun(ptr %Src, ptr %Dst) {
%L1 = load <4 x i32>, ptr %Src
store <4 x i32> %L1, ptr %Dst
%L2 = load i32, ptr %Src
store i32 %L2, ptr %Dst
call void %Src()
ret void
}
I have updated the patch according to the conservative assumption that a pointer could always potentially expose the vector ABI. This seems necessary when handling this in the backend at least. This leads to a somewhat more simple handling, but I am not sure if this is acceptable. I guess the only alternative would be to handle everything in the front end instead, where hopefully these things are known. Then again, as I believe we have discussed before, that has the drawback of deciding on this before optimizations have run, which also could mean over-conservative results.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D105067/new/
https://reviews.llvm.org/D105067
Files:
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/SystemZ/systemz-abi-vector2.c
llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
llvm/lib/Target/SystemZ/SystemZAsmPrinter.h
llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-00.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-01.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-02.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-03.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-04.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-05.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-06.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-07.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-08.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-09.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-10.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-11.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-12.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-13.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-14.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-15.ll
llvm/test/CodeGen/SystemZ/vec-abi-gnuattr-16.ll
llvm/test/MC/SystemZ/gnu-attributes.s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D105067.463242.patch
Type: text/x-patch
Size: 21173 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220927/908fee10/attachment.bin>
More information about the llvm-commits
mailing list