* Construct a tarval that represents the address of the entity.
*
* The address must be constant, the entity must have as owner the global type.
+ * We no more support this function: Use the new SymConst instead.
*/
tarval *new_tarval_from_entity (entity *ent, ir_mode *mode);
*/
int tarval_is_null(tarval *a);
+/**
+ * Returns 1 if tv is the "one"
+ *
+ * @param a the tarval
+ */
+int tarval_is_one(tarval *a);
+
/** The 'bad' tarval. */
extern tarval *tarval_bad;
/** Returns the 'bad tarval. */
unsigned char tarval_sub_bits(tarval *tv, unsigned byte_ofs);
/**
- * Identifying some tarvals ???
- *
+ * Return values of tarval classify
+ */
+typedef enum _tarval_classification_t {
+ TV_CLASSIFY_NULL = 0, /**< the tarval represents the additive neutral element */
+ TV_CLASSIFY_ONE = +1, /**< the tarval represents the multiplicative neutral element */
+ TV_CLASSIFY_ALL_ONE = -1, /**< the tarval represents the bitwise-and neutral element */
+ TV_CLASSIFY_OTHER = 2 /**< all other tarvals */
+} tarval_classification_t;
+
+/**
+ * Identifying tarvals values for algebraic simplifications.
+ * @param tv
* @return
- * - 0 for additive neutral,
- * - +1 for multiplicative neutral,
- * - -1 for bitwise-and neutral
- * - 2 else
- *
- * @deprecated
- * This function is deprecated and its use strongly discouraged.
- * Implemented for completeness.
+ * - TV_CLASSIFY_NULL for additive neutral,
+ * - TV_CLASSIFY_ONE for multiplicative neutral,
+ * - TV_CLASSIFY_ALL_ONE for bitwise-and neutral
+ * - TV_CLASSIFY_OTHER else
*/
-long tarval_classify(tarval *tv);
+tarval_classification_t tarval_classify(tarval *tv);
/**
* Initialization of the tarval module.
*/
void init_tarval_2(void);
+void finish_tarval(void);
+
/**
* Output of tarvals to a buffer.
*/