On Mon, 23 Oct 2023 12:16:18 +0530
Ajit Agarwal <[email protected]> wrote:
> Hello All:
>
> Addressed below review comments in the version 11 of the patch.
> Please review and please let me know if its ok for trunk.
s/satisified/satisfied/
> > As said, I don't see why the below was not cleaned up before the V1
> > submission.
> > Iff it breaks when manually CSEing, I'm curious why?
The function below looks identical in v12 of the patch.
Why didn't you use common subexpressions?
> >
> >>> +/* Return TRUE if reg source operand of zero_extend is argument registers
> >>> + and not return registers and source and destination operand are same
> >>> + and mode of source and destination operand are not same. */
> >>> +
> >>> +static bool
> >>> +abi_extension_candidate_p (rtx_insn *insn)
> >>> +{
> >>> + rtx set = single_set (insn);
> >>> + machine_mode dst_mode = GET_MODE (SET_DEST (set));
> >>> + rtx orig_src = XEXP (SET_SRC (set), 0);
> >>> +
> >>> + if (!FUNCTION_ARG_REGNO_P (REGNO (orig_src))
> >>> + || abi_extension_candidate_return_reg_p (/*insn,*/ REGNO
> >>> (orig_src)))
> >>> + return false;
> >>> +
> >>> + /* Mode of destination and source should be different. */
> >>> + if (dst_mode == GET_MODE (orig_src))
> >>> + return false;
> >>> +
> >>> + machine_mode mode = GET_MODE (XEXP (SET_SRC (set), 0));
> >>> + bool promote_p = abi_target_promote_function_mode (mode);
> >>> +
> >>> + /* REGNO of source and destination should be same if not
> >>> + promoted. */
> >>> + if (!promote_p && REGNO (SET_DEST (set)) != REGNO (orig_src))
> >>> + return false;
> >>> +
> >>> + return true;
> >>> +}
> >>> +
> >
> > As said, please also rephrase the above (and everything else if it
> > obviously looks akin the above).
thanks