/* Nonzero if this statement contains volatile operands. */
unsigned has_volatile_ops : 1;
- /* Padding to get subcode to 16 bit alignment. */
- unsigned pad : 1;
-
/* The SUBCODE field can be used for tuple-specific flags for tuples
that do not require subcodes. Note that SUBCODE should be at
least as wide as tree codes, as several tuples store tree codes
/* Returns true iff T is a valid GIMPLE statement. */
extern bool is_gimple_stmt (tree);
-/* Returns true iff TYPE is a valid type for a scalar register variable. */
-extern bool is_gimple_reg_type (tree);
/* Returns true iff T is a scalar register variable. */
extern bool is_gimple_reg (tree);
/* Returns true iff T is any sort of variable. */
/* In trans-mem.c. */
extern void diagnose_tm_safe_errors (tree);
+extern void compute_transaction_bits (void);
/* In tree-nested.c. */
extern void lower_nested_functions (tree);
stmt->gsbase.has_volatile_ops = (unsigned) volatilep;
}
+/* Return true if BB is in a transaction. */
+
+static inline bool
+block_in_transaction (basic_block bb)
+{
+ return flag_tm && bb->flags & BB_IN_TRANSACTION;
+}
+
+/* Return true if STMT is in a transaction. */
+
+static inline bool
+gimple_in_transaction (gimple stmt)
+{
+ return block_in_transaction (gimple_bb (stmt));
+}
/* Return true if statement STMT may access memory. */
return void_type_node;
}
+/* Return true if TYPE is a suitable type for a scalar register variable. */
+
+static inline bool
+is_gimple_reg_type (tree type)
+{
+ return !AGGREGATE_TYPE_P (type);
+}
/* Return a new iterator pointing to GIMPLE_SEQ's first statement. */