[ tree-ssa] PRE problem
law@redhat.com
law@redhat.com
Fri Feb 20 19:07:00 GMT 2004
In message <760713BF-63D0-11D8-ABAD-000A95DA505C@dberlin.org>, Daniel Berlin wr
ites:
>
>On Feb 20, 2004, at 12:44 PM, law@redhat.com wrote:
>
>> (for example, copy propagation when the two objects have different
>> memory tags).
>
>I should also note that if this is true, something else is broken.
No. The RHS & LHS of a copy or PHI node are allowed to have different
memory tags. It's only when you cprop that you have to check the tags.
[ ie, if the tags are not compatible, then you can not copy propagate,
which inherently leaves in a copy in which the RHS & LHS have different
tags. The same is true for a PHI's result and its arguments. ]
>Things appearing on either side of an assignment are supposed to have
>the same memory tag.
>"< dnovillo> DannyB: if we cprop a pointer into another and the two
>pointers have different type tags, we will abort in propagate_copy.
> < DannyB> ie p_19 = <fred, bob>
>13:09 < DannyB> Shouldn't p_19, fred, and bob all have the same memory
>tag?
>13:09 < dnovillo> you mean p, right? yes"
Diego is wrong. Diego is fundamentally wrong.
> The result of a phi, and it's arguments (since they are conditional
>assignments), should have the same memory tag.
No. Wrong.
>In fact, no backwards subst PRE is performing should be between things
>with different memory tags, since it only changes phi results into the
>associated phi argument for that edge.
>This shouldn't ever change the memory tag.
Wrong again.
jeff
More information about the Gcc
mailing list