GCC Middle and Back End API Reference
|
Go to the source code of this file.
Functions | |
void | phinodes_print_statistics (void) |
void | release_phi_node (gimple) |
void | reserve_phi_args_for_new_edge (basic_block) |
void | add_phi_node_to_bb (gimple phi, basic_block bb) |
gimple | create_phi_node (tree, basic_block) |
void | add_phi_arg (gimple, tree, edge, source_location) |
void | remove_phi_args (edge) |
void | remove_phi_node (gimple_stmt_iterator *, bool) |
void | remove_phi_nodes (basic_block) |
tree | degenerate_phi_result (gimple) |
static void | set_phi_nodes () |
static use_operand_p | gimple_phi_arg_imm_use_ptr () |
static int | phi_arg_index_from_use () |
void add_phi_node_to_bb | ( | gimple | phi, |
basic_block | bb | ||
) |
gimple create_phi_node | ( | tree | , |
basic_block | |||
) |
|
inlinestatic |
|
inlinestatic |
Return the phi argument which contains the specified use.
Since the use is the first thing in a PHI argument element, we can calculate its index based on casting it to an argument, and performing pointer arithmetic.
Make sure the calculation doesn't have any leftover bytes. If it does, then imm_use is likely not the first element in phi_arg_d.
void phinodes_print_statistics | ( | void | ) |
Header file for PHI node routines Copyright (C) 2013 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/.
Dump some simple statistics regarding the re-use of PHI nodes.
void release_phi_node | ( | gimple | ) |
void remove_phi_args | ( | edge | ) |
void remove_phi_node | ( | gimple_stmt_iterator * | , |
bool | |||
) |
void remove_phi_nodes | ( | basic_block | ) |
void reserve_phi_args_for_new_edge | ( | basic_block | ) |
|
inlinestatic |
Set PHI nodes of a basic block BB to SEQ.
Referenced by remove_phi_args().