From: Richard Biener Date: Mon, 22 May 2017 07:14:10 +0000 (+0000) Subject: df-scan.c (df_insn_refs_verify): Speedup when not verifying. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6173a9e3be21709cc23475d4c0e4f01c444bf15e;p=gcc.git df-scan.c (df_insn_refs_verify): Speedup when not verifying. 2017-05-22 Richard Biener * df-scan.c (df_insn_refs_verify): Speedup when not verifying. From-SVN: r248318 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b490dc5711..5e76d2ffe35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-05-22 Richard Biener + + * df-scan.c (df_insn_refs_verify): Speedup when not verifying. + 2017-05-19 Jason Merrill * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t. diff --git a/gcc/df-scan.c b/gcc/df-scan.c index 4884608b167..dde6d15d07b 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -4103,23 +4103,30 @@ df_insn_refs_verify (struct df_collection_rec *collection_rec, rtx_insn *insn, bool abort_if_fail) { - bool ret1, ret2, ret3, ret4; + bool ret1, ret2, ret3; unsigned int uid = INSN_UID (insn); struct df_insn_info *insn_info = DF_INSN_INFO_GET (insn); df_insn_refs_collect (collection_rec, bb, insn_info); /* Unfortunately we cannot opt out early if one of these is not - right because the marks will not get cleared. */ + right and abort_if_fail is set because the marks will not get cleared. */ ret1 = df_refs_verify (&collection_rec->def_vec, DF_INSN_UID_DEFS (uid), abort_if_fail); + if (!ret1 && !abort_if_fail) + return false; ret2 = df_refs_verify (&collection_rec->use_vec, DF_INSN_UID_USES (uid), abort_if_fail); + if (!ret2 && !abort_if_fail) + return false; ret3 = df_refs_verify (&collection_rec->eq_use_vec, DF_INSN_UID_EQ_USES (uid), abort_if_fail); - ret4 = df_mws_verify (&collection_rec->mw_vec, DF_INSN_UID_MWS (uid), - abort_if_fail); - return (ret1 && ret2 && ret3 && ret4); + if (!ret3 && !abort_if_fail) + return false; + if (! df_mws_verify (&collection_rec->mw_vec, DF_INSN_UID_MWS (uid), + abort_if_fail)) + return false; + return (ret1 && ret2 && ret3); }