GCC Middle and Back End API Reference
|
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "insn-codes.h"
#include "tree.h"
#include "gimple.h"
#include "ssa.h"
#include "gimple-pretty-print.h"
#include "optabs-tree.h"
#include "gimple-iterator.h"
#include "gimple-fold.h"
#include "wide-int.h"
#include "fold-const.h"
#include "case-cfn-macros.h"
#include "omp-general.h"
#include "cfgloop.h"
#include "tree-ssa-loop.h"
#include "tree-scalar-evolution.h"
#include "langhooks.h"
#include "vr-values.h"
#include "range.h"
#include "value-query.h"
#include "gimple-range.h"
#include "attr-fnspec.h"
#include "realmpfr.h"
Data Structures | |
class | cfn_constant_float_p |
class | cfn_constant_p |
class | cfn_pass_through_arg1 |
class | cfn_signbit |
class | cfn_copysign |
class | cfn_sqrt |
class | cfn_sincos |
class | cfn_toupper_tolower |
class | cfn_ffs |
class | cfn_popcount |
class | cfn_clz |
class | cfn_ctz |
class | cfn_clrsb |
class | cfn_ubsan |
class | cfn_strlen |
class | cfn_goacc_dim |
class | cfn_isinf |
class | cfn_isfinite |
class | cfn_isnormal |
class | cfn_parity |
op_cfn_clz::cfn_clz | ( | bool | internal | ) |
op_cfn_ctz::cfn_ctz | ( | bool | internal | ) |
op_cfn_goacc_dim_size::cfn_goacc_dim | ( | bool | is_pos | ) |
op_cfn_sin::cfn_sincos | ( | combined_fn | cfn | ) |
op_cfn_toupper::cfn_toupper_tolower | ( | bool | toupper | ) |
|
finaloverridevirtual |
|
virtual |
|
static |
Compute FUNC (ARG) where FUNC is a mpfr function. If RES_LOW is non-NULL, set it to low bound of possible range if the function is expected to have ULPS precision and similarly if RES_HIGH is non-NULL, set it to high bound. If the function returns false, the results weren't set.
References dconstinf, dconstninf, frange_nextafter(), i, MODE_COMPOSITE_P, mpfr_from_real(), real_format::p, real_convert(), real_from_mpfr(), real_identical(), real_isfinite(), real_less(), REAL_MODE_FORMAT, REAL_VALUE_TYPE, rvc_zero, and TYPE_MODE.
Referenced by cfn_sincos::fold_range(), and cfn_sqrt::fold_range().
References dyn_cast(), gimple_assign_rhs_code(), and gimple_cond_code().
Referenced by gimple_range_op_handler::gimple_range_op_handler(), and gimple_range_op_handler::supported_p().
References gcc_checking_assert, get_base_address(), gimple_assign_rhs1(), gimple_assign_rhs_code(), and TREE_OPERAND.
Referenced by op1_range().
Code for GIMPLE range op related routines. Copyright (C) 2019-2024 Free Software Foundation, Inc. Contributed by Andrew MacLeod <amacleod@redhat.com> and Aldy Hernandez <aldyh@redhat.com>. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
References as_a(), count, gcc_checking_assert, gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs3(), gimple_assign_rhs_code(), gimple_range_ssa_p(), is_a(), gimple_range_op_handler::operand1(), and gimple_range_op_handler::operand2().
Referenced by path_range_query::compute_exit_dependencies(), back_threader::find_paths_to_names(), and range_def_chain::get_def_chain().
|
finaloverridevirtual |
References gcc_checking_assert, gcc_unreachable, gimple_assign_rhs2(), gimple_cond_lhs(), gimple_cond_rhs(), gimple_num_ops(), gimple_range_base_of_assignment(), gimple_range_op_handler::m_op1, gimple_range_op_handler::m_op2, range_op_handler::m_operator, gimple_range_op_handler::m_stmt, range_op_handler::range_op(), value_range::supports_type_p(), TREE_CODE, TREE_OPERAND, and TREE_TYPE.
cfn_clz range_operator op_cfn_clz | ( | false | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_clz range_operator op_cfn_clz_internal | ( | true | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_sincos range_operator op_cfn_cos | ( | CFN_COS | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_ctz range_operator op_cfn_ctz | ( | false | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_ctz range_operator op_cfn_ctz_internal | ( | true | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_goacc_dim range_operator op_cfn_goacc_dim_pos | ( | true | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_goacc_dim range_operator op_cfn_goacc_dim_size | ( | false | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_sincos range_operator op_cfn_sin | ( | CFN_SIN | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_toupper_tolower range_operator op_cfn_tolower | ( | false | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_toupper_tolower range_operator op_cfn_toupper | ( | true | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
|
private |
|
private |
|
private |
|
private |
cfn_clrsb op_cfn_clrsb |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_constant_float_p op_cfn_constant_float_p |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_constant_p op_cfn_constant_p |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_copysign op_cfn_copysign |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_ffs op_cfn_ffs |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_isfinite op_cfn_isfinite |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_isinf op_cfn_isinf |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_isnormal op_cfn_isnormal |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_parity op_cfn_parity |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_pass_through_arg1 op_cfn_pass_through_arg1 |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_popcount op_cfn_popcount |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_signbit op_cfn_signbit |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_sqrt op_cfn_sqrt |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_strlen op_cfn_strlen |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_ubsan op_cfn_ubsan_add(PLUS_EXPR) | ( | PLUS_EXPR | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_ubsan op_cfn_ubsan_mul(MULT_EXPR) | ( | MULT_EXPR | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().
cfn_ubsan op_cfn_ubsan_sub(MINUS_EXPR) | ( | MINUS_EXPR | ) |
Referenced by gimple_range_op_handler::maybe_builtin_call().