|
GCC Middle and Back End API Reference
|
#include "config.h"#include "system.h"#include "coretypes.h"#include "backend.h"#include "target.h"#include "rtl.h"#include "tree.h"#include "gimple.h"#include "ssa.h"#include "cgraph.h"#include "vec-perm-indices.h"#include "fold-const.h"#include "fold-const-call.h"#include "stor-layout.h"#include "tree-dfa.h"#include "builtins.h"#include "case-cfn-macros.h"#include "gimplify.h"#include "memmodel.h"#include "optabs.h"#include "optabs-tree.h"#include "dbgcnt.h"#include "tm.h"#include "tree-eh.h"#include "langhooks.h"#include "tree-pass.h"#include "attribs.h"#include "asan.h"#include "gimple-iterator.h"#include "gimple-fold.h"
Functions | |
| static bool | types_match (tree t1, tree t2) |
| static bool | types_match (tree t1, tree t2, tree t3) |
| static bool | single_use (tree t) |
| static bool | canonicalize_math_p () |
| static bool | canonicalize_math_after_vectorization_p () |
| static bool | optimize_vectors_before_lowering_p () |
| static bool | optimize_successive_divisions_p (tree, tree) |
| static bool | expr_no_side_effects_p (tree t) |
| static bool | bitwise_equal_p (tree expr1, tree expr2) |
| static bool | bitwise_inverted_equal_p (tree expr1, tree expr2, bool &wascmp) |
| static gimple * | gimple_match_ctx (tree) |
| static bool | gimple_match_no_overflow_p (tree_code, tree type, tree, tree, tree) |
Return true if EXPR1 and EXPR2 have the same value, but not necessarily same type. The types can differ through nop conversions.
References bitwise_equal_p, operand_equal_p(), STRIP_NOPS, wi::to_wide(), TREE_CODE, tree_nop_conversion_p(), and TREE_TYPE.
Return true if EXPR1 and EXPR2 have the bitwise opposite value, but not necessarily same type. The types can differ through nop conversions.
References bitwise_equal_p, bitwise_inverted_equal_p, COMPARISON_CLASS_P, HONOR_NANS(), invert_tree_comparison(), operand_equal_p(), STRIP_NOPS, wi::to_wide(), TREE_CODE, tree_nop_conversion_p(), TREE_OPERAND, TREE_TYPE, and uniform_integer_cst_p().
|
inlinestatic |
Return true if math operations that are beneficial only after vectorization should be canonicalized.
References canonicalize_math_after_vectorization_p().
Referenced by canonicalize_math_after_vectorization_p(), and canonicalize_math_after_vectorization_p().
|
inlinestatic |
Return true if math operations should be canonicalized, e.g. sqrt(sqrt(x)) -> pow(x, 0.25).
References canonicalize_math_p(), cfun, and PROP_gimple_opt_math.
Referenced by canonicalize_math_p(), and canonicalize_math_p().
Returns true if the expression T has no side effects including not trapping.
References expr_no_side_effects_p(), generic_expr_could_trap_p(), and TREE_SIDE_EFFECTS.
Referenced by expr_no_side_effects_p(), and expr_no_side_effects_p().
References gimple_match_ctx(), and NULL.
Referenced by gimple_match_ctx(), gimple_match_ctx(), and gimple_match_range_of_expr().
Return true if CODE applied to OP0 and OP1 in TYPE cannot overflow. On GENERIC there is no range query, so only TYPE can say so.
References gimple_match_no_overflow_p(), and TYPE_OVERFLOW_UNDEFINED.
Referenced by gimple_match_no_overflow_p(), and gimple_match_no_overflow_p().
Return true if successive divisions can be optimized. Defer to GIMPLE opts.
References optimize_successive_divisions_p().
Referenced by optimize_successive_divisions_p(), and optimize_successive_divisions_p().
|
inlinestatic |
Return true if we can still perform transformations that may introduce vector operations that are not supported by the target. Vector lowering normally handles those, but after that pass, it becomes unsafe.
References cfun, optimize_vectors_before_lowering_p(), and PROP_gimple_lvec.
Referenced by optimize_vectors_before_lowering_p(), and optimize_vectors_before_lowering_p().
Return if T has a single use. For GENERIC, we assume this is always true.
References single_use().
Referenced by single_use(), and single_use().
Preamble and helpers for the autogenerated generic-match.cc file. Copyright (C) 2014-2026 Free Software Foundation, Inc. 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/>.
Routine to determine if the types T1 and T2 are effectively the same for GENERIC. If T1 or T2 is not a type, the test applies to their TREE_TYPE.
References TREE_TYPE, TYPE_MAIN_VARIANT, TYPE_P, and types_match().
Referenced by types_match(), types_match(), types_match(), and types_match().
Routine to determine if the types T1, T2 and T3 are effectively the same for GENERIC. If T1, T2 or T2 is not a type, the test applies to their TREE_TYPE.
References types_match().