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

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 ()

Function Documentation

void add_phi_arg ( gimple  ,
tree  ,
edge  ,
source_location   
)
void add_phi_node_to_bb ( gimple  phi,
basic_block  bb 
)
gimple create_phi_node ( tree  ,
basic_block   
)
tree degenerate_phi_result ( gimple  )
static use_operand_p gimple_phi_arg_imm_use_ptr ( )
inlinestatic
static int phi_arg_index_from_use ( )
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  )
static void set_phi_nodes ( )
inlinestatic

Set PHI nodes of a basic block BB to SEQ.

Referenced by remove_phi_args().