Fixed typos, improved docu
[libfirm] / ir / ana / irconsconfirm.c
index 75131fc..8eb0d75 100644 (file)
@@ -71,7 +71,7 @@ static void handle_case(ir_node *block, ir_node *irn, long nr, env_t *env)
 
       if (! c) {
         ir_mode *mode = get_irn_mode(irn);
-        type *tp      = get_irn_type(irn);
+        ir_type *tp   = get_irn_type(irn);
         tarval *tv    = new_tarval_from_long(nr, mode);
         c = new_r_Const_type(current_ir_graph, block, mode, tv, tp);
       }
@@ -98,7 +98,7 @@ static void handle_if(ir_node *block, ir_node *cmp, pn_Cmp pnc, env_t *env)
 {
   ir_node *left  = get_Cmp_left(cmp);
   ir_node *right = get_Cmp_right(cmp);
-       ir_op *op;
+  ir_op *op;
   const ir_edge_t *edge, *next;
 
   /* Beware of Bads */
@@ -107,6 +107,11 @@ static void handle_if(ir_node *block, ir_node *cmp, pn_Cmp pnc, env_t *env)
 
   op = get_irn_op(left);
 
+  /* Do not create Confirm nodes for Cmp(Const, Const) constructs.
+     These are removed anyway */
+  if (op == op_Const && is_Const(right))
+    return;
+
   /* try to place the constant on the right side for a Confirm */
   if (op == op_Const || op == op_SymConst) {
     ir_node *t = left;
@@ -240,10 +245,8 @@ void construct_confirms(ir_graph *irg)
   env_t env;
   int edges_active = edges_activated(irg);
 
-  if (get_irg_dom_state(irg) != dom_consistent) {
-    /* we need dominance info */
-    compute_doms(irg);
-  }
+  /* we need dominance info */
+  assure_doms(irg);
 
   assert(get_irg_pinned(irg) == op_pin_state_pinned &&
     "Nodes must be placed to insert Confirms");