Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CIR][CodeGen][NFCI] Target-independent ABI handling for SpirKernel call conv #778

Merged
merged 1 commit into from
Aug 8, 2024

Conversation

seven-mile
Copy link
Collaborator

This PR follows OG CodeGen to use SPIR ABI info whatever the target is when analysing the function info of SPIR-V kernels (identified by its calling convention).

For example, when compiling OpenCL kernels to x86-64 target, the kernel should still use SPIR-V's ABIInfo.

As we haven't implemented SPIR-V ABI handling for complex constructs, there should be no functional changes. There is a test for this logic in OG CodeGen: clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl. It mainly involves structs, which is beyond the progress of CIR ABI stuff.

@@ -743,6 +743,10 @@ mlir::Type CIRGenTypes::ConvertType(QualType T) {
return ResultType;
}

namespace cir {
void computeSPIRKernelABIInfo(CIRGenModule &CGM, CIRGenFunctionInfo &FI);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be in the appropriated header, not here.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure! Referencing it from TargetInfo.h now.

@seven-mile seven-mile force-pushed the target-indie-spirv-kernel-abi branch from c6d0f3a to 5fdef60 Compare August 8, 2024 15:30
@bcardosolopes bcardosolopes merged commit 66fe871 into llvm:main Aug 8, 2024
6 checks passed
Hugobros3 pushed a commit to shady-gang/clangir that referenced this pull request Oct 2, 2024
…all conv (llvm#778)

This PR follows OG CodeGen to use SPIR ABI info whatever the target is
when analysing the function info of SPIR-V kernels (identified by its
calling convention).

For example, when compiling OpenCL kernels to x86-64 target, the kernel
should still use SPIR-V's ABIInfo.

As we haven't implemented SPIR-V ABI handling for complex constructs,
there should be no functional changes. There is a test for this logic in
OG CodeGen:
`clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl`. It mainly
involves structs, which is beyond the progress of CIR ABI stuff.
smeenai pushed a commit to smeenai/clangir that referenced this pull request Oct 9, 2024
…all conv (llvm#778)

This PR follows OG CodeGen to use SPIR ABI info whatever the target is
when analysing the function info of SPIR-V kernels (identified by its
calling convention).

For example, when compiling OpenCL kernels to x86-64 target, the kernel
should still use SPIR-V's ABIInfo.

As we haven't implemented SPIR-V ABI handling for complex constructs,
there should be no functional changes. There is a test for this logic in
OG CodeGen:
`clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl`. It mainly
involves structs, which is beyond the progress of CIR ABI stuff.
smeenai pushed a commit to smeenai/clangir that referenced this pull request Oct 9, 2024
…all conv (llvm#778)

This PR follows OG CodeGen to use SPIR ABI info whatever the target is
when analysing the function info of SPIR-V kernels (identified by its
calling convention).

For example, when compiling OpenCL kernels to x86-64 target, the kernel
should still use SPIR-V's ABIInfo.

As we haven't implemented SPIR-V ABI handling for complex constructs,
there should be no functional changes. There is a test for this logic in
OG CodeGen:
`clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl`. It mainly
involves structs, which is beyond the progress of CIR ABI stuff.
keryell pushed a commit to keryell/clangir that referenced this pull request Oct 19, 2024
…all conv (llvm#778)

This PR follows OG CodeGen to use SPIR ABI info whatever the target is
when analysing the function info of SPIR-V kernels (identified by its
calling convention).

For example, when compiling OpenCL kernels to x86-64 target, the kernel
should still use SPIR-V's ABIInfo.

As we haven't implemented SPIR-V ABI handling for complex constructs,
there should be no functional changes. There is a test for this logic in
OG CodeGen:
`clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl`. It mainly
involves structs, which is beyond the progress of CIR ABI stuff.
lanza pushed a commit that referenced this pull request Nov 5, 2024
…all conv (#778)

This PR follows OG CodeGen to use SPIR ABI info whatever the target is
when analysing the function info of SPIR-V kernels (identified by its
calling convention).

For example, when compiling OpenCL kernels to x86-64 target, the kernel
should still use SPIR-V's ABIInfo.

As we haven't implemented SPIR-V ABI handling for complex constructs,
there should be no functional changes. There is a test for this logic in
OG CodeGen:
`clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl`. It mainly
involves structs, which is beyond the progress of CIR ABI stuff.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants