aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-lives.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/lra-lives.cc')
-rw-r--r--gcc/lra-lives.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/lra-lives.cc b/gcc/lra-lives.cc
index ffce162..3b1d7a9 100644
--- a/gcc/lra-lives.cc
+++ b/gcc/lra-lives.cc
@@ -113,6 +113,15 @@ free_live_range_list (lra_live_range_t lr)
}
}
+/* Reset and release live range list LR. */
+void
+lra_reset_live_range_list (lra_live_range_t &lr)
+{
+ lra_live_range_t first = lr;
+ lr = NULL;
+ free_live_range_list (first);
+}
+
/* Create and return pseudo live range with given attributes. */
static lra_live_range_t
create_live_range (int regno, int start, int finish, lra_live_range_t next)
@@ -1524,6 +1533,19 @@ lra_create_live_ranges (bool all_p, bool dead_insn_p)
lra_assert (! res);
}
+/* Run lra_create_live_ranges if !complete_info_p. Return FALSE iff
+ live ranges are known to have remained unchanged. */
+
+bool
+lra_complete_live_ranges (void)
+{
+ if (complete_info_p)
+ return false;
+
+ lra_create_live_ranges (true, true);
+ return true;
+}
+
/* Finish all live ranges. */
void
lra_clear_live_ranges (void)