Bad and Unknown are pinned instructions yet, speeding up code placement
[libfirm] / ir / ir / irflag_t.h
index 464ee68..92f6253 100644 (file)
@@ -69,6 +69,18 @@ typedef enum {
    */
   OPT_NORMALIZE                          = 0x00001000,
 
+  /** Remove tail-recursion. */
+  OPT_TAIL_RECURSION                     = 0x00002000,
+
+  /** Free never called methods */
+  OPT_DEAD_METHOD_ELIMINATION            = 0x00004000,
+
+  /** precise exception context */
+  OPT_PRECISE_EXC_CONTEXT                = 0x00008000,
+
+  /** Free never called methods */
+  OPT_DEAD_METHOD_ELIMINATION_VERBOSE    = 0x00010000,
+
   /** Turn off all optimizations. */
   OPT_OPTIMIZED                          = 0x40000000,
 } libfirm_opts_t;
@@ -135,6 +147,18 @@ static INLINE int get_opt_dead_node_elimination(void)
   return libFIRM_opt & OPT_DEAD_NODE_ELIMINATION;
 }
 
+/** Returns dead method elimination setting. */
+static INLINE int get_opt_dead_method_elimination(void)
+{
+  return libFIRM_opt & OPT_DEAD_METHOD_ELIMINATION;
+}
+
+/** Returns dead method elimination setting. */
+static INLINE int get_opt_dead_method_elimination_verbose(void)
+{
+  return libFIRM_opt & OPT_DEAD_METHOD_ELIMINATION_VERBOSE;
+}
+
 /** Returns global optimization setting */
 static INLINE int get_opt_optimize(void)
 {
@@ -157,4 +181,16 @@ static INLINE int get_opt_normalize(void)
   return libFIRM_opt & OPT_NORMALIZE;
 }
 
+/** Returns tail-recursion setting. */
+static INLINE int get_opt_tail_recursion(void)
+{
+  return libFIRM_opt & OPT_TAIL_RECURSION;
+}
+
+/** Returns precise exception context setting. */
+static INLINE int get_opt_precise_exc_context(void)
+{
+  return libFIRM_opt & OPT_PRECISE_EXC_CONTEXT;
+}
+
 #endif /* _IRFLAG_T_H_ */