================ @@ -1012,25 +1014,37 @@ bool AArch64CallLowering::isEligibleForTailCallOptimization( } static unsigned getCallOpcode(const MachineFunction &CallerF, bool IsIndirect, - bool IsTailCall) { + bool IsTailCall, + std::optional<CallLowering::PointerAuthInfo> &PAI, + MachineRegisterInfo &MRI) { const AArch64FunctionInfo *FuncInfo = CallerF.getInfo<AArch64FunctionInfo>(); - if (!IsTailCall) - return IsIndirect ? getBLRCallOpcode(CallerF) : (unsigned)AArch64::BL; + if (!IsTailCall) { + if (!PAI) + return IsIndirect ? getBLRCallOpcode(CallerF) : (unsigned)AArch64::BL; ---------------- kovdan01 wrote:
Explicit cast to `unsigned` does not look necessary - the `AArch64::BL` is an unscoped enum with no explicit underlying type set, and the value would be casted to the function return type `unsigned` w/o the explicit cast. If there is some strong reason to have this explicit cast (please let me know if so), it should also be used below for `return AArch64::BLRA;` to keep things consistent. https://github.com/llvm/llvm-project/pull/85736 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits