aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-fnsummary.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ipa-fnsummary.c')
-rw-r--r--gcc/ipa-fnsummary.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c
index 4e5be81..95d2875 100644
--- a/gcc/ipa-fnsummary.c
+++ b/gcc/ipa-fnsummary.c
@@ -85,6 +85,7 @@ along with GCC; see the file COPYING3. If not see
#include "attribs.h"
#include "tree-into-ssa.h"
#include "symtab-clones.h"
+#include "gimple-range.h"
/* Summaries. */
fast_function_summary <ipa_fn_summary *, va_gc> *ipa_fn_summaries;
@@ -1687,8 +1688,14 @@ set_switch_stmt_execution_predicate (struct ipa_func_body_info *fbi,
int bound_limit = opt_for_fn (fbi->node->decl,
param_ipa_max_switch_predicate_bounds);
int bound_count = 0;
- wide_int vr_wmin, vr_wmax;
- value_range_kind vr_type = get_range_info (op, &vr_wmin, &vr_wmax);
+ value_range vr;
+
+ get_range_query (cfun)->range_of_expr (vr, op);
+ if (vr.undefined_p ())
+ vr.set_varying (TREE_TYPE (op));
+ value_range_kind vr_type = vr.kind ();
+ wide_int vr_wmin = wi::to_wide (vr.min ());
+ wide_int vr_wmax = wi::to_wide (vr.max ());
FOR_EACH_EDGE (e, ei, bb->succs)
{