This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to debug ssa optimizer


> 
>     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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]