Go to the source code of this file.
◆ bb_dom_status
Enumerator |
---|
DOMST_NONDOMINATING | |
DOMST_LOOP_BROKEN | |
DOMST_DOMINATING | |
◆ jump_thread_edge_type
Communication between registering jump thread requests and
updating the SSA/CFG for jump threading.
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/>.
Enumerator |
---|
EDGE_START_JUMP_THREAD | |
EDGE_COPY_SRC_BLOCK | |
EDGE_COPY_SRC_JOINER_BLOCK | |
EDGE_NO_COPY_SRC_BLOCK | |
◆ determine_bb_domination_status()
Evaluates the dominance relationship of latch of the LOOP and BB, and
returns the state.
References dbds_ce_stop, dbds_continue_enumeration_p(), dfs_enumerate_from(), DOMST_DOMINATING, DOMST_LOOP_BROKEN, DOMST_NONDOMINATING, el::e, FOR_EACH_EDGE, free(), loop::header, i, loop::latch, loop::num_nodes, and basic_block_def::preds.
Referenced by back_threader_profitability::profitable_path_p(), and fwd_jt_path_registry::thread_through_loop_header().
◆ estimate_threading_killed_stmts()
unsigned int estimate_threading_killed_stmts |
( |
basic_block | bb | ) |
|
|
extern |
Starting from the final control flow stmt in BB, assuming it will
be removed, follow uses in to-be-removed stmts back to their defs
and count how many defs are to become dead and be removed as
well.
References dump_file, EDGE_COUNT, FOR_EACH_SSA_USE_OPERAND, gcc_assert, hash_map< KeyId, Value, Traits >::get(), hash_map< KeyId, Value, Traits >::get_or_insert(), gimple_bb(), gimple_has_side_effects(), gimple_phi_result(), gsi_end_p(), gsi_last_bb(), gsi_next(), gsi_start_phis(), gsi_stmt(), basic_block_def::index, basic_block_def::preds, hash_map< KeyId, Value, Traits >::remove(), SSA_NAME_DEF_STMT, SSA_OP_USE, USE_FROM_PTR, uses_in_bb(), and virtual_operand_p().
Referenced by fwd_jt_path_registry::mark_threaded_blocks(), and jump_threader::record_temporary_equivalences_from_stmts_at_dest().
◆ free_dom_edge_info()
void free_dom_edge_info |
( |
edge | e | ) |
|
|
extern |