belive: Remove unused functions and macros.
[libfirm] / ir / be / beintlive_t.h
index 4786236..eae2e3d 100644 (file)
 #define _BELIVECHK_T_H
 
 #include "irgraph_t.h"
-#include "irphase_t.h"
 #include "iredges_t.h"
 
-#include "statev.h"
+#include "statev_t.h"
 
-#include "beirg_t.h"
-#include "besched_t.h"
+#include "beirg.h"
+#include "besched.h"
 #include "belive_t.h"
 
 /**
@@ -28,7 +27,7 @@
  * @param b The second node.
  * @return 1 if a comes before b in the same block or if a == b, 0 else.
  */
-static INLINE int _value_dominates_intrablock(const ir_node *a, const ir_node *b)
+static inline int _value_dominates_intrablock(const ir_node *a, const ir_node *b)
 {
        /* TODO: ? :  can be removed?! */
        sched_timestep_t as = sched_is_scheduled(a) ? sched_get_time_step(a) : 0;
@@ -42,7 +41,7 @@ static INLINE int _value_dominates_intrablock(const ir_node *a, const ir_node *b
  * @param b The second node.
  * @return 1 if a comes before b in the same block, 0 else.
  */
-static INLINE int _value_strictly_dominates_intrablock(const ir_node *a, const ir_node *b)
+static inline int _value_strictly_dominates_intrablock(const ir_node *a, const ir_node *b)
 {
        /* TODO: ? :  can be removed?! */
        sched_timestep_t as = sched_is_scheduled(a) ? sched_get_time_step(a) : 0;
@@ -57,7 +56,7 @@ static INLINE int _value_strictly_dominates_intrablock(const ir_node *a, const i
  * @param b The second node.
  * @return 1 if a dominates b or if a == b, 0 else.
  */
-static INLINE int _value_dominates(const ir_node *a, const ir_node *b)
+static inline int _value_dominates(const ir_node *a, const ir_node *b)
 {
        const ir_node *block_a = get_block_const(a);
        const ir_node *block_b = get_block_const(b);
@@ -83,7 +82,7 @@ static INLINE int _value_dominates(const ir_node *a, const ir_node *b)
  * @param b The second node.
  * @return 1 if a dominates b, 0 else.
  */
-static INLINE int _value_strictly_dominates(const ir_node *a, const ir_node *b)
+static inline int _value_strictly_dominates(const ir_node *a, const ir_node *b)
 {
        const ir_node *block_a = get_block_const(a);
        const ir_node *block_b = get_block_const(b);
@@ -104,19 +103,17 @@ static INLINE int _value_strictly_dominates(const ir_node *a, const ir_node *b)
 
 /**
  * Check, if two values interfere.
- * @param lv Liveness information (in the future we should use a be_irg_t here).
+ * @param lv Liveness information
  * @param a The first value.
  * @param b The second value.
  * @return 1, if a and b interfere, 0 if not.
  */
-static INLINE int _lv_values_interfere(const be_lv_t *lv, const ir_node *a, const ir_node *b)
+static inline int be_values_interfere(const be_lv_t *lv, const ir_node *a, const ir_node *b)
 {
        int a2b = _value_dominates(a, b);
        int b2a = _value_dominates(b, a);
        int res = 0;
 
-       stat_ev_ctx_push("beintlive");
-
        /*
         * Adjust a and b so, that a dominates b if
         * a dominates b or vice versa.
@@ -130,11 +127,8 @@ static INLINE int _lv_values_interfere(const be_lv_t *lv, const ir_node *a, cons
 
        /* If there is no dominance relation, they do not interfere. */
        if(a2b) {
-               const ir_edge_t *edge;
                ir_node *bb = get_nodes_block(b);
 
-               stat_ev_dbl("beintlive_ignore", arch_irn_is(&lv->birg->main_env->arch_env, a, ignore));
-
                /*
                 * If a is live end in b's block it is
                 * live at b's definition (a dominates b)
@@ -162,10 +156,9 @@ static INLINE int _lv_values_interfere(const be_lv_t *lv, const ir_node *a, cons
                                goto end;
                        }
                }
-       }
+       }
 
 end:
-       stat_ev_ctx_pop("beintlive");
        return res;
 }
 
@@ -178,7 +171,7 @@ end:
  * @param edge The use.
  * @return     1, if @p irn dominates the use @p edge.
  */
-static INLINE int _dominates_use(const ir_node *irn, const ir_edge_t *edge)
+static inline int _dominates_use(const ir_node *irn, const ir_edge_t *edge)
 {
        ir_node *use = get_edge_src_irn(edge);
 
@@ -193,85 +186,7 @@ static INLINE int _dominates_use(const ir_node *irn, const ir_edge_t *edge)
        return _value_dominates(irn, use);
 }
 
-/**
- * Check if a node strictly dominates a use.
- * Note that the use of a phi is in its corresponding predecessor.
- * @param irn  The node.
- * @param edge The use.
- * @return     1, if @p irn strictly dominates the use @p edge.
- */
-static INLINE int _strictly_dominates_use(const ir_node *irn, const ir_edge_t *edge)
-{
-       return get_edge_src_irn(edge) != irn && _dominates_use(irn, edge);
-}
-
-/**
- * Check, if a node is live in front of another.
- * @param birg  The backend irg.
- * @param irn   The node.
- * @param where The location to check for.
- * @return      1, if @p irn is live in front of @p where.
- */
-static INLINE int _be_lv_chk_before_irn(const be_irg_t *birg, const ir_node *irn, const ir_node *where)
-{
-       const be_lv_t *lv = be_get_birg_liveness(birg);
-       const ir_edge_t *edge;
-
-       /* the node must strictly dominate the location, else it cannot be live there. */
-       if (!_value_dominates(irn, where) || irn == where)
-               return 0;
-
-       /*
-        * now that it is clear that it strictly dominates the location it is surely live
-        * if it is also live end at the block.
-        */
-       if (be_is_live_end(lv, get_nodes_block(where), irn))
-               return 1;
-
-       /*
-        * If the node is not live out, we have to check if there
-        * is a use which is dominated by the location.
-        */
-       foreach_out_edge (irn, edge) {
-               if (_dominates_use(where, edge))
-                       return 1;
-       }
-
-       return 0;
-}
-
-/**
- * Check, if a node is live after another node.
- * @param birg  The backend irg.
- * @param irn   The node.
- * @param where The location to check for.
- * @return      1, if @p irn is live after @p where.
- */
-static INLINE int _be_lv_chk_after_irn(const be_irg_t *birg, const ir_node *irn, const ir_node *where)
-{
-       const be_lv_t *lv = be_get_birg_liveness(birg);
-       const ir_edge_t *edge;
-
-       if (!_value_dominates(irn, where))
-               return 0;
-
-       if (be_is_live_end(lv, get_nodes_block(where), irn))
-               return 1;
-
-       foreach_out_edge (irn, edge) {
-               if (_strictly_dominates_use(where, edge))
-                       return 1;
-       }
-
-       return 0;
-}
-
-#define value_dominates_intrablock(a, b)         _value_dominates_intrablock(a, b)
 #define value_dominates(a, b)                    _value_dominates(a, b)
-#define values_interfere(birg, a, b)             _lv_values_interfere(be_get_birg_liveness(birg), a, b)
 #define dominates_use(a, e)                      _dominates_use(a, e)
-#define strictly_dominates_use(a, e)             _strictly_dominates_use(a, e)
-#define be_lv_chk_before_irn(birg, a, b)         _be_lv_chk_before_irn(birg, a, b)
-#define be_lv_chk_after_irn(birg, a, b)          _be_lv_chk_after_irn(birg, a, b)
 
-#endif /* _BELIVECHK_T_H */
+#endif