-
Notifications
You must be signed in to change notification settings - Fork 168
[CIR][Lowering][x86_64] Initial VAArg support #1086
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
Conversation
✅ With the latest revision this PR passed the C/C++ code formatter. |
94a5b92
to
56413e1
Compare
56413e1
to
d2bccf7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly good, pending one question
@@ -1,7 +1,5 @@ | |||
// RUN: %clang_cc1 -triple aarch64-none-linux-android21 -fclangir -emit-cir %s -o %t.cir | |||
// RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s | |||
// RUN: %clang_cc1 -triple aarch64-none-linux-android21 -fclangir -emit-llvm -fno-clangir-call-conv-lowering %s -o %t.ll | |||
// RUN: FileCheck --check-prefix=LLVM --input-file=%t.ll %s |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't want to loose the LLVM testing here, even though it might be wrong in the ABI sense for AArch64, it's still testing some important parts. Can you elaborate on why are you remove this? Should this be moved elsewhere instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, this is a surprise to me too. My bad. I should check the PR. BTW, I like to close this one and create a new one to make the stacked PR for #1087
Close to create stacked PR |
This patch implements transformations for VAArg in X86_64 ABI in shape.
In shape
means it can't work properly due to the dependent X86_64 ABI is not robust. e.g., when we want to use VAArg withlong double
, we need #1087.This patch literally implement https://github.com/llvm/llvm-project/blob/d233fedfb0de882353c348cd1ac57dab619efa6d/clang/lib/CodeGen/Targets/X86.cpp#L3015-L3240 in CIR.
There some differences due to the traditional pipeline are converting AST to LLVM and we're transforming CIR to CIR. And also to get the ABI Info, I moved
X86_64ABIInfo
to the header.