|
From: <sv...@va...> - 2005-04-04 23:15:40
|
Author: sewardj
Date: 2005-04-05 00:12:54 +0100 (Tue, 05 Apr 2005)
New Revision: 1118
Modified:
trunk/priv/ir/iropt.c
Log:
#include <rude_words.h>. The recent change of denotation of no-op IR
statements from NULL to IRStmt_NoOp screwed up the how-much-to-unroll
heuristics in iropt, resulting in iropt being significantly less
enthusiastic about unrolling than it was before the change. Gaaah!
This commit should fix it.
Modified: trunk/priv/ir/iropt.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/ir/iropt.c 2005-04-03 14:59:54 UTC (rev 1117)
+++ trunk/priv/ir/iropt.c 2005-04-04 23:12:54 UTC (rev 1118)
@@ -2756,9 +2756,10 @@
Int n_stmts, i;
=20
n_stmts =3D 0;
- for (i =3D 0; i < bb->stmts_used; i++)
- if (bb->stmts[i])
- n_stmts++;
+ for (i =3D 0; i < bb->stmts_used; i++) {
+ if (bb->stmts[i]->tag !=3D Ist_NoOp)
+ n_stmts++;
+ }
=20
if (n_stmts <=3D vex_control.iropt_unroll_thresh/8) {
if (vex_control.iropt_verbosity > 0)
|