[Bug rtl-optimization/32790] REG_N_SETS holds wrong value
georgjohann at web dot de
gcc-bugzilla@gcc.gnu.org
Tue Jul 17 11:13:00 GMT 2007
------- Comment #2 from georgjohann at web dot de 2007-07-17 11:13 -------
(In reply to comment #1)
>
> This comes from the begining of time :).
> ZERO_EXTRACT has been there since the begining of time also:
> 70 kenner DEF_RTL_EXPR(ZERO_EXTRACT, "zero_extract", "eee", 'b')
>
So what is the conclusion...?
At least the following backends implement "insv" as
(define_*** "insv"
[(set (zero_extract (match_operand 0 ...
with a predicate that allows registers:
i386, pa, sh, c4x, arm, vax, ia64, m68k, ip2k, ns32k, rs6000, h8300, mcore
Uses of REG_N_SETS(*) are spread all over the RTL passes and many of them rely
on REG_N_SETS(*) == 1 etc.
If such a condition holds but is incorrect because (set (zero_extract is
ignored that may lead to a bug in the output, e.g. due to a wrong replacement.
--
georgjohann at web dot de changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |minor
Version|4.3.0 |unknown
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32790
More information about the Gcc-bugs
mailing list