[ 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