Fixed documentation od tarval_classify and add new enum to make things more clear
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 9 Jan 2004 17:08:02 +0000 (17:08 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 9 Jan 2004 17:08:02 +0000 (17:08 +0000)
[r2275]

ir/tv/tv.c
ir/tv/tv.h

index 641d967..cd4e460 100644 (file)
@@ -1472,26 +1472,29 @@ const tarval_mode_info *tarval_get_mode_output_option(ir_mode *mode)
   return mode->tv_priv;
 }
 
-
-/* Identifying some tarvals ??? */
-/* Implemented in old tv.c as such:
- *   return 0 for additive neutral,
- *   1 for multiplicative neutral,
- *   -1 for bitwise-and neutral
- *   2 else
+/*
+ * Identifying tarvals values for algebraic simplifications.
  *
- * Implemented for compatibility */
-long tarval_classify(tarval *tv)
+ * Returns:
+ *   - TV_CLASSIFY_NULL    for additive neutral,
+ *   - TV_CLASSIFY_ONE     for multiplicative neutral,
+ *   - TV_CLASSIFY_ALL_ONE for bitwise-and neutral
+ *   - TV_CLASSIFY_OTHER   else
+ */
+tarval_classification_t tarval_classify(tarval *tv)
 {
   ANNOUNCE();
-  if (!tv || tv == tarval_bad) return 2;
+  if (!tv || tv == tarval_bad) return TV_CLASSIFY_OTHER;
 
-  if (tv == get_mode_null(tv->mode)) return 0;
-  else if (tv == get_mode_one(tv->mode)) return 1;
+  if (tv == get_mode_null(tv->mode))
+    return TV_CLASSIFY_NULL;
+  else if (tv == get_mode_one(tv->mode))
+    return TV_CLASSIFY_ONE;
   else if ((get_mode_sort(tv->mode) == irms_int_number)
-           && (tv == new_tarval_from_long(-1, tv->mode))) return -1;
+           && (tv == new_tarval_from_long(-1, tv->mode)))
+    return TV_CLASSIFY_ALL_ONE;
 
-  return 2;
+  return TV_CLASSIFY_OTHER;
 }
 
 /**
index d56ab44..9778967 100644 (file)
@@ -560,19 +560,25 @@ char *tarval_bitpattern(tarval *tv);
 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.