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)
 

Variables

bitmap cfgcleanup_altered_bbs
 

Function Documentation

◆ 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-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/>.   
In tree-cfgcleanup.cc   
CFG cleanup for trees.
   Copyright (C) 2001-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/>.   
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().