|
GCC Middle and Back End API Reference
|
#include "config.h"#include "system.h"#include "coretypes.h"#include "backend.h"#include "insn-codes.h"#include "rtl.h"#include "tree.h"#include "gimple.h"#include "cfghooks.h"#include "tree-pass.h"#include "ssa.h"#include "optabs-tree.h"#include "gimple-pretty-print.h"#include "diagnostic-core.h"#include "flags.h"#include "fold-const.h"#include "stor-layout.h"#include "calls.h"#include "cfganal.h"#include "gimple-iterator.h"#include "gimple-fold.h"#include "tree-eh.h"#include "gimple-walk.h"#include "tree-cfg.h"#include "wide-int.h"#include "value-relation.h"#include "range-op.h"#include "range-op-mixed.h"
Data Structures | |
| class | foperator_unordered |
| class | foperator_ordered |
| class | foperator_unordered_lt |
| class | foperator_unordered_le |
| class | foperator_unordered_gt |
| class | foperator_unordered_ge |
| class | foperator_unordered_equal |
| class | foperator_ltgt |
| class | foperator_div |
Variables | |
| static const foperator_unordered | fop_unordered |
| static const foperator_ordered | fop_ordered |
| static const foperator_unordered_lt | fop_unordered_lt |
| static const foperator_unordered_le | fop_unordered_le |
| static const foperator_unordered_gt | fop_unordered_gt |
| static const foperator_unordered_ge | fop_unordered_ge |
| static const foperator_unordered_equal | fop_unordered_equal |
| static const foperator_ltgt | fop_ltgt |
| static const foperator_div | fop_div |
References frange_add_zeros(), frange_val_max(), gcc_checking_assert, frange::known_isnan(), frange::lower_bound(), r, and REAL_VALUE_TYPE.
Referenced by foperator_unordered_ge::op1_range(), foperator_unordered_lt::op1_range(), operator_ge::op1_range(), operator_ge::op1_range(), operator_ge::op1_range(), operator_lt::op1_range(), operator_lt::op1_range(), operator_lt::op1_range(), foperator_unordered_gt::op2_range(), foperator_unordered_le::op2_range(), operator_gt::op2_range(), operator_gt::op2_range(), operator_gt::op2_range(), operator_le::op2_range(), operator_le::op2_range(), and operator_le::op2_range().
References frange_nextafter(), frange_val_max(), gcc_checking_assert, HONOR_NANS(), frange::known_isnan(), frange::lower_bound(), MODE_COMPOSITE_P, r, real_isinf(), REAL_VALUE_TYPE, and TYPE_MODE.
Referenced by foperator_unordered_gt::op1_range(), foperator_unordered_le::op1_range(), operator_gt::op1_range(), operator_gt::op1_range(), operator_gt::op1_range(), operator_le::op1_range(), operator_le::op1_range(), operator_le::op1_range(), foperator_unordered_ge::op2_range(), foperator_unordered_lt::op2_range(), operator_ge::op2_range(), operator_ge::op2_range(), operator_ge::op2_range(), operator_lt::op2_range(), operator_lt::op2_range(), and operator_lt::op2_range().
References frange_add_zeros(), frange_val_min(), gcc_checking_assert, frange::known_isnan(), r, REAL_VALUE_TYPE, and frange::upper_bound().
Referenced by foperator_unordered_gt::op1_range(), foperator_unordered_le::op1_range(), operator_gt::op1_range(), operator_gt::op1_range(), operator_gt::op1_range(), operator_le::op1_range(), operator_le::op1_range(), operator_le::op1_range(), foperator_unordered_ge::op2_range(), foperator_unordered_lt::op2_range(), operator_ge::op2_range(), operator_ge::op2_range(), operator_ge::op2_range(), operator_lt::op2_range(), operator_lt::op2_range(), and operator_lt::op2_range().
References frange_nextafter(), frange_val_min(), gcc_checking_assert, HONOR_NANS(), frange::known_isnan(), MODE_COMPOSITE_P, r, real_isinf(), REAL_VALUE_TYPE, TYPE_MODE, and frange::upper_bound().
Referenced by foperator_unordered_ge::op1_range(), foperator_unordered_lt::op1_range(), operator_ge::op1_range(), operator_ge::op1_range(), operator_ge::op1_range(), operator_lt::op1_range(), operator_lt::op1_range(), operator_lt::op1_range(), foperator_unordered_gt::op2_range(), foperator_unordered_le::op2_range(), operator_gt::op2_range(), operator_gt::op2_range(), operator_gt::op2_range(), operator_le::op2_range(), operator_le::op2_range(), and operator_le::op2_range().
|
static |
References dconst0, real_compare(), and REAL_VALUE_TYPE.
Referenced by foperator_div::op1_range(), operator_mult::op1_range(), foperator_div::op2_range(), foperator_div::rv_fold(), and operator_mult::rv_fold().
|
static |
References i, real_isnegzero(), real_iszero(), real_less(), and REAL_VALUE_TYPE.
Referenced by foperator_div::rv_fold(), and operator_mult::rv_fold().
References HONOR_SIGNED_ZEROS(), and r.
Referenced by build_ge(), build_le(), foperator_ltgt::op1_range(), foperator_unordered_equal::op1_range(), operator_equal::op1_range(), and operator_not_equal::op1_range().
| void frange_arithmetic | ( | enum tree_code | code, |
| tree | type, | ||
| REAL_VALUE_TYPE & | result, | ||
| const REAL_VALUE_TYPE & | op1, | ||
| const REAL_VALUE_TYPE & | op2, | ||
| const REAL_VALUE_TYPE & | inf ) |
References frange_nextafter(), MODE_COMPOSITE_P, real_arithmetic(), real_convert(), real_equal(), REAL_EXP, real_identical(), real_isdenormal(), real_isinf(), real_isneg(), real_iszero(), real_less(), REAL_MODE_FORMAT, real_nextafter(), REAL_VALUE_TYPE, and TYPE_MODE.
Referenced by cfn_sqrt::op1_range(), foperator_div::rv_fold(), operator_minus::rv_fold(), operator_mult::rv_fold(), and operator_plus::rv_fold().
References r, real_max_representable(), and REAL_VALUE_TYPE.
Referenced by operator_lt::op1_range(), and operator_gt::op2_range().
References r, real_max_representable(), real_min_representable(), and REAL_VALUE_TYPE.
Referenced by float_binary_op_range_finish().
References r, real_min_representable(), and REAL_VALUE_TYPE.
Referenced by operator_gt::op1_range(), and operator_lt::op2_range().
| void frange_nextafter | ( | enum machine_mode | mode, |
| REAL_VALUE_TYPE & | value, | ||
| const REAL_VALUE_TYPE & | inf ) |
References MODE_COMPOSITE_P, real_convert(), real_isdenormal(), real_iszero(), REAL_MODE_FORMAT, real_nextafter(), and REAL_VALUE_TYPE.
Referenced by build_gt(), build_lt(), float_widen_bound(), cfn_sincos::fold_range(), cfn_sqrt::fold_range(), operator_cast::fold_range(), operator_cast::fold_range(), frange_arithmetic(), frange_fusible_p(), frange_mpfr_arg1(), cfn_sincos::op1_range(), cfn_sqrt::op1_range(), operator_cast::op1_range(), operator_cast::op1_range(), and frange::set_excluding().
|
inlinestatic |
References empty_range_varying(), maybe_isnan(), relation_trio::op1_op2(), r, range_false(), range_true(), relation_intersect(), relation_union(), and VREL_UNDEFINED.
Referenced by operator_equal::fold_range(), operator_ge::fold_range(), operator_gt::fold_range(), operator_le::fold_range(), operator_lt::fold_range(), and operator_not_equal::fold_range().
|
static |
References dconstinf, dconstninf, and REAL_VALUE_TYPE.
Referenced by foperator_div::rv_fold(), and operator_mult::rv_fold().
References frange::maybe_isnan().
Referenced by foperator_ltgt::fold_range(), foperator_unordered_equal::fold_range(), foperator_unordered_ge::fold_range(), foperator_unordered_gt::fold_range(), foperator_unordered_le::fold_range(), foperator_unordered_lt::fold_range(), operator_equal::fold_range(), operator_ge::fold_range(), operator_gt::fold_range(), operator_le::fold_range(), operator_lt::fold_range(), operator_not_equal::fold_range(), and frelop_early_resolve().
|
static |
References real_isneg(), and REAL_VALUE_TYPE.
Referenced by foperator_div::op1_range(), operator_mult::op1_range(), foperator_div::op2_range(), foperator_div::rv_fold(), and operator_mult::rv_fold().
|
static |
References real_isinf(), real_isneg(), and REAL_VALUE_TYPE.
Referenced by foperator_div::rv_fold(), and operator_mult::rv_fold().
|
static |
References real_iszero(), and REAL_VALUE_TYPE.
Referenced by foperator_div::rv_fold(), operator_mult::rv_fold(), and sbr_vector::sbr_vector().
|
static |
References dconst0, dconstm0, and REAL_VALUE_TYPE.
Referenced by foperator_div::rv_fold(), and operator_mult::rv_fold().
|
static |
References dconst0, dconstinf, dconstm0, dconstninf, and REAL_VALUE_TYPE.
Referenced by foperator_div::op1_range(), operator_mult::op1_range(), foperator_div::op2_range(), foperator_div::rv_fold(), and operator_mult::rv_fold().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().
|
static |
Referenced by range_op_table::initialize_float_ops().