This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/23560] [4.0 Regression] Strength-reduction breaking unsigned COMPARE


------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]