GCC Middle and Back End API Reference
tree-cfgcleanup.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool cleanup_tree_cfg (unsigned=0)
bool fixup_noreturn_call (gimple *stmt)
bool delete_unreachable_blocks_update_callgraph (cgraph_node *dst_node, bool update_clones)
unsigned clean_up_loop_closed_phi (function *)
bool phi_alternatives_equal (basic_block, edge, edge)
bool canonicalize_bool_cond (gcond *stmt, basic_block bb)

Variables

bitmap cfgcleanup_altered_bbs

Function Documentation

◆ canonicalize_bool_cond()

bool canonicalize_bool_cond ( gcond * stmt,
basic_block bb )
extern

◆ clean_up_loop_closed_phi()

◆ cleanup_tree_cfg()

◆ delete_unreachable_blocks_update_callgraph()

bool delete_unreachable_blocks_update_callgraph ( cgraph_node * dst_node,
bool update_clones )
extern

◆ fixup_noreturn_call()

◆ phi_alternatives_equal()

bool phi_alternatives_equal ( basic_block dest,
edge e1,
edge e2 )
extern
If all the PHI nodes in DEST have alternatives for E1 and E2 and those alternatives are equal in each of the PHI nodes, then return true, else return false.

References gcc_assert, gimple_phi_arg_def(), gsi_end_p(), gsi_next(), gsi_start_phis(), NULL_TREE, operand_equal_for_phi_arg_p(), and gphi_iterator::phi().

Referenced by tree_switch_conversion::switch_conversion::collect(), remove_forwarder_block(), and remove_forwarder_block_with_phi().

Variable Documentation

◆ cfgcleanup_altered_bbs

bitmap cfgcleanup_altered_bbs
extern
Header file for CFG cleanup for trees. Copyright (C) 2013-2025 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/>.
In tree-cfgcleanup.cc
CFG cleanup for trees. Copyright (C) 2001-2025 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/>.
The set of blocks in that at least one of the following changes happened: -- the statement at the end of the block was changed -- the block was newly created -- the set of the predecessors of the block changed -- the set of the successors of the block changed ??? Maybe we could track these changes separately, since they determine what cleanups it makes sense to try on the block.

Referenced by cleanup_control_expr_graph(), cleanup_control_flow_bb(), cleanup_tree_cfg_bb(), cleanup_tree_cfg_noloop(), gimple_merge_blocks(), remove_edge_and_dominated_blocks(), remove_forwarder_block(), and replace_uses_by().