> Hello. > > The renaming patch fixes a -Wodr warning seen and reported in the PR. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > PR bootstrap/102828 > > gcc/ChangeLog: > > * ipa-fnsummary.c (edge_predicate_pool): Rename predicate class to > ipa_predicate. > (ipa_fn_summary::account_size_time): Likewise. > (edge_set_predicate): Likewise. > (set_hint_predicate): Likewise. > (add_freqcounting_predicate): Likewise. > (evaluate_conditions_for_known_args): Likewise. > (evaluate_properties_for_edge): Likewise. > (remap_freqcounting_preds_after_dup): Likewise. > (ipa_fn_summary_t::duplicate): Likewise. > (set_cond_stmt_execution_predicate): Likewise. > (set_switch_stmt_execution_predicate): Likewise. > (compute_bb_predicates): Likewise. > (will_be_nonconstant_expr_predicate): Likewise. > (will_be_nonconstant_predicate): Likewise. > (phi_result_unknown_predicate): Likewise. > (predicate_for_phi_result): Likewise. > (analyze_function_body): Likewise. > (compute_fn_summary): Likewise. > (summarize_calls_size_and_time): Likewise. > (estimate_calls_size_and_time): Likewise. > (ipa_call_context::estimate_size_and_time): Likewise. > (remap_edge_summaries): Likewise. > (remap_freqcounting_predicate): Likewise. > (ipa_merge_fn_summary_after_inlining): Likewise. > (ipa_update_overall_fn_summary): Likewise. > (read_ipa_call_summary): Likewise. > (inline_read_section): Likewise. > * ipa-fnsummary.h (struct ipa_freqcounting_predicate): Likewise. > * ipa-predicate.c (predicate::add_clause): Likewise. > (ipa_predicate::add_clause): Likewise. > (predicate::or_with): Likewise. > (ipa_predicate::or_with): Likewise. > (predicate::evaluate): Likewise. > (ipa_predicate::evaluate): Likewise. > (predicate::probability): Likewise. > (ipa_predicate::probability): Likewise. > (dump_condition): Likewise. > (dump_clause): Likewise. > (predicate::dump): Likewise. > (ipa_predicate::dump): Likewise. > (predicate::debug): Likewise. > (ipa_predicate::debug): Likewise. > (predicate::remap_after_duplication): Likewise. > (ipa_predicate::remap_after_duplication): Likewise. > (predicate::remap_after_inlining): Likewise. > (ipa_predicate::remap_after_inlining): Likewise. > (predicate::stream_in): Likewise. > (ipa_predicate::stream_in): Likewise. > (predicate::stream_out): Likewise. > (ipa_predicate::stream_out): Likewise. > (add_condition): Likewise. > * ipa-predicate.h (class predicate): Likewise. > (class ipa_predicate): Likewise. > (add_condition): Likewise.
OK (even thought the predicates are not necessarily limited to IPA passes :). Thanks, Honza > --- > gcc/ipa-fnsummary.c | 234 ++++++++++++++++++++++---------------------- > gcc/ipa-fnsummary.h | 11 ++- > gcc/ipa-predicate.c | 101 ++++++++++--------- > gcc/ipa-predicate.h | 65 ++++++------ > 4 files changed, 208 insertions(+), 203 deletions(-) > > diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c > index ac6eec30af8..2cfa9a6d0e9 100644 > --- a/gcc/ipa-fnsummary.c > +++ b/gcc/ipa-fnsummary.c > @@ -94,7 +94,7 @@ fast_function_summary <ipa_size_summary *, va_heap> > *ipa_size_summaries; > fast_call_summary <ipa_call_summary *, va_heap> *ipa_call_summaries; > /* Edge predicates goes here. */ > -static object_allocator<predicate> edge_predicate_pool ("edge predicates"); > +static object_allocator<ipa_predicate> edge_predicate_pool ("edge > predicates"); > /* Dump IPA hints. */ > @@ -162,14 +162,14 @@ ipa_dump_hints (FILE *f, ipa_hints hints) > void > ipa_fn_summary::account_size_time (int size, sreal time, > - const predicate &exec_pred, > - const predicate &nonconst_pred_in, > + const ipa_predicate &exec_pred, > + const ipa_predicate &nonconst_pred_in, > bool call) > { > size_time_entry *e; > bool found = false; > int i; > - predicate nonconst_pred; > + ipa_predicate nonconst_pred; > vec<size_time_entry> *table = call ? &call_size_time_table : > &size_time_table; > if (exec_pred == false) > @@ -271,7 +271,7 @@ redirect_to_unreachable (struct cgraph_edge *e) > /* Set predicate for edge E. */ > static void > -edge_set_predicate (struct cgraph_edge *e, predicate *predicate) > +edge_set_predicate (struct cgraph_edge *e, ipa_predicate *predicate) > { > /* If the edge is determined to be never executed, redirect it > to BUILTIN_UNREACHABLE to make it clear to IPA passes the call will > @@ -301,7 +301,7 @@ edge_set_predicate (struct cgraph_edge *e, predicate > *predicate) > /* Set predicate for hint *P. */ > static void > -set_hint_predicate (predicate **p, predicate new_predicate) > +set_hint_predicate (ipa_predicate **p, ipa_predicate new_predicate) > { > if (new_predicate == false || new_predicate == true) > { > @@ -324,7 +324,7 @@ set_hint_predicate (predicate **p, predicate > new_predicate) > static void > add_freqcounting_predicate (vec<ipa_freqcounting_predicate, va_gc> **v, > - const predicate &new_predicate, sreal add_freq, > + const ipa_predicate &new_predicate, sreal add_freq, > unsigned max_num_predicates) > { > if (new_predicate == false || new_predicate == true) > @@ -372,8 +372,8 @@ evaluate_conditions_for_known_args (struct cgraph_node > *node, > clause_t *ret_clause, > clause_t *ret_nonspec_clause) > { > - clause_t clause = inline_p ? 0 : 1 << predicate::not_inlined_condition; > - clause_t nonspec_clause = 1 << predicate::not_inlined_condition; > + clause_t clause = inline_p ? 0 : 1 << ipa_predicate::not_inlined_condition; > + clause_t nonspec_clause = 1 << ipa_predicate::not_inlined_condition; > class ipa_fn_summary *info = ipa_fn_summaries->get (node); > int i; > struct condition *c; > @@ -396,7 +396,7 @@ evaluate_conditions_for_known_args (struct cgraph_node > *node, > if (c->agg_contents) > { > - if (c->code == predicate::changed > + if (c->code == ipa_predicate::changed > && !c->by_ref > && (avals->safe_sval_at(c->operand_num) == error_mark_node)) > continue; > @@ -413,27 +413,28 @@ evaluate_conditions_for_known_args (struct cgraph_node > *node, > else > { > val = avals->safe_sval_at (c->operand_num); > - if (val && val == error_mark_node && c->code != predicate::changed) > + if (val && val == error_mark_node > + && c->code != ipa_predicate::changed) > val = NULL_TREE; > } > if (!val > - && (c->code == predicate::changed > - || c->code == predicate::is_not_constant)) > + && (c->code == ipa_predicate::changed > + || c->code == ipa_predicate::is_not_constant)) > { > - clause |= 1 << (i + predicate::first_dynamic_condition); > - nonspec_clause |= 1 << (i + predicate::first_dynamic_condition); > + clause |= 1 << (i + ipa_predicate::first_dynamic_condition); > + nonspec_clause |= 1 << (i + ipa_predicate::first_dynamic_condition); > continue; > } > - if (c->code == predicate::changed) > + if (c->code == ipa_predicate::changed) > { > - nonspec_clause |= 1 << (i + predicate::first_dynamic_condition); > + nonspec_clause |= 1 << (i + ipa_predicate::first_dynamic_condition); > continue; > } > - if (c->code == predicate::is_not_constant) > + if (c->code == ipa_predicate::is_not_constant) > { > - nonspec_clause |= 1 << (i + predicate::first_dynamic_condition); > + nonspec_clause |= 1 << (i + ipa_predicate::first_dynamic_condition); > continue; > } > @@ -472,8 +473,9 @@ evaluate_conditions_for_known_args (struct cgraph_node > *node, > continue; > if (res && integer_onep (res)) > { > - clause |= 1 << (i + predicate::first_dynamic_condition); > - nonspec_clause |= 1 << (i + predicate::first_dynamic_condition); > + clause |= 1 << (i + ipa_predicate::first_dynamic_condition); > + nonspec_clause > + |= 1 << (i + ipa_predicate::first_dynamic_condition); > continue; > } > } > @@ -528,8 +530,8 @@ evaluate_conditions_for_known_args (struct cgraph_node > *node, > } > } > - clause |= 1 << (i + predicate::first_dynamic_condition); > - nonspec_clause |= 1 << (i + predicate::first_dynamic_condition); > + clause |= 1 << (i + ipa_predicate::first_dynamic_condition); > + nonspec_clause |= 1 << (i + ipa_predicate::first_dynamic_condition); > } > *ret_clause = clause; > if (ret_nonspec_clause) > @@ -587,7 +589,7 @@ evaluate_properties_for_edge (struct cgraph_edge *e, bool > inline_p, > class ipa_edge_args *args; > if (clause_ptr) > - *clause_ptr = inline_p ? 0 : 1 << predicate::not_inlined_condition; > + *clause_ptr = inline_p ? 0 : 1 << ipa_predicate::not_inlined_condition; > if (ipa_node_params_sum > && !e->call_stmt_cannot_inline_p > @@ -785,7 +787,7 @@ remap_freqcounting_preds_after_dup > (vec<ipa_freqcounting_predicate, va_gc> *v, > int len = res->length(); > for (int i = len - 1; i >= 0; i--) > { > - predicate new_predicate > + ipa_predicate new_predicate > = (*res)[i].predicate->remap_after_duplication (possible_truths); > /* We do not want to free previous predicate; it is used by node > origin. */ > @@ -823,7 +825,7 @@ ipa_fn_summary_t::duplicate (cgraph_node *src, > int count = ipa_get_param_count (parms_info); > int i, j; > clause_t possible_truths; > - predicate true_pred = true; > + ipa_predicate true_pred = true; > size_time_entry *e; > int optimized_out_size = 0; > bool inlined_to_p = false; > @@ -860,8 +862,8 @@ ipa_fn_summary_t::duplicate (cgraph_node *src, > to be true. */ > for (i = 0; src_info->size_time_table.iterate (i, &e); i++) > { > - predicate new_exec_pred; > - predicate new_nonconst_pred; > + ipa_predicate new_exec_pred; > + ipa_predicate new_nonconst_pred; > new_exec_pred = e->exec_predicate.remap_after_duplication > (possible_truths); > new_nonconst_pred = e->nonconst_predicate.remap_after_duplication > @@ -877,7 +879,7 @@ ipa_fn_summary_t::duplicate (cgraph_node *src, > Also copy constantness arrays. */ > for (edge = dst->callees; edge; edge = next) > { > - predicate new_predicate; > + ipa_predicate new_predicate; > class ipa_call_summary *es = ipa_call_summaries->get (edge); > next = edge->next_callee; > @@ -896,7 +898,7 @@ ipa_fn_summary_t::duplicate (cgraph_node *src, > Also copy constantness arrays. */ > for (edge = dst->indirect_calls; edge; edge = next) > { > - predicate new_predicate; > + ipa_predicate new_predicate; > class ipa_call_summary *es = ipa_call_summaries->get (edge); > next = edge->next_callee; > @@ -944,13 +946,13 @@ ipa_fn_summary_t::duplicate (cgraph_node *src, > ipa_freqcounting_predicate *f; > for (int i = 0; vec_safe_iterate (info->loop_iterations, i, &f); i++) > { > - predicate p = *f->predicate; > + ipa_predicate p = *f->predicate; > f->predicate = NULL; > set_hint_predicate (&f->predicate, p); > } > for (int i = 0; vec_safe_iterate (info->loop_strides, i, &f); i++) > { > - predicate p = *f->predicate; > + ipa_predicate p = *f->predicate; > f->predicate = NULL; > set_hint_predicate (&f->predicate, p); > } > @@ -1609,12 +1611,12 @@ set_cond_stmt_execution_predicate (struct > ipa_func_body_info *fbi, > if (this_code != ERROR_MARK > && !dominated_by_p (CDI_POST_DOMINATORS, bb, e->dest)) > { > - predicate p > + ipa_predicate p > = add_condition (summary, params_summary, index, > param_type, &aggpos, > this_code, gimple_cond_rhs (last), param_ops); > e->aux = edge_predicate_pool.allocate (); > - *(predicate *) e->aux = p; > + *(ipa_predicate *) e->aux = p; > } > } > vec_free (param_ops); > @@ -1646,11 +1648,11 @@ set_cond_stmt_execution_predicate (struct > ipa_func_body_info *fbi, > add_builtin_constant_p_parm (summary, index); > FOR_EACH_EDGE (e, ei, bb->succs) if (e->flags & EDGE_FALSE_VALUE) > { > - predicate p = add_condition (summary, params_summary, index, > + ipa_predicate p = add_condition (summary, params_summary, index, > param_type, &aggpos, > - predicate::is_not_constant, NULL_TREE); > + ipa_predicate::is_not_constant, NULL_TREE); > e->aux = edge_predicate_pool.allocate (); > - *(predicate *) e->aux = p; > + *(ipa_predicate *) e->aux = p; > } > } > @@ -1701,7 +1703,7 @@ set_switch_stmt_execution_predicate (struct > ipa_func_body_info *fbi, > FOR_EACH_EDGE (e, ei, bb->succs) > { > e->aux = edge_predicate_pool.allocate (); > - *(predicate *) e->aux = false; > + *(ipa_predicate *) e->aux = false; > } > e = gimple_switch_edge (cfun, last, 0); > @@ -1718,7 +1720,7 @@ set_switch_stmt_execution_predicate (struct > ipa_func_body_info *fbi, > tree cl = gimple_switch_label (last, case_idx); > tree min = CASE_LOW (cl); > tree max = CASE_HIGH (cl); > - predicate p; > + ipa_predicate p; > e = gimple_switch_edge (cfun, last, case_idx); > @@ -1742,15 +1744,15 @@ set_switch_stmt_execution_predicate (struct > ipa_func_body_info *fbi, > &aggpos, EQ_EXPR, min, param_ops); > else > { > - predicate p1, p2; > + ipa_predicate p1, p2; > p1 = add_condition (summary, params_summary, index, param_type, > &aggpos, GE_EXPR, min, param_ops); > p2 = add_condition (summary, params_summary,index, param_type, > &aggpos, LE_EXPR, max, param_ops); > p = p1 & p2; > } > - *(class predicate *) e->aux > - = p.or_with (summary->conds, *(class predicate *) e->aux); > + *(ipa_predicate *) e->aux > + = p.or_with (summary->conds, *(ipa_predicate *) e->aux); > /* If there are too many disjoint case ranges, predicate for default > case might become too complicated. So add a limit here. */ > @@ -1796,13 +1798,13 @@ set_switch_stmt_execution_predicate (struct > ipa_func_body_info *fbi, > e = gimple_switch_edge (cfun, last, 0); > if (bound_count > bound_limit) > { > - *(class predicate *) e->aux = true; > + *(ipa_predicate *) e->aux = true; > vec_free (param_ops); > return; > } > - predicate p_seg = true; > - predicate p_all = false; > + ipa_predicate p_seg = true; > + ipa_predicate p_all = false; > if (vr_type != VR_RANGE) > { > @@ -1857,8 +1859,8 @@ set_switch_stmt_execution_predicate (struct > ipa_func_body_info *fbi, > } > p_all = p_all.or_with (summary->conds, p_seg); > - *(class predicate *) e->aux > - = p_all.or_with (summary->conds, *(class predicate *) e->aux); > + *(ipa_predicate *) e->aux > + = p_all.or_with (summary->conds, *(ipa_predicate *) e->aux); > vec_free (param_ops); > } > @@ -1886,7 +1888,7 @@ compute_bb_predicates (struct ipa_func_body_info *fbi, > /* Entry block is always executable. */ > ENTRY_BLOCK_PTR_FOR_FN (my_function)->aux > = edge_predicate_pool.allocate (); > - *(predicate *) ENTRY_BLOCK_PTR_FOR_FN (my_function)->aux = true; > + *(ipa_predicate *) ENTRY_BLOCK_PTR_FOR_FN (my_function)->aux = true; > /* A simple dataflow propagation of predicates forward in the CFG. > TODO: work in reverse postorder. */ > @@ -1895,17 +1897,17 @@ compute_bb_predicates (struct ipa_func_body_info *fbi, > done = true; > FOR_EACH_BB_FN (bb, my_function) > { > - predicate p = false; > + ipa_predicate p = false; > edge e; > edge_iterator ei; > FOR_EACH_EDGE (e, ei, bb->preds) > { > if (e->src->aux) > { > - predicate this_bb_predicate > - = *(predicate *) e->src->aux; > + ipa_predicate this_bb_predicate > + = *(ipa_predicate *) e->src->aux; > if (e->aux) > - this_bb_predicate &= (*(class predicate *) e->aux); > + this_bb_predicate &= (*(ipa_predicate *) e->aux); > p = p.or_with (summary->conds, this_bb_predicate); > if (p == true) > break; > @@ -1919,18 +1921,18 @@ compute_bb_predicates (struct ipa_func_body_info *fbi, > { > done = false; > bb->aux = edge_predicate_pool.allocate (); > - *((predicate *) bb->aux) = p; > + *((ipa_predicate *) bb->aux) = p; > } > - else if (p != *(predicate *) bb->aux) > + else if (p != *(ipa_predicate *) bb->aux) > { > /* This OR operation is needed to ensure monotonous data flow > in the case we hit the limit on number of clauses and the > and/or operations above give approximate answers. */ > - p = p.or_with (summary->conds, *(predicate *)bb->aux); > - if (p != *(predicate *) bb->aux) > + p = p.or_with (summary->conds, *(ipa_predicate *)bb->aux); > + if (p != *(ipa_predicate *)bb->aux) > { > done = false; > - *((predicate *) bb->aux) = p; > + *((ipa_predicate *)bb->aux) = p; > } > } > @@ -1950,15 +1952,16 @@ compute_bb_predicates (struct ipa_func_body_info *fbi, > { > done = false; > pdom_bb->aux = edge_predicate_pool.allocate (); > - *((predicate *) pdom_bb->aux) = p; > + *((ipa_predicate *)pdom_bb->aux) = p; > } > - else if (p != *(predicate *) pdom_bb->aux) > + else if (p != *(ipa_predicate *)pdom_bb->aux) > { > - p = p.or_with (summary->conds, *(predicate *)pdom_bb->aux); > - if (p != *(predicate *) pdom_bb->aux) > + p = p.or_with (summary->conds, > + *(ipa_predicate *)pdom_bb->aux); > + if (p != *(ipa_predicate *)pdom_bb->aux) > { > done = false; > - *((predicate *) pdom_bb->aux) = p; > + *((ipa_predicate *)pdom_bb->aux) = p; > } > } > } > @@ -1970,12 +1973,12 @@ compute_bb_predicates (struct ipa_func_body_info *fbi, > /* Return predicate specifying when the STMT might have result that is not > a compile time constant. */ > -static predicate > +static ipa_predicate > will_be_nonconstant_expr_predicate (ipa_func_body_info *fbi, > class ipa_fn_summary *summary, > class ipa_node_params *params_summary, > tree expr, > - vec<predicate> nonconstant_names) > + vec<ipa_predicate> nonconstant_names) > { > tree parm; > int index; > @@ -1986,14 +1989,14 @@ will_be_nonconstant_expr_predicate > (ipa_func_body_info *fbi, > parm = unmodified_parm (fbi, NULL, expr, NULL); > if (parm && (index = ipa_get_param_decl_index (fbi->info, parm)) >= 0) > return add_condition (summary, params_summary, index, TREE_TYPE (parm), > NULL, > - predicate::changed, NULL_TREE); > + ipa_predicate::changed, NULL_TREE); > if (is_gimple_min_invariant (expr)) > return false; > if (TREE_CODE (expr) == SSA_NAME) > return nonconstant_names[SSA_NAME_VERSION (expr)]; > if (BINARY_CLASS_P (expr) || COMPARISON_CLASS_P (expr)) > { > - predicate p1 > + ipa_predicate p1 > = will_be_nonconstant_expr_predicate (fbi, summary, > params_summary, > TREE_OPERAND (expr, 0), > @@ -2001,7 +2004,7 @@ will_be_nonconstant_expr_predicate (ipa_func_body_info > *fbi, > if (p1 == true) > return p1; > - predicate p2 > + ipa_predicate p2 > = will_be_nonconstant_expr_predicate (fbi, summary, > params_summary, > TREE_OPERAND (expr, 1), > @@ -2010,7 +2013,7 @@ will_be_nonconstant_expr_predicate (ipa_func_body_info > *fbi, > } > else if (TREE_CODE (expr) == COND_EXPR) > { > - predicate p1 > + ipa_predicate p1 > = will_be_nonconstant_expr_predicate (fbi, summary, > params_summary, > TREE_OPERAND (expr, 0), > @@ -2018,7 +2021,7 @@ will_be_nonconstant_expr_predicate (ipa_func_body_info > *fbi, > if (p1 == true) > return p1; > - predicate p2 > + ipa_predicate p2 > = will_be_nonconstant_expr_predicate (fbi, summary, > params_summary, > TREE_OPERAND (expr, 1), > @@ -2046,18 +2049,18 @@ will_be_nonconstant_expr_predicate > (ipa_func_body_info *fbi, > /* Return predicate specifying when the STMT might have result that is not > a compile time constant. */ > -static predicate > +static ipa_predicate > will_be_nonconstant_predicate (struct ipa_func_body_info *fbi, > class ipa_fn_summary *summary, > class ipa_node_params *params_summary, > gimple *stmt, > - vec<predicate> nonconstant_names) > + vec<ipa_predicate> nonconstant_names) > { > - predicate p = true; > + ipa_predicate p = true; > ssa_op_iter iter; > tree use; > tree param_type = NULL_TREE; > - predicate op_non_const; > + ipa_predicate op_non_const; > bool is_load; > int base_index; > struct agg_position_info aggpos; > @@ -2109,7 +2112,7 @@ will_be_nonconstant_predicate (struct > ipa_func_body_info *fbi, > op_non_const = > add_condition (summary, params_summary, > base_index, param_type, &aggpos, > - predicate::changed, NULL_TREE); > + ipa_predicate::changed, NULL_TREE); > else > op_non_const = false; > FOR_EACH_SSA_TREE_OPERAND (use, stmt, iter, SSA_OP_USE) > @@ -2122,7 +2125,7 @@ will_be_nonconstant_predicate (struct > ipa_func_body_info *fbi, > if (index != base_index) > p = add_condition (summary, params_summary, index, > TREE_TYPE (parm), NULL, > - predicate::changed, NULL_TREE); > + ipa_predicate::changed, NULL_TREE); > else > continue; > } > @@ -2315,8 +2318,8 @@ phi_result_unknown_predicate (ipa_func_body_info *fbi, > ipa_fn_summary *summary, > class ipa_node_params *params_summary, > basic_block bb, > - predicate *p, > - vec<predicate> nonconstant_names) > + ipa_predicate *p, > + vec<ipa_predicate> nonconstant_names) > { > edge e; > edge_iterator ei; > @@ -2374,8 +2377,8 @@ phi_result_unknown_predicate (ipa_func_body_info *fbi, > static void > predicate_for_phi_result (class ipa_fn_summary *summary, gphi *phi, > - predicate *p, > - vec<predicate> nonconstant_names) > + ipa_predicate *p, > + vec<ipa_predicate> nonconstant_names) > { > unsigned i; > @@ -2607,9 +2610,9 @@ analyze_function_body (struct cgraph_node *node, bool > early) > class ipa_fn_summary *info = ipa_fn_summaries->get_create (node); > ipa_node_params *params_summary > = early ? NULL : ipa_node_params_sum->get (node); > - predicate bb_predicate; > + ipa_predicate bb_predicate; > struct ipa_func_body_info fbi; > - vec<predicate> nonconstant_names = vNULL; > + vec<ipa_predicate> nonconstant_names = vNULL; > int nblocks, n; > int *order; > gimple *fix_builtin_expect_stmt; > @@ -2664,7 +2667,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > bb_predicate = true; > info->account_size_time (0, 0, bb_predicate, bb_predicate); > - bb_predicate = predicate::not_inlined (); > + bb_predicate = ipa_predicate::not_inlined (); > info->account_size_time (opt_for_fn (node->decl, > param_uninlined_function_insns) > * ipa_fn_summary::size_scale, > @@ -2695,7 +2698,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > if (fbi.info) > { > if (bb->aux) > - bb_predicate = *(predicate *) bb->aux; > + bb_predicate = *(ipa_predicate *)bb->aux; > else > bb_predicate = false; > } > @@ -2710,7 +2713,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > if (fbi.info && nonconstant_names.exists ()) > { > - predicate phi_predicate; > + ipa_predicate phi_predicate; > bool first_phi = true; > for (gphi_iterator bsi = gsi_start_phis (bb); !gsi_end_p (bsi); > @@ -2743,7 +2746,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > int this_size = estimate_num_insns (stmt, &eni_size_weights); > int this_time = estimate_num_insns (stmt, &eni_time_weights); > int prob; > - predicate will_be_nonconstant; > + ipa_predicate will_be_nonconstant; > /* This relation stmt should be folded after we remove > __builtin_expect call. Adjust the cost here. */ > @@ -2776,7 +2779,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > && gimple_call_lhs (stmt) > && TREE_CODE (gimple_call_lhs (stmt)) == SSA_NAME) > { > - predicate false_p = false; > + ipa_predicate false_p = false; > nonconstant_names[SSA_NAME_VERSION (gimple_call_lhs (stmt))] > = false_p; > } > @@ -2853,7 +2856,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > if (prob == 2 && dump_file && (dump_flags & TDF_DETAILS)) > fprintf (dump_file, "\t\tWill be eliminated by inlining\n"); > - class predicate p = bb_predicate & will_be_nonconstant; > + ipa_predicate p = bb_predicate & will_be_nonconstant; > /* We can ignore statement when we proved it is never going > to happen, but we cannot do that for call statements > @@ -2872,7 +2875,8 @@ analyze_function_body (struct cgraph_node *node, bool > early) > { > if (prob) > { > - predicate ip = bb_predicate & predicate::not_inlined (); > + ipa_predicate ip > + = bb_predicate & ipa_predicate::not_inlined (); > info->account_size_time (this_size * prob, > (final_time * prob) / 2, ip, > p); > @@ -2902,7 +2906,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > || TREE_CODE (op) == ARRAY_RANGE_REF) > && TREE_CODE (TREE_OPERAND (op, 1)) == SSA_NAME) > { > - predicate p = bb_predicate; > + ipa_predicate p = bb_predicate; > if (fbi.info) > p = p & will_be_nonconstant_expr_predicate > (&fbi, info, params_summary, > @@ -2939,7 +2943,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > scev_initialize (); > for (auto loop : loops_list (cfun, 0)) > { > - predicate loop_iterations = true; > + ipa_predicate loop_iterations = true; > sreal header_freq; > edge ex; > unsigned int j; > @@ -2950,13 +2954,13 @@ analyze_function_body (struct cgraph_node *node, bool > early) > profile_count phdr_count = loop_preheader_edge (loop)->count (); > sreal phdr_freq = phdr_count.to_sreal_scale (entry_count); > - bb_predicate = *(predicate *) loop->header->aux; > + bb_predicate = *(ipa_predicate *)loop->header->aux; > auto_vec<edge> exits = get_loop_exit_edges (loop); > FOR_EACH_VEC_ELT (exits, j, ex) > if (number_of_iterations_exit (loop, ex, &niter_desc, false) > && !is_gimple_min_invariant (niter_desc.niter)) > { > - predicate will_be_nonconstant > + ipa_predicate will_be_nonconstant > = will_be_nonconstant_expr_predicate (&fbi, info, > params_summary, > niter_desc.niter, > @@ -2977,7 +2981,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > for (loop = loops_for_fn (cfun)->tree_root->inner; > loop != NULL; loop = loop->next) > { > - predicate loop_stride = true; > + ipa_predicate loop_stride = true; > basic_block *body = get_loop_body (loop); > profile_count phdr_count = loop_preheader_edge (loop)->count (); > sreal phdr_freq = phdr_count.to_sreal_scale (entry_count); > @@ -2987,7 +2991,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > if (!body[i]->aux) > continue; > - bb_predicate = *(predicate *) body[i]->aux; > + bb_predicate = *(ipa_predicate *)body[i]->aux; > for (gsi = gsi_start_bb (body[i]); !gsi_end_p (gsi); > gsi_next (&gsi)) > { > @@ -3007,7 +3011,7 @@ analyze_function_body (struct cgraph_node *node, bool > early) > || is_gimple_min_invariant (iv.step)) > continue; > - predicate will_be_nonconstant > + ipa_predicate will_be_nonconstant > = will_be_nonconstant_expr_predicate (&fbi, info, > params_summary, > iv.step, > @@ -3031,12 +3035,12 @@ analyze_function_body (struct cgraph_node *node, bool > early) > edge_iterator ei; > if (bb->aux) > - edge_predicate_pool.remove ((predicate *)bb->aux); > + edge_predicate_pool.remove ((ipa_predicate *)bb->aux); > bb->aux = NULL; > FOR_EACH_EDGE (e, ei, bb->succs) > { > if (e->aux) > - edge_predicate_pool.remove ((predicate *) e->aux); > + edge_predicate_pool.remove ((ipa_predicate *)e->aux); > e->aux = NULL; > } > } > @@ -3092,7 +3096,7 @@ compute_fn_summary (struct cgraph_node *node, bool > early) > if (node->thunk) > { > ipa_call_summary *es = ipa_call_summaries->get_create (node->callees); > - predicate t = true; > + ipa_predicate t = true; > node->can_change_signature = false; > es->call_stmt_size = eni_size_weights.call_cost; > @@ -3102,7 +3106,7 @@ compute_fn_summary (struct cgraph_node *node, bool > early) > param_uninlined_function_thunk_insns), > opt_for_fn (node->decl, > param_uninlined_function_thunk_time), t, t); > - t = predicate::not_inlined (); > + t = ipa_predicate::not_inlined (); > info->account_size_time (2 * ipa_fn_summary::size_scale, 0, t, t); > ipa_update_overall_fn_summary (node); > size_info->self_size = size_info->size; > @@ -3335,7 +3339,7 @@ summarize_calls_size_and_time (struct cgraph_node *node, > estimate_edge_size_and_time (e, &size, NULL, &time, NULL, NULL); > - struct predicate pred = true; > + ipa_predicate pred = true; > class ipa_call_summary *es = ipa_call_summaries->get (e); > if (es->predicate) > @@ -3348,7 +3352,7 @@ summarize_calls_size_and_time (struct cgraph_node *node, > sreal time = 0; > estimate_edge_size_and_time (e, &size, NULL, &time, NULL, NULL); > - struct predicate pred = true; > + ipa_predicate pred = true; > class ipa_call_summary *es = ipa_call_summaries->get (e); > if (es->predicate) > @@ -3414,7 +3418,7 @@ estimate_calls_size_and_time (struct cgraph_node *node, > int *size, > /* Build summary if it is absent. */ > if (!sum->call_size_time_table.length ()) > { > - predicate true_pred = true; > + ipa_predicate true_pred = true; > sum->account_size_time (0, 0, true_pred, true_pred, true); > summarize_calls_size_and_time (node, sum); > } > @@ -3712,8 +3716,8 @@ ipa_call_context::estimate_size_and_time > (ipa_call_estimates *estimates, > fprintf (dump_file, " Estimating body: %s\n" > " Known to be false: ", m_node->dump_name ()); > - for (i = predicate::not_inlined_condition; > - i < (predicate::first_dynamic_condition > + for (i = ipa_predicate::not_inlined_condition; > + i < (ipa_predicate::first_dynamic_condition > + (int) vec_safe_length (info->conds)); i++) > if (!(m_possible_truths & (1 << i))) > { > @@ -3984,12 +3988,12 @@ remap_edge_summaries (struct cgraph_edge > *inlined_edge, > const vec<int> &operand_map, > const vec<HOST_WIDE_INT> &offset_map, > clause_t possible_truths, > - predicate *toplev_predicate) > + ipa_predicate *toplev_predicate) > { > struct cgraph_edge *e, *next; > for (e = node->callees; e; e = next) > { > - predicate p; > + ipa_predicate p; > next = e->next_callee; > if (e->inline_failed) > @@ -4018,7 +4022,7 @@ remap_edge_summaries (struct cgraph_edge *inlined_edge, > for (e = node->indirect_calls; e; e = next) > { > class ipa_call_summary *es = ipa_call_summaries->get (e); > - predicate p; > + ipa_predicate p; > next = e->next_callee; > remap_edge_params (inlined_edge, e); > @@ -4045,13 +4049,13 @@ remap_freqcounting_predicate (class ipa_fn_summary > *info, > const vec<int> &operand_map, > const vec<HOST_WIDE_INT> &offset_map, > clause_t possible_truths, > - predicate *toplev_predicate) > + ipa_predicate *toplev_predicate) > { > ipa_freqcounting_predicate *fcp; > for (int i = 0; vec_safe_iterate (v, i, &fcp); i++) > { > - predicate p > + ipa_predicate p > = fcp->predicate->remap_after_inlining (info, params_summary, > callee_info, operand_map, > offset_map, possible_truths, > @@ -4075,7 +4079,7 @@ ipa_merge_fn_summary_after_inlining (struct cgraph_edge > *edge) > auto_vec<int, 8> operand_map; > auto_vec<HOST_WIDE_INT, 8> offset_map; > int i; > - predicate toplev_predicate; > + ipa_predicate toplev_predicate; > class ipa_call_summary *es = ipa_call_summaries->get (edge); > ipa_node_params *params_summary = (ipa_node_params_sum > ? ipa_node_params_sum->get (to) : NULL); > @@ -4139,13 +4143,13 @@ ipa_merge_fn_summary_after_inlining (struct > cgraph_edge *edge) > sreal freq = edge->sreal_frequency (); > for (i = 0; callee_info->size_time_table.iterate (i, &e); i++) > { > - predicate p; > + ipa_predicate p; > p = e->exec_predicate.remap_after_inlining > (info, params_summary, > callee_info, operand_map, > offset_map, clause, > toplev_predicate); > - predicate nonconstp; > + ipa_predicate nonconstp; > nonconstp = e->nonconst_predicate.remap_after_inlining > (info, params_summary, > callee_info, operand_map, > @@ -4230,7 +4234,7 @@ ipa_update_overall_fn_summary (struct cgraph_node > *node, bool reset) > if (node->callees || node->indirect_calls) > estimate_calls_size_and_time (node, &size_info->size, &info->min_size, > &info->time, NULL, > - ~(clause_t) (1 << predicate::false_condition), > + ~(clause_t) (1 << > ipa_predicate::false_condition), > NULL); > size_info->size = RDIV (size_info->size, ipa_fn_summary::size_scale); > info->min_size = RDIV (info->min_size, ipa_fn_summary::size_scale); > @@ -4318,7 +4322,7 @@ read_ipa_call_summary (class lto_input_block *ib, > struct cgraph_edge *e, > { > class ipa_call_summary *es = prevails > ? ipa_call_summaries->get_create (e) : NULL; > - predicate p; > + ipa_predicate p; > int length, i; > int size = streamer_read_uhwi (ib); > @@ -4399,7 +4403,7 @@ inline_read_section (struct lto_file_decl_data > *file_data, const char *data, > lto_symtab_encoder_t encoder; > struct bitpack_d bp; > struct cgraph_edge *e; > - predicate p; > + ipa_predicate p; > index = streamer_read_uhwi (&ib); > encoder = file_data->symtab_node_encoder; > diff --git a/gcc/ipa-fnsummary.h b/gcc/ipa-fnsummary.h > index 78399b0b9bb..fdfbd660e70 100644 > --- a/gcc/ipa-fnsummary.h > +++ b/gcc/ipa-fnsummary.h > @@ -76,11 +76,11 @@ class size_time_entry > { > public: > /* Predicate for code to be executed. */ > - predicate exec_predicate; > + ipa_predicate exec_predicate; > /* Predicate for value to be constant and optimized out in a specialized > copy. > When deciding on specialization this makes it possible to see how much > the executed code paths will simplify. */ > - predicate nonconst_predicate; > + ipa_predicate nonconst_predicate; > int size; > sreal time; > }; > @@ -114,7 +114,7 @@ struct GTY(()) ipa_freqcounting_predicate > /* The described event happens with this frequency... */ > sreal freq; > /* ...when this predicate evaluates to false. */ > - class predicate * GTY((skip)) predicate; > + ipa_predicate * GTY((skip)) predicate; > }; > /* Function inlining information. */ > @@ -203,7 +203,8 @@ public: > int scc_no; > /* Record time and size under given predicates. */ > - void account_size_time (int, sreal, const predicate &, const predicate &, > + void account_size_time (int, sreal, const ipa_predicate &, > + const ipa_predicate &, > bool call = false); > /* We keep values scaled up, so fractional sizes can be accounted. */ > @@ -286,7 +287,7 @@ public: > /* Default destructor. */ > ~ipa_call_summary (); > - class predicate *predicate; > + ipa_predicate *predicate; > /* Vector indexed by parameters. */ > vec<inline_param_summary> param; > /* Estimated size and time of the call statement. */ > diff --git a/gcc/ipa-predicate.c b/gcc/ipa-predicate.c > index e4b11ec3ae3..48318cc6091 100644 > --- a/gcc/ipa-predicate.c > +++ b/gcc/ipa-predicate.c > @@ -69,7 +69,7 @@ expr_eval_ops_equal_p (expr_eval_ops ops1, expr_eval_ops > ops2) > sane. */ > void > -predicate::add_clause (conditions conditions, clause_t new_clause) > +ipa_predicate::add_clause (conditions conditions, clause_t new_clause) > { > int i; > int i2; > @@ -81,7 +81,7 @@ predicate::add_clause (conditions conditions, clause_t > new_clause) > return; > /* False clause makes the whole predicate false. Kill the other variants. > */ > - if (new_clause == (1 << predicate::false_condition)) > + if (new_clause == (1 << ipa_predicate::false_condition)) > { > *this = false; > return; > @@ -90,7 +90,7 @@ predicate::add_clause (conditions conditions, clause_t > new_clause) > return; > /* No one should be silly enough to add false into nontrivial clauses. */ > - gcc_checking_assert (!(new_clause & (1 << predicate::false_condition))); > + gcc_checking_assert (!(new_clause & (1 << > ipa_predicate::false_condition))); > /* Look where to insert the new_clause. At the same time prune out > new_clauses of P that are implied by the new new_clause and thus > @@ -123,13 +123,13 @@ predicate::add_clause (conditions conditions, clause_t > new_clause) > /* Look for clauses that are obviously true. I.e. > op0 == 5 || op0 != 5. */ > if (conditions) > - for (c1 = predicate::first_dynamic_condition; > + for (c1 = ipa_predicate::first_dynamic_condition; > c1 < num_conditions; c1++) > { > condition *cc1; > if (!(new_clause & (1 << c1))) > continue; > - cc1 = &(*conditions)[c1 - predicate::first_dynamic_condition]; > + cc1 = &(*conditions)[c1 - ipa_predicate::first_dynamic_condition]; > /* We have no way to represent !changed and !is_not_constant > and thus there is no point for looking for them. */ > if (cc1->code == changed || cc1->code == is_not_constant) > @@ -138,7 +138,7 @@ predicate::add_clause (conditions conditions, clause_t > new_clause) > if (new_clause & (1 << c2)) > { > condition *cc2 = > - &(*conditions)[c2 - predicate::first_dynamic_condition]; > + &(*conditions)[c2 - ipa_predicate::first_dynamic_condition]; > if (cc1->operand_num == cc2->operand_num > && vrp_operand_equal_p (cc1->val, cc2->val) > && cc2->code != is_not_constant > @@ -170,8 +170,8 @@ predicate::add_clause (conditions conditions, clause_t > new_clause) > /* Do THIS &= P. */ > -predicate & > -predicate::operator &= (const predicate &p) > +ipa_predicate & > +ipa_predicate::operator &= (const ipa_predicate &p) > { > /* Avoid busy work. */ > if (p == false || *this == true) > @@ -184,13 +184,13 @@ predicate::operator &= (const predicate &p) > int i; > - /* See how far predicates match. */ > + /* See how far ipa_predicates match. */ > for (i = 0; m_clause[i] && m_clause[i] == p.m_clause[i]; i++) > { > gcc_checking_assert (i < max_clauses); > } > - /* Combine the predicates rest. */ > + /* Combine the ipa_predicates rest. */ > for (; p.m_clause[i]; i++) > { > gcc_checking_assert (i < max_clauses); > @@ -203,9 +203,9 @@ predicate::operator &= (const predicate &p) > /* Return THIS | P2. */ > -predicate > -predicate::or_with (conditions conditions, > - const predicate &p) const > +ipa_predicate > +ipa_predicate::or_with (conditions conditions, > + const ipa_predicate &p) const > { > /* Avoid busy work. */ > if (p == false || *this == true || *this == p) > @@ -214,7 +214,7 @@ predicate::or_with (conditions conditions, > return p; > /* OK, combine the predicates. */ > - predicate out = true; > + ipa_predicate out = true; > for (int i = 0; m_clause[i]; i++) > for (int j = 0; p.m_clause[j]; j++) > @@ -230,7 +230,7 @@ predicate::or_with (conditions conditions, > if predicate P is known to be false. */ > bool > -predicate::evaluate (clause_t possible_truths) const > +ipa_predicate::evaluate (clause_t possible_truths) const > { > int i; > @@ -238,7 +238,7 @@ predicate::evaluate (clause_t possible_truths) const > if (*this == true) > return true; > - gcc_assert (!(possible_truths & (1 << predicate::false_condition))); > + gcc_assert (!(possible_truths & (1 << ipa_predicate::false_condition))); > /* See if we can find clause we can disprove. */ > for (i = 0; m_clause[i]; i++) > @@ -254,7 +254,7 @@ predicate::evaluate (clause_t possible_truths) const > instruction will be recomputed per invocation of the inlined call. */ > int > -predicate::probability (conditions conds, > +ipa_predicate::probability (conditions conds, > clause_t possible_truths, > vec<inline_param_summary> inline_param_summary) const > { > @@ -268,7 +268,7 @@ predicate::probability (conditions conds, > if (*this == false) > return 0; > - gcc_assert (!(possible_truths & (1 << predicate::false_condition))); > + gcc_assert (!(possible_truths & (1 << ipa_predicate::false_condition))); > /* See if we can find clause we can disprove. */ > for (i = 0; m_clause[i]; i++) > @@ -285,11 +285,11 @@ predicate::probability (conditions conds, > for (i2 = 0; i2 < num_conditions; i2++) > if ((m_clause[i] & possible_truths) & (1 << i2)) > { > - if (i2 >= predicate::first_dynamic_condition) > + if (i2 >= ipa_predicate::first_dynamic_condition) > { > condition *c = > - &(*conds)[i2 - predicate::first_dynamic_condition]; > - if (c->code == predicate::changed > + &(*conds)[i2 - ipa_predicate::first_dynamic_condition]; > + if (c->code == ipa_predicate::changed > && (c->operand_num < > (int) inline_param_summary.length ())) > { > @@ -318,13 +318,13 @@ void > dump_condition (FILE *f, conditions conditions, int cond) > { > condition *c; > - if (cond == predicate::false_condition) > + if (cond == ipa_predicate::false_condition) > fprintf (f, "false"); > - else if (cond == predicate::not_inlined_condition) > + else if (cond == ipa_predicate::not_inlined_condition) > fprintf (f, "not inlined"); > else > { > - c = &(*conditions)[cond - predicate::first_dynamic_condition]; > + c = &(*conditions)[cond - ipa_predicate::first_dynamic_condition]; > fprintf (f, "op%i", c->operand_num); > if (c->agg_contents) > fprintf (f, "[%soffset: " HOST_WIDE_INT_PRINT_DEC "]", > @@ -406,12 +406,12 @@ dump_condition (FILE *f, conditions conditions, int > cond) > fprintf (f, ")"); > } > - if (c->code == predicate::is_not_constant) > + if (c->code == ipa_predicate::is_not_constant) > { > fprintf (f, " not constant"); > return; > } > - if (c->code == predicate::changed) > + if (c->code == ipa_predicate::changed) > { > fprintf (f, " changed"); > return; > @@ -432,7 +432,7 @@ dump_clause (FILE *f, conditions conds, clause_t clause) > fprintf (f, "("); > if (!clause) > fprintf (f, "true"); > - for (i = 0; i < predicate::num_conditions; i++) > + for (i = 0; i < ipa_predicate::num_conditions; i++) > if (clause & (1 << i)) > { > if (found) > @@ -445,10 +445,10 @@ dump_clause (FILE *f, conditions conds, clause_t clause) > /* Dump THIS to F. CONDS a vector of conditions used when evaluating > - predicates. When NL is true new line is output at the end of dump. */ > + ipa_predicates. When NL is true new line is output at the end of dump. > */ > void > -predicate::dump (FILE *f, conditions conds, bool nl) const > +ipa_predicate::dump (FILE *f, conditions conds, bool nl) const > { > int i; > if (*this == true) > @@ -466,7 +466,7 @@ predicate::dump (FILE *f, conditions conds, bool nl) const > void > -predicate::debug (conditions conds) const > +ipa_predicate::debug (conditions conds) const > { > dump (stderr, conds); > } > @@ -476,11 +476,11 @@ predicate::debug (conditions conds) const > POSSIBLE_TRUTHS is clause of possible truths in the duplicated node, > INFO is inline summary of the duplicated node. */ > -predicate > -predicate::remap_after_duplication (clause_t possible_truths) > +ipa_predicate > +ipa_predicate::remap_after_duplication (clause_t possible_truths) > { > int j; > - predicate out = true; > + ipa_predicate out = true; > for (j = 0; m_clause[j]; j++) > if (!(possible_truths & m_clause[j])) > return false; > @@ -503,26 +503,26 @@ predicate::remap_after_duplication (clause_t > possible_truths) > because they might not be preserved (and should be considered offset zero > for other purposes). */ > -predicate > -predicate::remap_after_inlining (class ipa_fn_summary *info, > +ipa_predicate > +ipa_predicate::remap_after_inlining (class ipa_fn_summary *info, > class ipa_node_params *params_summary, > class ipa_fn_summary *callee_info, > const vec<int> &operand_map, > const vec<HOST_WIDE_INT> &offset_map, > clause_t possible_truths, > - const predicate &toplev_predicate) > + const ipa_predicate &toplev_predicate) > { > int i; > - predicate out = true; > + ipa_predicate out = true; > - /* True predicate is easy. */ > + /* True ipa_predicate is easy. */ > if (*this == true) > return toplev_predicate; > for (i = 0; m_clause[i]; i++) > { > clause_t clause = m_clause[i]; > int cond; > - predicate clause_predicate = false; > + ipa_predicate clause_predicate = false; > gcc_assert (i < max_clauses); > @@ -530,16 +530,15 @@ predicate::remap_after_inlining (class ipa_fn_summary > *info, > /* Do we have condition we can't disprove? */ > if (clause & possible_truths & (1 << cond)) > { > - predicate cond_predicate; > + ipa_predicate cond_predicate; > /* Work out if the condition can translate to predicate in the > inlined function. */ > - if (cond >= predicate::first_dynamic_condition) > + if (cond >= ipa_predicate::first_dynamic_condition) > { > struct condition *c; > - c = &(*callee_info->conds)[cond > - - > - predicate::first_dynamic_condition]; > + int index = cond - ipa_predicate::first_dynamic_condition; > + c = &(*callee_info->conds)[index]; > /* See if we can remap condition operand to caller's operand. > Otherwise give up. */ > if (!operand_map.exists () > @@ -576,7 +575,7 @@ predicate::remap_after_inlining (class ipa_fn_summary > *info, > /* Fixed conditions remains same, construct single > condition predicate. */ > else > - cond_predicate = predicate::predicate_testing_cond (cond); > + cond_predicate = ipa_predicate::predicate_testing_cond (cond); > clause_predicate = clause_predicate.or_with (info->conds, > cond_predicate); > } > @@ -590,7 +589,7 @@ predicate::remap_after_inlining (class ipa_fn_summary > *info, > /* Read predicate from IB. */ > void > -predicate::stream_in (class lto_input_block *ib) > +ipa_predicate::stream_in (class lto_input_block *ib) > { > clause_t clause; > int k = 0; > @@ -611,7 +610,7 @@ predicate::stream_in (class lto_input_block *ib) > /* Write predicate P to OB. */ > void > -predicate::stream_out (struct output_block *ob) > +ipa_predicate::stream_out (struct output_block *ob) > { > int j; > for (j = 0; m_clause[j]; j++) > @@ -629,7 +628,7 @@ predicate::stream_out (struct output_block *ob) > aggregate it is. It can be NULL, which means this not a load from an > aggregate. */ > -predicate > +ipa_predicate > add_condition (class ipa_fn_summary *summary, > class ipa_node_params *params_summary, > int operand_num, > @@ -669,10 +668,10 @@ add_condition (class ipa_fn_summary *summary, > && c->agg_contents == agg_contents > && expr_eval_ops_equal_p (c->param_ops, param_ops) > && (!agg_contents || (c->offset == offset && c->by_ref == by_ref))) > - return predicate::predicate_testing_cond (i); > + return ipa_predicate::predicate_testing_cond (i); > } > /* Too many conditions. Give up and return constant true. */ > - if (i == predicate::num_conditions - predicate::first_dynamic_condition) > + if (i == ipa_predicate::num_conditions - > ipa_predicate::first_dynamic_condition) > return true; > new_cond.operand_num = operand_num; > @@ -694,5 +693,5 @@ add_condition (class ipa_fn_summary *summary, > vec_safe_push (summary->conds, new_cond); > - return predicate::predicate_testing_cond (i); > + return ipa_predicate::predicate_testing_cond (i); > } > diff --git a/gcc/ipa-predicate.h b/gcc/ipa-predicate.h > index ac52b54aa36..190dcedc93f 100644 > --- a/gcc/ipa-predicate.h > +++ b/gcc/ipa-predicate.h > @@ -111,7 +111,7 @@ typedef vec<condition, va_gc> *conditions; > is not. */ > typedef uint32_t clause_t; > -class predicate > +class ipa_predicate > { > public: > enum predicate_conditions > @@ -138,7 +138,7 @@ public: > /* Initialize predicate either to true of false depending on P. */ > - inline predicate (bool p = true) > + inline ipa_predicate (bool p = true) > { > if (p) > /* True predicate. */ > @@ -149,42 +149,42 @@ public: > } > /* Sanity check that we do not mix pointers to predicates with predicates. > */ > - inline predicate (predicate *) > + inline ipa_predicate (ipa_predicate *) > { > gcc_unreachable (); > } > /* Return predicate testing condition I. */ > - static inline predicate predicate_testing_cond (int i) > + static inline ipa_predicate predicate_testing_cond (int i) > { > - class predicate p; > + ipa_predicate p; > p.set_to_cond (i + first_dynamic_condition); > return p; > } > /* Return predicate testing that function was not inlined. */ > - static predicate not_inlined (void) > + static ipa_predicate not_inlined (void) > { > - class predicate p; > + ipa_predicate p; > p.set_to_cond (not_inlined_condition); > return p; > } > - /* Compute logical and of predicates. */ > - predicate & operator &= (const predicate &); > - inline predicate operator &(const predicate &p) const > + /* Compute logical and of ipa_predicates. */ > + ipa_predicate & operator &= (const ipa_predicate &); > + inline ipa_predicate operator &(const ipa_predicate &p) const > { > - predicate ret = *this; > + ipa_predicate ret = *this; > ret &= p; > return ret; > } > - /* Compute logical or of predicates. This is not operator because > + /* Compute logical or of ipa_predicates. This is not operator because > extra parameter CONDITIONS is needed */ > - predicate or_with (conditions, const predicate &) const; > + ipa_predicate or_with (conditions, const ipa_predicate &) const; > - /* Return true if predicates are known to be equal. */ > - inline bool operator==(const predicate &p2) const > + /* Return true if ipa_predicates are known to be equal. */ > + inline bool operator==(const ipa_predicate &p2) const > { > int i; > for (i = 0; m_clause[i]; i++) > @@ -215,7 +215,7 @@ public: > return false; > } > - inline bool operator!=(const predicate &p2) const > + inline bool operator!=(const ipa_predicate &p2) const > { > return !(*this == p2); > } > @@ -236,18 +236,19 @@ public: > void dump (FILE *f, conditions, bool nl=true) const; > void DEBUG_FUNCTION debug (conditions) const; > - /* Return predicate equal to THIS after duplication. */ > - predicate remap_after_duplication (clause_t); > + /* Return ipa_predicate equal to THIS after duplication. */ > + ipa_predicate remap_after_duplication (clause_t); > - /* Return predicate equal to THIS after inlining. */ > - predicate remap_after_inlining (class ipa_fn_summary *, > - class ipa_node_params *params_summary, > - class ipa_fn_summary *, > - const vec<int> &, const vec<HOST_WIDE_INT> &, > - clause_t, const predicate &); > + /* Return ipa_predicate equal to THIS after inlining. */ > + ipa_predicate remap_after_inlining (class ipa_fn_summary *, > + ipa_node_params *params_summary, > + ipa_fn_summary *, > + const vec<int> &, > + const vec<HOST_WIDE_INT> &, > + clause_t, const ipa_predicate &); > - void stream_in (class lto_input_block *); > - void stream_out (struct output_block *); > + void stream_in (lto_input_block *); > + void stream_out (output_block *); > private: > static const int max_clauses = 8; > @@ -264,9 +265,9 @@ private: > }; > void dump_condition (FILE *f, conditions conditions, int cond); > -predicate add_condition (class ipa_fn_summary *summary, > - class ipa_node_params *params_summary, > - int operand_num, > - tree type, struct agg_position_info *aggpos, > - enum tree_code code, tree val, > - expr_eval_ops param_ops = NULL); > +ipa_predicate add_condition (ipa_fn_summary *summary, > + ipa_node_params *params_summary, > + int operand_num, > + tree type, struct agg_position_info *aggpos, > + enum tree_code code, tree val, > + expr_eval_ops param_ops = NULL); > -- > 2.33.1 >