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/32790] REG_N_SETS holds wrong value



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


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