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] Fix PR middle-end/28690, indexed load/store performance + reload bug


Peter Bergner wrote:

> > The solution would return an insn containing only the
> >             (set (reg/f:SI 9 9 [orig:124 D.966 ] [124])
> >                 (plus:SI (reg/f:SI 1 1)
> >                     (const_int 8 [0x8])))
> > part, which would subsequently cause an addi instruction to be
> > generated.  Since there isn't any match_dup any more, that failure
> > mode cannot apply any longer.
> 
> Ok, sounds good to me.  Do you have a recommendation on how we can
> achieve that?

Merge the two branches of the "if" into something like:

   if (offset == 0 || plus_src)
    {
      ... modeled after the current offset == 0 case, except
      for replacing to_rtx with plus_constant (to_rtx, offset)
      in this line:

		PATTERN (insn) = gen_rtx_SET (VOIDmode,
                                              SET_DEST (old_set),
                                              to_rtx);

    }
   else
     break;

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


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