How to debug ssa optimizer

Andrew Pinski pinskia@physics.uc.edu
Sun Jun 20 02:10:00 GMT 2004


> 
>     If it's not a new statement being added, and just an existing
>     statement being modified, you can conditional breakpoint modify_stmt
>     with that statement address.  That will catch every time it gets
>     marked as modified.
> 
> I'm missing something.  With an RTL dump, I see the INSN_UID for every
> insn in the dump.  So I can set a conditional breakpoint testing for
> the UID.
> 
> Here's a excerpt from c-cppbuiltin.i.t27.tailr:
> 
>   # v_30 = PHI <&version_string(0), v_3594(1)>;
> <L2>:;
>   T.211_707 = *v_30;
>   if (T.211_707 == 0) goto <L4>; else goto <L3>;
> 
> ... and from the corresponding .t28.ch:
> 
> <L191>:;
>   v_386 = &version_string;
>   T.211_530 = *v_386;
>   if (T.211_530 == 0) goto <L4>; else goto <L3>;
> 
> That's not a valid transformation.  version_string is an array and
> v is char *.  This is coming back into a tree as a block move MODIFY_EXPR
> with different types on both sides.

hmm, &array_type is really the same type as pointer_type so how is this not
valid?

Thanks,
Andrew Pinski



More information about the Gcc mailing list