This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/12845] [3.4 Regression] missed jump optimization
- From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Jan 2004 14:45:52 -0000
- Subject: [Bug optimization/12845] [3.4 Regression] missed jump optimization
- References: <20031030183500.12845.danglin@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2004-01-14 14:45 -------
Subject: Re: [3.4 Regression] missed jump optimizatio
> Can you test again, I think this patch fixed it:
> 2004-01-12 Kazu Hirata <kazu@cs.umass.edu>
>
> PR optimization/12508.
> * combine.c (try_combine): Remove a dead set in a parallel
> even if its destination is a subreg.
>
> Revert:
> 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
> * combine.c (simplify_set): Don't move a subreg in SET_SRC to
> SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
The patch didn't fix the problem.
This is a combine problem. Constants are being substituted by combine
without subsequent simplification. It occurs in situations where gcse
doesn't run. It showns up in the g++ compilation of locale-inst.cc
in two routines that use setjmp. This causes gcse to punt.
Roger Sayle is aware of the details and he may have a fix for the
combine problem.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12845