This is part of a series to remove uses of for_each_rtx from the ports. Tested by making sure there were no code changes for gcc.dg, gcc.c-torture and g++.dg for sh-elf. OK to install?
Thanks, Richard gcc/ * config/sh/sh.c (sh_contains_memref_p_1): Delete. (sh_contains_memref_p): Use FOR_EACH_SUBRTX. Index: gcc/config/sh/sh.c =================================================================== --- gcc/config/sh/sh.c 2014-10-25 09:51:27.049897841 +0100 +++ gcc/config/sh/sh.c 2014-10-25 09:51:27.492901789 +0100 @@ -12972,18 +12972,15 @@ shmedia_cleanup_truncate (rtx x) so we must look at the rtl ourselves to see if any of the feeding registers is used in a memref. - Called by sh_contains_memref_p via for_each_rtx. */ -static int -sh_contains_memref_p_1 (rtx *loc, void *data ATTRIBUTE_UNUSED) -{ - return (MEM_P (*loc)); -} - -/* Return true iff INSN contains a MEM. */ + Return true iff INSN contains a MEM. */ bool sh_contains_memref_p (rtx insn) { - return for_each_rtx (&PATTERN (insn), &sh_contains_memref_p_1, NULL); + subrtx_iterator::array_type array; + FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST) + if (MEM_P (*iter)) + return true; + return false; } /* Return true iff INSN loads a banked register. */