+2018-04-28 Richard Biener <rguenther@suse.de>
+
+ * tree-cfg.c (verify_gimple_phi): Take a gphi * argument.
+ (verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts
+ to reflect use. Only add interesting stmts.
+
2018-04-27 Martin Jambor <mjambor@suse.cz>
PR ipa/85549
and false otherwise. */
static bool
-verify_gimple_phi (gimple *phi)
+verify_gimple_phi (gphi *phi)
{
bool err = false;
unsigned i;
timevar_push (TV_TREE_STMT_VERIFY);
hash_set<void *> visited;
- hash_set<gimple *> visited_stmts;
+ hash_set<gimple *> visited_throwing_stmts;
/* Collect all BLOCKs referenced by the BLOCK tree of FN. */
hash_set<tree> blocks;
bool err2 = false;
unsigned i;
- visited_stmts.add (phi);
-
if (gimple_bb (phi) != bb)
{
error ("gimple_bb (phi) is set to a wrong basic block");
tree addr;
int lp_nr;
- visited_stmts.add (stmt);
-
if (gimple_bb (stmt) != bb)
{
error ("gimple_bb (stmt) is set to a wrong basic block");
that they cannot throw, that we update other data structures
to match. */
lp_nr = lookup_stmt_eh_lp (stmt);
+ if (lp_nr != 0)
+ visited_throwing_stmts.add (stmt);
if (lp_nr > 0)
{
if (!stmt_could_throw_p (stmt))
}
}
- eh_error_found = false;
hash_map<gimple *, int> *eh_table = get_eh_throw_stmt_table (cfun);
+ eh_error_found = false;
if (eh_table)
eh_table->traverse<hash_set<gimple *> *, verify_eh_throw_stmt_node>
- (&visited_stmts);
+ (&visited_throwing_stmts);
if (err || eh_error_found)
internal_error ("verify_gimple failed");