* of floating point accuracy and correctness. Explicit rounding is disabled.
*/
typedef enum _fp_model_t {
- fp_explicit_rounding = 1, /**< Explicit rounding at assignments, typecasts, return
- and function calls. Conv nodes may NOT be removed, even
- if they look useless. */
- fp_strict_algebraic = 2, /**< Strict adherence to non-associative and non-distributive
- algebra unless the same result is guaranteed. */
- fp_contradictions = 4, /**< FP contradictions are enabled. Only for backend. */
- fp_strict_eval_order = 8, /**< FP instructions must be strict evaluated in given order. */
- fp_exceptions = 16, /**< FP exceptions are supported. No reordering that changes
- the exception flow are allowed. Backends must generate
- synchronized exception code. */
- fp_environment_access = 32, /**< FPU environment can be accessed. Even Constant folding
- cannot be done. */
+ fp_explicit_rounding = 1, /**< Explicit rounding at assignments, typecasts, return
+ and function calls. Conv nodes may NOT be removed, even
+ if they look useless. */
+ fp_strict_algebraic = 2, /**< Strict adherence to non-associative and non-distributive
+ algebra unless the same result is guaranteed. */
+ fp_contradictions = 4, /**< FP contradictions are enabled. Only for backend. */
+ fp_strict_eval_order = 8, /**< FP instructions must be strict evaluated in given order. */
+ fp_exceptions = 16, /**< FP exceptions are supported. No reordering that changes
+ the exception flow are allowed. Backends must generate
+ synchronized exception code. */
+ fp_environment_access = 32, /**< FPU environment can be accessed. Even Constant folding
+ cannot be done. */
- /** Precise floating point model. Default. */
- fp_model_precise = fp_explicit_rounding|fp_strict_algebraic|fp_contradictions,
- /** Strict floating point model. */
- fp_model_strict = fp_explicit_rounding|fp_strict_algebraic|fp_strict_eval_order|
- fp_exceptions|fp_environment_access,
- /** Fast floating point model. */
- fp_model_fast = fp_contradictions,
+ /** Precise floating point model. Default. */
+ fp_model_precise = fp_explicit_rounding|fp_strict_algebraic|fp_contradictions,
+ /** Strict floating point model. */
+ fp_model_strict = fp_explicit_rounding|fp_strict_algebraic|fp_strict_eval_order|
+ fp_exceptions|fp_environment_access,
+ /** Fast floating point model. */
+ fp_model_fast = fp_contradictions,
} fp_model_t;
/** If the expression referenced can be evaluated statically