This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
DCE eliminating valid statement for ACATS c34007p
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: gcc at gcc dot gnu dot org
- Date: Mon, 5 Sep 05 22:14:02 EDT
- Subject: 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.