This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: post-reload register copy-propagation
- From: "Ulrich Weigand" <Ulrich dot Weigand at de dot ibm dot com>
- To: rth at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 13 Dec 2001 22:21:49 +0100
- Subject: 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