add global_null_ptr_elimination flag
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 2 Oct 2008 13:32:04 +0000 (13:32 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 2 Oct 2008 13:32:04 +0000 (13:32 +0000)
[r22411]

include/libfirm/irflag.h
ir/ir/irflag_t.def

index e95b3de..b25127e 100644 (file)
@@ -212,10 +212,21 @@ void set_opt_ldst_only_null_ptr_exceptions(int value);
  * Enabling this flag is meaningless if ldst_non_null_exceptions is
  * enabled.
  *
- * This flags should be set for Java style languages.
+ * This flag should be set for Java style languages.
  */
 void set_opt_sel_based_null_check_elim(int value);
 
+/**
+ * Enable/Disable Global Null Pointer Test Elimination.
+ *
+ * In languages where it is illegal to dereference NULL pointer, doing
+ * so makes the pointer "valid non-null", else the program will stop
+ * anyway by a fault.
+ *
+ * This flag should be set for C style languages.
+ */
+void set_opt_global_null_ptr_elimination(int value);
+
 /**
  * Enable/Disable Automatic construction of Sync nodes during
  * Firm construction.
@@ -223,7 +234,7 @@ void set_opt_sel_based_null_check_elim(int value);
  * If this flags is set, sequential non-volatile Loads are automatically
  * rearranged so that they can be executed in parallel by creating Sync nodes.
  *
- * This flags should be set for Java style languages.
+ * This flag should be set for Java style languages.
  */
 void set_opt_auto_create_sync(int value);
 
index e464a6c..e735997 100644 (file)
@@ -64,6 +64,9 @@ I_FLAG(algebraic_simplification           , 8, ON)
 /** Use combo instead of df/cf optimizations. */
 I_FLAG(combo                              , 9, ON)
 
+/** Use Global Null Pointer Test elimination. */
+I_FLAG(global_null_ptr_elimination        , 10, ON)
+
 /** Remove dynamic method dispatch. */
 E_FLAG(dyn_meth_dispatch                  , 11, ON)