https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114704
Bug ID: 114704 Summary: Missed optimization : eliminate store if the value is known in all predecessors Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: xxs_chy at outlook dot com Target Milestone: --- Godbolt link: https://godbolt.org/z/KEeGTM49E For code like: ``` void src(int *p){ if(*p == 0) goto then; else { dummy(); if(*p == 0) goto then; else return; } then: *p = 0; // *p is already 0, it's dead now } ``` In then basic block, *p is known to be 0 in all predecessors, thus the store "*p = 0" is redundant.