https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78812
--- Comment #14 from Jeffrey A. Law <law at gcc dot gnu.org> --- Author: law Date: Thu Jan 5 07:38:48 2017 New Revision: 244093 URL: https://gcc.gnu.org/viewcvs?rev=244093&root=gcc&view=rev Log: PR tree-optimizatin/78812 * rtl.h (contains_mem_rtx_p): Prototype. * ifcvt.c (containts_mem_rtx_p): Move from here to... * rtlanal.c (contains_mem_rtx_p): Here and remvoe static linkage. * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs. PR tree-optimization/78812 * g++.dg/torture/pr78812.C: New test. Added: trunk/gcc/testsuite/g++.dg/torture/pr78812.C Modified: trunk/gcc/ChangeLog trunk/gcc/gcse.c trunk/gcc/ifcvt.c trunk/gcc/rtl.h trunk/gcc/rtlanal.c trunk/gcc/testsuite/ChangeLog