is_ASM() added
[libfirm] / ir / ir / iropt_dbg.h
index c567ea6..3d44948 100644 (file)
@@ -1,17 +1,30 @@
 /*
- * Project:     libFIRM
- * File name:   ir/ir/iropt_dbg.h
- * Purpose:     Debug makros used in iropt.
- * Author:      Goetz Lindenmaier
- * Modified by:
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (c) 2001-2003 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
  */
 
-#ifndef _IROPT_DBG_H_
-#define _IROPT_DBG_H_
+/**
+ * @file
+ * @brief   Debug makros used in iropt.
+ * @author  Goetz Lindenmaier
+ * @version $Id$
+ */
+#ifndef FIRM_IR_IROPT_DBG_H
+#define FIRM_IR_IROPT_DBG_H
 
 #include "dbginfo_t.h"
 #include "irhooks.h"
   } while(0)
 
 /**
- * Merge the debuig info due to a Phi optimization.
+ * Merge the debug info due to a Phi optimization.
  * A Phi node was replaced by one of its input (the only meaningful)
  *
  * @param phi  the Phi node that will be replaced
   } while(0)
 
 
+/**
+ * Merge the debug info due to a Sync optimization.
+ * A Sync node was replaced by one of its input (the only meaningful)
+ *
+ * @param sync  the Sync node that will be replaced
+ * @param n     in Sync Input that will replace Sync
+ */
+#define DBG_OPT_SYNC(sync, n)                                   \
+  do {                                                          \
+         hook_merge_nodes(&n, 1, &sync, 1, HOOK_OPT_SYNC);               \
+         __dbg_info_merge_sets(&n, 1, &sync, 1, dbg_opt_ssa);        \
+  } while(0)
+
+
 /**
  * Merge the debug info due to Write-after-Write optimization:
  * Store oldst will be removed, because Store st overwrites it.
  * A node was replaced by a constant due to a Confimation.
  *
  * @param oldn  the old node
- * @param c     the new constnt node
+ * @param c     the new constant node
  */
 #define DBG_OPT_CONFIRM_C(oldn, c)                              \
   do {                                                          \
     __dbg_info_merge_pair(c, oldn, dbg_opt_confirm);            \
   } while(0)
 
+/**
+ * A exception exdge was removed due to a Confirmation prove.
+ *
+ * @param oldn  the old node
+ */
+#define DBG_OPT_EXC_REM(oldn)                                   \
+  do {                                                          \
+    hook_merge_nodes(NULL, 0, &oldn, 1, HOOK_OPT_EXC_REM);      \
+  } while(0)
+
 /**
  * A node could be evaluated to a value due to a Confirm.
  * This will lead to a constant evaluation.
     hook_merge_nodes(NULL, 0, &n, 1, HOOK_OPT_CONFIRM_E);    \
   } while(0)
 
-#endif /* _IROPT_DBG_H_ */
+#endif