sparc: implement float->unsigned conversions
[libfirm] / ir / be / beirg.c
index c19bac6..36504b5 100644 (file)
@@ -22,7 +22,6 @@
  * @brief       Backend irg - a ir_graph with additional analysis information.
  * @author      Matthias Braun
  * @date        13.12.2006
- * @version     $Id$
  */
 #include "config.h"
 
 #include "belive.h"
 #include "bedomfront.h"
 
-be_lv_t *be_assure_liveness(be_irg_t *birg)
-{
-       if (birg->lv != NULL)
-               return birg->lv;
-
-       return birg->lv = be_liveness(birg->irg);
-}
-
-void be_assure_dom_front(be_irg_t *birg)
+void be_assure_dom_front(ir_graph *irg)
 {
+       be_irg_t *birg = be_birg_from_irg(irg);
        if (birg->dom_front != NULL)
                return;
 
        birg->dom_front = be_compute_dominance_frontiers(birg->irg);
 }
 
-void be_invalidate_dom_front(be_irg_t *birg)
+void be_invalidate_dom_front(ir_graph *irg)
 {
+       be_irg_t *birg = be_birg_from_irg(irg);
        if (birg->dom_front == NULL)
                return;
 
@@ -57,8 +50,33 @@ void be_invalidate_dom_front(be_irg_t *birg)
        birg->dom_front = NULL;
 }
 
-void be_free_birg(be_irg_t *birg)
+void be_invalidate_live_sets(ir_graph *irg)
 {
+       be_irg_t *birg = be_birg_from_irg(irg);
+       be_liveness_invalidate_sets(birg->lv);
+}
+
+void be_invalidate_live_chk(ir_graph *irg)
+{
+       be_irg_t *birg = be_birg_from_irg(irg);
+       be_liveness_invalidate_chk(birg->lv);
+}
+
+void be_assure_live_sets(ir_graph *irg)
+{
+       be_irg_t *birg = be_birg_from_irg(irg);
+       be_liveness_compute_sets(birg->lv);
+}
+
+void be_assure_live_chk(ir_graph *irg)
+{
+       be_irg_t *birg = be_birg_from_irg(irg);
+       be_liveness_compute_chk(birg->lv);
+}
+
+void be_free_birg(ir_graph *irg)
+{
+       be_irg_t *birg = be_birg_from_irg(irg);
        free_execfreq(birg->exec_freq);
        birg->exec_freq = NULL;
 
@@ -70,4 +88,7 @@ void be_free_birg(be_irg_t *birg)
                be_liveness_free(birg->lv);
                birg->lv = NULL;
        }
+
+       obstack_free(&birg->obst, NULL);
+       irg->be_data = NULL;
 }