This is the mail archive of the gcc-patches@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]

Re: [PATCH] [MSP430] Fix gcc.dg/pr85180.c and gcc.dg/pr87985.c timeouts for msp430-elf -mlarge


On Tue, 18 Dec 2018 03:08:51 -0600
Segher Boessenkool <segher@kernel.crashing.org> wrote:

> Hi!
> 
> On Fri, Dec 14, 2018 at 03:22:13PM +0000, Jozef Lawrynowicz wrote:
> > 2018-12-14  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
> > 
> > 	gcc/ChangeLog:
> > 	* combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits
> > 	of src in nonzero_bits_mode if the mode of src is MODE_INT and
> > 	HWI_COMPUTABLE.
> > 	(reg_nonzero_bits_for_combine): Add clarification to comment.  
> 
> Is there some PR this fixes?

No not for this one, I just spotted the timeouts in the GCC testsuite.

> > 
> > diff --git a/gcc/combine.c b/gcc/combine.c
> > index 7e61139..c93aaed 100644
> > --- a/gcc/combine.c
> > +++ b/gcc/combine.c
> > @@ -1698,9 +1698,13 @@ update_rsp_from_reg_equal (reg_stat_type *rsp, rtx_insn *insn, const_rtx set,
> >    /* Don't call nonzero_bits if it cannot change anything.  */
> >    if (rsp->nonzero_bits != HOST_WIDE_INT_M1U)
> >      {
> > -      bits = nonzero_bits (src, nonzero_bits_mode);
> > +      machine_mode mode = GET_MODE (x);
> > +      if (GET_MODE_CLASS (mode) == MODE_INT
> > +	  && HWI_COMPUTABLE_MODE_P (mode))
> > +	mode = nonzero_bits_mode;
> > +      bits = nonzero_bits (src, mode);
> >        if (reg_equal && bits)
> > -	bits &= nonzero_bits (reg_equal, nonzero_bits_mode);
> > +	bits &= nonzero_bits (reg_equal, mode);
> >        rsp->nonzero_bits |= bits;
> >      }
> >  
> > @@ -10224,6 +10228,7 @@ simplify_and_const_int (rtx x, scalar_int_mode mode, rtx varop,
> >  
> >  /* Given a REG X of mode XMODE, compute which bits in X can be nonzero.
> >     We don't care about bits outside of those defined in MODE.
> > +   We DO care about all the bits in MODE, even if XMODE is smaller than MODE.
> >  
> >     For most X this is simply GET_MODE_MASK (GET_MODE (MODE)), but if X is
> >     a shift, AND, or zero_extract, we can do better.  */  
> 
> I think this is okay for trunk, and for backports after waiting a week
> or so for fallout.  Thanks!

Thanks, applied to trunk.

Jozef


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