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.

I want to breakpoint at the place that does that transformation, but
all I have is what's in the dump.

How do I set the breakpoint to find who's doing this?


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