- add options to the list tail, so they are shown in the same order they are declared
[libfirm] / ir / ana / irconsconfirm.c
index 1855770..de47534 100644 (file)
@@ -24,9 +24,7 @@
  * @date     6.2005
  * @version  $Id$
  */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
 
 #include "irgraph_t.h"
 #include "irnode_t.h"
@@ -385,9 +383,8 @@ static void insert_Confirm_in_block(ir_node *block, void *env) {
                ir_node *cmp;
                pn_Cmp pnc;
 
-#if 0
                handle_modeb(block, selector, get_Proj_proj(proj), env);
-#endif
+
                /* this should be an IF, check this */
                if (! is_Proj(selector))
                        return;
@@ -458,19 +455,9 @@ static void insert_non_null(ir_node *ptr, ir_node *block, env_t *env) {
                ir_node *blk;
 
 
-               if (is_Confirm(succ)) {
-                       /* beware of loops */
+               /* for now, we place a Confirm only in front of a Cmp */
+               if (! is_Cmp(succ))
                        continue;
-               }
-
-               if ((is_Load(succ) || is_Store(succ)) &&
-                       get_nodes_block(succ) == block) {
-                       /* Ignore Loads and Store in the same block for now,
-                          because we are not sure if they are dominated.
-                          This is not a bad restriction: if exception flow is
-                          present, they are in other blocks either. */
-                       continue;
-               }
 
                pos = get_edge_src_pos(edge);
                blk = get_effective_use_block(succ, pos);
@@ -550,7 +537,7 @@ void construct_confirms(ir_graph *irg) {
        env.num_eq       = 0;
        env.num_non_null = 0;
 
-       if (0 && get_opt_global_null_ptr_elimination()) {
+       if (get_opt_global_null_ptr_elimination()) {
                /* do global NULL test elimination */
                irg_walk_graph(irg, insert_Confirm, NULL, &env);
        } else {