On Mon, 23 Oct 2023 12:16:18 +0530 Ajit Agarwal <aagar...@linux.ibm.com> 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