remove MacroBlock concept
[libfirm] / ir / be / beabihelper.c
index 0022c37..97547e3 100644 (file)
@@ -34,7 +34,7 @@
 #include "iredges.h"
 #include "irgwalk.h"
 #include "irphase_t.h"
-#include "height.h"
+#include "heights.h"
 
 typedef struct reg_flag_t {
        const arch_register_t *reg;   /**< register at an input position.
@@ -400,13 +400,14 @@ static void add_missing_keep_walker(ir_node *node, void *data)
        rbitset_alloca(found_projs, n_outs);
        foreach_out_edge(node, edge) {
                ir_node *succ = get_edge_src_irn(edge);
+               ir_mode *mode = get_irn_mode(succ);
                int      pn;
 
                /* The node could be kept */
                if (is_End(succ) || is_Anchor(succ))
                        continue;
 
-               if (get_irn_mode(succ) == mode_M)
+               if (mode == mode_M || mode == mode_X)
                        continue;
 
                pn = get_Proj_proj(succ);
@@ -496,7 +497,7 @@ static void link_ops_in_block_walker(ir_node *node, void *data)
        }
 }
 
-static heights_t *heights;
+static ir_heights_t *heights;
 
 /**
  * Check if a node is somehow data dependent on another one.