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: post-reload register copy-propagation


Richard Henderson wrote:

>+ static void
>+ kill_set_value (x, set, data)
>+      rtx x;
>+      rtx set;
>+      void *data;
>+ {
>+   struct value_data *vd = data;
>+   if (GET_CODE (set) != CLOBBER && REG_P (x))
>+     {
>+       unsigned int regno = REGNO (x);
>+       kill_value_regno (regno, vd);
>+       vd->e[regno].mode = GET_MODE (x);
>+     }
>+ }

Shouldn't this care about multi-word regs?

I have a test case where reg:SI 2 and reg:SI 3 are set,
then an operation is performed on reg:DI 2, and later
reg:SI 2 and reg:SI 3 are being used individually again.

The copy-propagation pass doesn't notice that the reg:DI 2
operation modifies reg:SI 3 ...


Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  Linux for S/390 Design & Development
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
  Phone: +49-7031/16-3727   ---   Email: 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]