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]

DCE eliminating valid statement for ACATS c34007p


Here's a fragment of the SSA dump for a shortened version of that
test.


  D.860_8 = __gnat_malloc (20);
  #   D.861_10 = V_MUST_DEF <D.861_9>;
  D.861 = (struct c34007p__designated *) D.860_8;
  #   VUSE <D.861_10>;
  VIEW_CONVERT_EXPR<struct c34007p__T7b>(*D.861).b = 1;
  #   VUSE <D.861_10>;
  VIEW_CONVERT_EXPR<struct c34007p__T7b>(*D.861).l = 3;

There last two statements are confusing to me.  First of all, why isn't
the *D.861 in SSA form?  But more importantly, those statements are
modifying memory, but there's no V_MAY_DEF operand.  Why not?

I'm stepping through update_ssa_operands but can't figure out exactly
where it's supposed to be written here.


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