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 "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"
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 | bitwise_equal_p (tree expr1, tree expr2) |
static bool | bitwise_inverted_equal_p (tree expr1, tree expr2, bool &wascmp) |
Return true if EXPR1 and EXPR2 have the same value, but not necessarily same type. The types can differ through nop conversions.
References 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, 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.
|
inlinestatic |
Return true if math operations should be canonicalized, e.g. sqrt(sqrt(x)) -> pow(x, 0.25).
References cfun, and PROP_gimple_opt_math.
Return true if successive divisions can be optimized. Defer to GIMPLE opts.
|
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, and PROP_gimple_lvec.
Return if T has a single use. For GENERIC, we assume this is always true.
Referenced by loop_cand::analyze_iloop_reduction_var(), get_prop_source_stmt(), and single_imm_use_1().
Preamble and helpers for the autogenerated generic-match.cc file. Copyright (C) 2014-2024 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, and TYPE_P.
Referenced by 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().