Consider: int foo (int *p) { *p = 0; return *p; }
Here is what I get after store_ccp (with -fno-tree-dominator-opts) foo (p) { int D.1233; <bb 0>: # TMT.0_5 = V_MAY_DEF <TMT.0_4>; *p_1 = 0; # VUSE <TMT.0_5>; D.1233_2 = *p_1; return D.1233_2; } Note that the return statement isn't changed to "return 0;". -- Summary: store_ccp doesn't see through a store. Product: gcc Version: unknown Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kazu at cs dot umass dot edu CC: dnovillo at redhat dot com,gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21574