Hi, The patch enhance prepare_shrink_wrap by doing copyprop for the entry block. This exposes more opportunities for shrink-wrapping. These kinds of copies often occur when incoming argument registers are moved to call-saved registers because their values are live across one or more calls during the function. * For SPECint2000 (-O3), the number of functions, which can be shrink-wrapped, increase from 197 to 364 on ARM and from 364 to 618 on X86-64 with the patch. * No SPECint2000 performance regression for X86-64 and ARM. * On X86-64 (-O3), 253.perlbmk is ~3% better. * On ARM (A15, -O3), 453.povray is ~5% better. * Bootstrapped and no make check regression for X86-64 and ARM A9. Is it OK for trunk? Thanks! -Zhenqiang ChangeLog: 2013-06-06 Zhenqiang Chen * function.c (prepare_shrink_wrap): Do copy prop for entry block. * function.h (copyprop_hardreg_forward_blocks): New. * regcprop.c (copyprop_hardreg_forward_blocks): New. (copyprop_hardreg_forward): Call copyprop_hardreg_forward_blocks.