From b6185106b1d0dbaf2009eebb5414bba484172c87 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Tue, 24 May 2005 13:44:17 +0000 Subject: [PATCH] irop_flag_highlevel flag added [r5889] --- ir/ir/irop_t.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ir/ir/irop_t.h b/ir/ir/irop_t.h index 341ace1df..84e8a1ba4 100644 --- a/ir/ir/irop_t.h +++ b/ir/ir/irop_t.h @@ -36,14 +36,16 @@ typedef enum { /** The irop flags */ typedef enum { - irop_flag_none = 0x00000000, /**< nothing */ + irop_flag_none = 0x00000000, /**< nothing */ irop_flag_labeled = 0x00000001, /**< if set, Output edge labels on in-edges in vcg graph */ irop_flag_commutative = 0x00000002, /**< operation is commutative */ - irop_flag_cfopcode = 0x00000004, /**< is a control flow operation */ + irop_flag_cfopcode = 0x00000004, /**< is a control flow operation */ irop_flag_ip_cfopcode = 0x00000008, /**< operation manipulates interprocedural control flow */ irop_flag_fragile = 0x00000010, /**< set if the operation can change the control flow because of an exception */ - irop_flag_forking = 0x00000020, /**< the operation is a forking control flow */ + irop_flag_forking = 0x00000020, /**< the operation is a forking control flow */ + irop_flag_highlevel = 0x00000040, /**< the operation is a pure high-level one and can be + skipped in low-level optimizations */ } irop_flags; @@ -208,6 +210,11 @@ static INLINE int is_op_forking(const ir_op *op) { return op->flags & irop_flag_forking; } +/* Returns non-zero if operation is a high-level op */ +static INLINE int is_op_highlevel(const ir_op *op) { + return op->flags & irop_flag_highlevel; +} + static INLINE opcode __get_op_code(const ir_op *op) { return op->code; } -- 2.20.1