[dataflow] partial register handling
Paolo Bonzini
paolo.bonzini@lu.unisi.ch
Fri May 25 16:47:00 GMT 2007
> But I don't think that's enough, with the current loop it would strip the
> subreg of a multiword subreg and there is some logic in df_ref_record,
> which wouldn't see it. An alternative might be:
>
> while (GET_CODE (dst) == STRICT_LOW_PART
> || GET_CODE (dst) == ZERO_EXTRACT)
> {
> flags |= DF_REF_READ_WRITE | DF_REF_PARTIAL;
> loc = &XEXP (dst, 0);
> dst = *loc;
> }
>
> if (df_read_modify_subreg_p (dst))
> flags |= DF_REF_READ_WRITE | DF_REF_PARTIAL;
>
> That would only leave singleword subreg and paradoxical subreg, if they
> should require anything.
This seems also correct, if you want to test it.
> One could also restrict STRICT_LOW_PART to subregs, as after reload the
> subreg part is usually gone.
No, a strict_low_part of a reg is also a partial set.
Paolo
More information about the Gcc
mailing list