Andrew Pinski wrote:
> Did you look into where this was showing up?
>
No. Happens on libjava/interpret.cc. Here's the patch I used and the
stats collecting script, if you're interested in gathering more info.
Index: tree-into-ssa.c
===================================================================
--- tree-into-ssa.c (revision 111136)
+++ tree-into-ssa.c (working copy)
@@ -1773,6 +1773,29 @@ rewrite_into_ssa (void)
free (dfs);
sbitmap_free (interesting_blocks);
+ FOR_EACH_BB (bb)
+ {
+ block_stmt_iterator si;
+
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ enum tree_code code;
+ int i;
+ tree stmt = bsi_stmt (si);
+
+ code = TREE_CODE (stmt);
+ fprintf (stderr, "STMT: %-12s", tree_code_name[code]);
+ for (i = 0; i < TREE_CODE_LENGTH (code); i++)
+ {
+ tree op = TREE_OPERAND (stmt, i);
+ if (op)
+ fprintf (stderr, " OP%d: %-12s", i,
+ tree_code_name[TREE_CODE (op)]);
+ }
+ fprintf (stderr, " (%d OPS)\n", i - 1);
+ }
+ }
+
timevar_pop (TV_TREE_SSA_OTHER);
in_ssa_p = true;
}
#!/bin/sh
data=00all-gimple-stmts
stmts=00stmt-codes
ops=00op-codes
total_stmts=`cat $data | wc -l`
echo "GIMPLE statement codes ($total_stmts statements)"
echo
for f in `cat $stmts` ; do
cnt=`grep "STMT: $f" $data | wc -l`
printf "%-15s = %9d (%3d%%)\n" $f $cnt $[ $cnt * 100 / $total_stmts ]
done
echo
echo
echo "Number of operands per statement"
echo
total_ops=0
for f in 0 1 2 3 4 ; do
cnt=`grep "$f OPS" $data | wc -l`
printf "%d operand(s): %9d (%3d%%)\n" $[ $f + 1 ] $cnt $[ $cnt * 100 /
$total_stmts ]
total_ops=$[ $total_ops + ($f + 1) * $cnt ]
done
echo
echo
echo "Operands used ($total_ops operands)"
echo
for f in `cat $ops` ; do
cnt=`grep -o "OP.: $f" $data | wc -l`
printf "%-15s = %9d (%3d%%)\n" $f $cnt $[ $cnt * 100 / $total_ops ]
done