https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65270
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[5 regression] ICF needs to |issues with merging memory |match TYPE attributes on |accesses from different |memory accesses |code paths --- Comment #25 from Jan Hubicka <hubicka at gcc dot gnu.org> --- I think the ICF wrong code mentioned here should be now all fixed. I did not manage to create a testcase for RESTRICT flag unification, because the RESTRICT flag seems to not be taken into an account when the variable is references thorough pointer to another variable. I think we do have problem with operand_equal_p being used across different contexts in several cases (not only in tree-tail-merge). Perhaps for next stage1 we ought to separate the logic into icf-op class that will have enough flexibility to do the right thing in all cases? (i.e. have valueize hook that can be used by ICF to prove equivalences across classes and in addition to existing operand_equal_p flags it will actually know if it should match memory attributes because the operands come from different code path/broader context). icf-op also should have hash method to produce stable hash so it can be plugged into icf-gimple (that in turn can be plugged into tree-tail-merge).