This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/23560] [4.0 Regression] Strength-reduction breaking unsigned COMPARE
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Aug 2005 14:37:20 -0000
- Subject: [Bug rtl-optimization/23560] [4.0 Regression] Strength-reduction breaking unsigned COMPARE
- References: <20050825135533.23560.jakub@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From jakub at gcc dot gnu dot org 2005-08-25 14:37 -------
This doesn't happen on HEAD, where only mult_val (4) add_val (rta+28) giv is
seen by maybe_eliminate_biv_1 <case COMPARE>. But on 4.0 branch, there is
both that giv and mult_val (4) add_val (rta) one, which satisfies the
|| (REG_P (v->add_val)
&& REG_POINTER (v->add_val)))
condition. Now, for GTU/GEU/LTU/LEU codes we can easily avoid the elimination
if the constant arg would need to change, but for COMPARE we'd, I'm afraid,
need to do some simple life analysis to find out if the CC code might be used
in GTU/GEU/LTU/LEU in order not to shot down that optimization completely.
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |rth at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23560