-
Notifications
You must be signed in to change notification settings - Fork 124
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][ABI] Add unsigned int CC lowering for x86_64 #701
[CIR][ABI] Add unsigned int CC lowering for x86_64 #701
Conversation
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.
Few minor comments and you still need to fix a failing test, other than that should be good.
How does this fits with the plan we discussed about incremental support already as part of the oficial pipeline? Can you please outline the plan?
@@ -150,6 +162,17 @@ class ABIArgInfo { | |||
AI.setSignExt(false); | |||
return AI; | |||
} | |||
static ABIArgInfo getZeroExtend(mlir::Type Ty, mlir::Type T = nullptr) { | |||
// NOTE(cir): Enumerations are IntTypes in CIR. |
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.
IntTypes or BoolTy
?
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.
IntType
s
clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRLowerContext.cpp
Outdated
Show resolved
Hide resolved
Adds the necessary bits to lower arguments and return values of type unsigned int for the x86_64 target. This includes adding logic for extend and direct argument-passing types.
92b5444
to
af736d1
Compare
af736d1
to
84a0fe2
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.
@bcardosolopes applied.
How does this fits with the plan we discussed about incremental support already as part of the oficial pipeline? Can you please outline the plan?
I backtracked to the original plan: implement the basics CC lowering bits first, then flip the -fclangir-call-conv-lowering
flag.
Moving this pass into the official pipeline in its current state requires too many logical changes just for the code to work, changes that would later have to be reverted.
@@ -150,6 +162,17 @@ class ABIArgInfo { | |||
AI.setSignExt(false); | |||
return AI; | |||
} | |||
static ABIArgInfo getZeroExtend(mlir::Type Ty, mlir::Type T = nullptr) { | |||
// NOTE(cir): Enumerations are IntTypes in CIR. |
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.
IntType
s
Adds the necessary bits to lower arguments and return values of type unsigned int for the x86_64 target. This includes adding logic for extend and direct argument-passing kinds.
Adds the necessary bits to lower arguments and return values of type unsigned int for the x86_64 target. This includes adding logic for extend and direct argument-passing kinds.
Adds the necessary bits to lower arguments and return values of type unsigned int for the x86_64 target. This includes adding logic for extend and direct argument-passing kinds.
Adds the necessary bits to lower arguments and return values of type unsigned int for the x86_64 target. This includes adding logic for extend and direct argument-passing kinds.
Adds the necessary bits to lower arguments and return values of type unsigned int for the x86_64 target. This includes adding logic for extend and direct argument-passing kinds.
Adds the necessary bits to lower arguments and return values of type unsigned int for the x86_64 target. This includes adding logic for extend and direct argument-passing kinds.