skipped in low-level optimizations. */
irop_flag_constlike = 1U << 5, /**< This operation has no arguments and is some
kind of a constant. */
- irop_flag_always_opt = 1U << 6, /**< This operation must always be optimized .*/
- irop_flag_keep = 1U << 7, /**< This operation can be kept in End's keep-alive list. */
- irop_flag_start_block = 1U << 8, /**< This operation is always placed in the Start block. */
- irop_flag_uses_memory = 1U << 9, /**< This operation has a memory input and may change the memory state. */
- irop_flag_dump_noblock = 1U << 10, /**< node should be dumped outside any blocks */
- irop_flag_cse_neutral = 1U << 11, /**< This operation is CSE neutral to its users. */
+ irop_flag_keep = 1U << 6, /**< This operation can be kept in End's keep-alive list. */
+ irop_flag_start_block = 1U << 7, /**< This operation is always placed in the Start block. */
+ irop_flag_uses_memory = 1U << 8, /**< This operation has a memory input and may change the memory state. */
+ irop_flag_dump_noblock = 1U << 9, /**< node should be dumped outside any blocks */
+ irop_flag_cse_neutral = 1U << 10, /**< This operation is CSE neutral to its users. */
/** This operation jumps to an unknown destination. The CFG is a
* conservative aproximation in this case. You cannot change the destination
* of an unknown_jump */
- irop_flag_unknown_jump = 1U << 12,
+ irop_flag_unknown_jump = 1U << 11,
} irop_flags;
/** Returns the ident for the opcode name */
my %known_flags = map { $_ => 1 } (
"none", "commutative", "cfopcode", "unknown_jump", "fragile",
- "forking", "highlevel", "constlike", "always_opt", "keep",
- "start_block", "uses_memory", "dump_noblock", "cse_neutral"
+ "forking", "highlevel", "constlike", "keep", "start_block",
+ "uses_memory", "dump_noblock", "cse_neutral"
);
my $is_fragile = 0;
foreach my $flag (@{$n{"op_flags"}}) {
return is_op_constlike(get_irn_op_(node));
}
-static inline int is_irn_always_opt_(const ir_node *node)
-{
- return is_op_always_opt(get_irn_op_(node));
-}
-
static inline int is_irn_keep_(const ir_node *node)
{
return is_op_keep(get_irn_op_(node));
#define get_irn_type_attr(node) get_irn_type_attr_(node)
#define get_irn_entity_attr(node) get_irn_entity_attr_(node)
#define is_irn_constlike(node) is_irn_constlike_(node)
-#define is_irn_always_opt(node) is_irn_always_opt_(node)
#define is_irn_keep(node) is_irn_keep_(node)
#define is_irn_start_block_placed(node) is_irn_start_block_placed_(node)
#define is_irn_cse_neutral(node) is_irn_cse_neutral_(node)
return op->flags & irop_flag_uses_memory;
}
-/** Returns non-zero if operation must always be optimized */
-static inline bool is_op_always_opt(const ir_op *op)
-{
- return op->flags & irop_flag_always_opt;
-}
-
/** Returns non-zero if operation is a keep-like op */
static inline bool is_op_keep(const ir_op *op)
{