aboutsummaryrefslogtreecommitdiff
path: root/gcc/vr-values.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-07-31 10:55:27 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-07-31 10:55:27 +0000
commitf86c2e7196bdf285c0245064be96a0b2816e013a (patch)
tree5204ab9fd288bbc885bb9cf97b5d19de5a1051ae /gcc/vr-values.c
parentf39b06395e90d8c70548eedadc30e880f6426b26 (diff)
downloadgcc-f86c2e7196bdf285c0245064be96a0b2816e013a.zip
gcc-f86c2e7196bdf285c0245064be96a0b2816e013a.tar.gz
gcc-f86c2e7196bdf285c0245064be96a0b2816e013a.tar.bz2
vr-values.h (vr_values::swap_vr_value): New.
2019-07-31 Richard Biener <rguenther@suse.de> * vr-values.h (vr_values::swap_vr_value): New. (vr_values::free_value_range): likewise. * vr-values.c (vr_values::swap_vr_value): Implement. * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range): Do not return a range or take a var. (evrp_range_analyzer::stack): Change back to recording a non-const value_range *. * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::record_ranges_from_stmt): Free unused value-range. (evrp_range_analyzer::pop_to_marker): Adjust. (evrp_range_analyzer::push_value_range): Use new swap_vr_value. (evrp_range_analyzer::pop_value_range): Likewise. Free the no longer needed value-range. From-SVN: r273930
Diffstat (limited to 'gcc/vr-values.c')
-rw-r--r--gcc/vr-values.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/vr-values.c b/gcc/vr-values.c
index d033099..3acbdf6 100644
--- a/gcc/vr-values.c
+++ b/gcc/vr-values.c
@@ -4315,6 +4315,8 @@ vr_values::simplify_stmt_using_ranges (gimple_stmt_iterator *gsi)
return false;
}
+/* Set the lattice entry for VAR to VR. */
+
void
vr_values::set_vr_value (tree var, value_range *vr)
{
@@ -4323,3 +4325,13 @@ vr_values::set_vr_value (tree var, value_range *vr)
vr_value[SSA_NAME_VERSION (var)] = vr;
}
+/* Swap the lattice entry for VAR with VR and return the old entry. */
+
+value_range *
+vr_values::swap_vr_value (tree var, value_range *vr)
+{
+ if (SSA_NAME_VERSION (var) >= num_vr_values)
+ return NULL;
+ std::swap (vr_value[SSA_NAME_VERSION (var)], vr);
+ return vr;
+}