[Bug tree-optimization/42586] SRA does not always work

2010-01-02 Thread pinskia at gcc dot gnu dot org
--- Comment #6 from pinskia at gcc dot gnu dot org 2010-01-03 06:38 --- I think if we get the old SRA behavior back for this code, we will get this optimization in 4.5 since we remove the sptr->base and the other unnecessary store during PRE. -- http://gcc.gnu.org/bugzilla/show_bug.

[Bug tree-optimization/42586] SRA does not always work

2010-01-02 Thread pinskia at gcc dot gnu dot org
--- Comment #5 from pinskia at gcc dot gnu dot org 2010-01-03 06:35 --- 4.5 has: _T2 = *sptr_1(D); _T2$curr_14 = sptr_1(D)->curr; _ans = _T2; D.2697_7 = _T2$curr_14 + -1; *sptr_1(D) = _ans; sptr_1(D)->curr = D.2697_7; While 4.4 does: _T2$base = sptr->base; D.1587 = sptr-

[Bug tree-optimization/42586] SRA does not always work

2010-01-02 Thread pinskia at gcc dot gnu dot org
--- Comment #4 from pinskia at gcc dot gnu dot org 2010-01-03 06:33 --- Hmm, 4.5 is worse off than 4.4 with respect of the stack space usage. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added ---

[Bug tree-optimization/42586] SRA does not always work

2010-01-02 Thread pinskia at gcc dot gnu dot org
--- Comment #3 from pinskia at gcc dot gnu dot org 2010-01-03 06:30 --- Oh in fact I think the reason is the SRA issue. In that: int Cyc_string_ungetc (int ignore, struct _fat_ptr *sptr) { sptr->curr += 4294967295U; } Works. -- pinskia at gcc dot gnu dot org changed: W