[PATCH] D27529: Correct Vectorcall Register passing and HVA Behavior
David Majnemer via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 7 12:13:44 PST 2016
majnemer added inline comments.
================
Comment at: lib/CodeGen/TargetInfo.cpp:1688
+ for (auto &I : FI.arguments()) {
+ if(Count < 6)
+ I.info = reclassifyHvaArgType(I.type, State, I.info);
----------------
Formatting.
================
Comment at: lib/CodeGen/TargetInfo.cpp:3799-3804
+ } else if (IsReturnType)
+ return ABIArgInfo::getExpand();
+ else if (!Ty->isBuiltinType() && !Ty->isVectorType())
+ // HVAs are delayed and reclassified in the 2nd step.
+ return ABIArgInfo::getIndirect(Align, /*ByVal=*/false);
}
----------------
Please consistently brace here.
================
Comment at: lib/CodeGen/TargetInfo.cpp:3871
+ for (auto &I : FI.arguments()) {
+ if (Count < 6)
+ I.info = classify(I.type, FreeSSERegs, false, IsVectorCall, IsRegCall);
----------------
majnemer wrote:
> And here,
I was OK with `6` showing up in prior code because there was a comment but there isn't such a comment down here. Maybe we should have this `6` live in an enum?
================
Comment at: lib/CodeGen/TargetInfo.cpp:3871-3879
+ if (Count < 6)
+ I.info = classify(I.type, FreeSSERegs, false, IsVectorCall, IsRegCall);
+ else {
+ // Since these cannot be passed in registers, pretend no registers
+ // are left.
+ unsigned ZeroSSERegsAvail= 0;
+ I.info = classify(I.type, /*FreeSSERegs=*/ZeroSSERegsAvail, false,
----------------
And here,
https://reviews.llvm.org/D27529
More information about the cfe-commits
mailing list