GCC Middle and Back End API Reference
tree-ssa-phiprop.cc File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "tree.h"
#include "gimple.h"
#include "tree-pass.h"
#include "ssa.h"
#include "gimple-pretty-print.h"
#include "fold-const.h"
#include "tree-eh.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "stor-layout.h"
#include "tree-ssa-loop.h"
#include "tree-cfg.h"
Include dependency graph for tree-ssa-phiprop.cc:

Data Structures

struct  phiprop_d


static bool phivn_valid_p (struct phiprop_d *phivn, tree name, basic_block bb)
static tree phiprop_insert_phi (basic_block bb, gphi *phi, gimple *use_stmt, struct phiprop_d *phivn, size_t n)
static bool chk_uses (tree, tree *idx, void *data)
static bool propagate_with_phi (basic_block bb, gphi *phi, struct phiprop_d *phivn, size_t n)
gimple_opt_passmake_pass_phiprop (gcc::context *ctxt)

Function Documentation

◆ chk_uses()

static bool chk_uses ( tree ,
tree * idx,
void * data )
Verify if *idx is available at *DATA.   

References CDI_DOMINATORS, dominated_by_p(), gimple_bb(), SSA_NAME_DEF_STMT, SSA_NAME_IS_DEFAULT_DEF, and TREE_CODE.

Referenced by propagate_with_phi().

◆ make_pass_phiprop()

gimple_opt_pass * make_pass_phiprop ( gcc::context * ctxt)

References ggc_alloc().

◆ phiprop_insert_phi()

◆ phivn_valid_p()

static bool phivn_valid_p ( struct phiprop_d * phivn,
tree name,
basic_block bb )
Verify if the value recorded for NAME in PHIVN is still valid at
the start of basic block BB.   

References CDI_DOMINATORS, dominated_by_p(), FOR_EACH_IMM_USE_STMT, gcc_assert, ggc_alloc(), gimple_bb(), gimple_vdef(), NULL_TREE, and SSA_NAME_VERSION.

Referenced by propagate_with_phi().

◆ propagate_with_phi()

static bool propagate_with_phi ( basic_block bb,
gphi * phi,
struct phiprop_d * phivn,
size_t n )