Fixed typos, improved docu
[libfirm] / ir / ana / irconsconfirm.c
index 3830849..8eb0d75 100644 (file)
@@ -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");