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

Go to the source code of this file.

Functions

void simple_dce_from_worklist (bitmap, bitmap=nullptr)
 

Function Documentation

◆ simple_dce_from_worklist()

void simple_dce_from_worklist ( bitmap worklist,
bitmap need_eh_cleanup )
extern
Copyright (C) 2017-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/>.   
A cheap DCE interface.  WORKLIST is a list of possibly dead stmts and
is consumed by this function.  The function has linear complexity in
the number of dead stmts with a constant factor like the average SSA
use operands number.   

References bitmap_clear_first_set_bit(), bitmap_empty_p(), bitmap_set_bit, cfun, dump_file, dump_flags, FOR_EACH_IMM_USE_STMT, FOR_EACH_PHI_OR_STMT_USE, ggc_alloc(), gimple_bb(), gimple_has_side_effects(), gsi_for_stmt(), gsi_remove(), has_zero_uses(), i, is_gimple_debug(), need_eh_cleanup, print_gimple_stmt(), release_defs(), remove_phi_node(), single_ssa_def_operand(), ssa_name, SSA_NAME_DEF_STMT, SSA_NAME_IS_DEFAULT_DEF, SSA_NAME_VERSION, SSA_OP_ALL_DEFS, SSA_OP_USE, statistics_counter_event(), stmt_could_throw_p(), stmt_unremovable_because_of_non_call_eh_p(), TDF_DETAILS, TREE_CODE, unlink_stmt_vdef(), USE_FROM_PTR, and worklist.

Referenced by execute_fixup_cfg(), expand_vector_operations(), finalize_sccopy(), remove_unreachable::handle_early(), tree_loop_interchange::interchange(), remove_unreachable::remove_and_update_globals(), replace_phi_edge_with_variable(), and substitute_and_fold_engine::substitute_and_fold().