[llvm] [AArch64][GlobalISel] Fast-path simple common calls (NFC) (PR #217615)

Nathan Corbyn via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 25 08:57:58 PDT 2026


================
@@ -1444,7 +1497,10 @@ bool AArch64CallLowering::lowerCall(MachineIRBuilder &MIRBuilder,
                                         Subtarget, /*IsReturn*/ false);
   // Do the actual argument marshalling.
   OutgoingArgHandler Handler(MIRBuilder, MRI, MIB, /*IsReturn*/ false);
-  if (!determineAndHandleAssignments(Handler, Assigner, OutArgs, MIRBuilder,
+  bool AssignedCallArgs = Info.CallConv == CallingConv::C &&
+                          tryAssignSimpleGPRCallArgs(MIRBuilder, MIB, OutArgs);
+  if (!AssignedCallArgs &&
+      !determineAndHandleAssignments(Handler, Assigner, OutArgs, MIRBuilder,
                                      Info.CallConv, Info.IsVarArg))
----------------
cofibrant wrote:

Would it make sense for this little piece of logic to live at the head of `determineAndHandleAssignments` so that any future call sites don't need to remember to add a fast path and we don't need to remember to keep the existing call sites in sink 

https://github.com/llvm/llvm-project/pull/217615


More information about the llvm-commits mailing list