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

Go to the source code of this file.

Data Structures

struct  use_optype_d
struct  ssa_operand_memory_d
struct  ssa_operands

Macros

#define NULL_USE_OPERAND_P   ((use_operand_p)NULL)
#define NULL_DEF_OPERAND_P   ((def_operand_p)NULL)
#define USE_FROM_PTR(PTR)   get_use_from_ptr (PTR)
#define DEF_FROM_PTR(PTR)   get_def_from_ptr (PTR)
#define SET_USE(USE, V)   set_ssa_use_from_ptr (USE, V)
#define SET_DEF(DEF, V)   ((*(DEF)) = (V))
#define USE_STMT(USE)   (USE)->loc.stmt
#define USE_OP_PTR(OP)   (&((OP)->use_ptr))
#define USE_OP(OP)   (USE_FROM_PTR (USE_OP_PTR (OP)))
#define PHI_RESULT_PTR(PHI)   gimple_phi_result_ptr (PHI)
#define PHI_RESULT(PHI)   DEF_FROM_PTR (PHI_RESULT_PTR (PHI))
#define SET_PHI_RESULT(PHI, V)   SET_DEF (PHI_RESULT_PTR (PHI), (V))
#define PHI_ARG_DEF_PTR(PHI, I)   gimple_phi_arg_imm_use_ptr ((PHI), (I))
#define PHI_ARG_DEF(PHI, I)   gimple_phi_arg_def ((PHI), (I))
#define SET_PHI_ARG_DEF(PHI, I, V)   SET_USE (PHI_ARG_DEF_PTR ((PHI), (I)), (V))
#define PHI_ARG_DEF_FROM_EDGE(PHI, E)   PHI_ARG_DEF ((PHI), (E)->dest_idx)
#define PHI_ARG_DEF_PTR_FROM_EDGE(PHI, E)   PHI_ARG_DEF_PTR ((PHI), (E)->dest_idx)
#define PHI_ARG_INDEX_FROM_USE(USE)   phi_arg_index_from_use (USE)

Typedefs

typedef treedef_operand_p
typedef ssa_use_operand_tuse_operand_p
typedef struct use_optype_duse_optype_p

Functions

bool ssa_operands_active (struct function *)
void init_ssa_operands (struct function *fn)
void fini_ssa_operands (void)
bool verify_ssa_operands (gimple stmt)
void free_stmt_operands (gimple)
void update_stmt_operands (gimple)
void swap_ssa_operands (gimple, tree *, tree *)
bool verify_imm_links (FILE *f, tree var)
void dump_immediate_uses_for (FILE *file, tree var)
void dump_immediate_uses (FILE *file)
void debug_immediate_uses (void)
void debug_immediate_uses_for (tree var)
void unlink_stmt_vdef (gimple)
static tree get_use_from_ptr ()
static tree get_def_from_ptr ()

Macro Definition Documentation

#define NULL_DEF_OPERAND_P   ((def_operand_p)NULL)

Referenced by gimple_vuse_op(), and num_ssa_operands().

#define NULL_USE_OPERAND_P   ((use_operand_p)NULL)
#define PHI_ARG_DEF_PTR (   PHI,
  I 
)    gimple_phi_arg_imm_use_ptr ((PHI), (I))
#define PHI_ARG_DEF_PTR_FROM_EDGE (   PHI,
  E 
)    PHI_ARG_DEF_PTR ((PHI), (E)->dest_idx)
#define PHI_ARG_INDEX_FROM_USE (   USE)    phi_arg_index_from_use (USE)
#define PHI_RESULT_PTR (   PHI)    gimple_phi_result_ptr (PHI)
#define SET_DEF (   DEF,
 
)    ((*(DEF)) = (V))

Referenced by debug_tree_ssa_stats().

#define SET_PHI_ARG_DEF (   PHI,
  I,
 
)    SET_USE (PHI_ARG_DEF_PTR ((PHI), (I)), (V))
#define SET_PHI_RESULT (   PHI,
 
)    SET_DEF (PHI_RESULT_PTR (PHI), (V))

Referenced by create_loop_fn().

#define USE_OP (   OP)    (USE_FROM_PTR (USE_OP_PTR (OP)))

Referenced by op_iter_next_use().

#define USE_OP_PTR (   OP)    (&((OP)->use_ptr))

Referenced by finalize_ssa_uses().


Typedef Documentation

typedef tree* def_operand_p

SSA operand management for trees. Copyright (C) 2003-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/. Interface to SSA operands. This represents a pointer to a DEF operand.

This represents a pointer to a USE operand.

typedef struct use_optype_d* use_optype_p

Function Documentation

void debug_immediate_uses ( void  )

Dump def-use edges on stderr.

void debug_immediate_uses_for ( tree  var)
void dump_immediate_uses ( FILE *  file)
void dump_immediate_uses_for ( FILE *  file,
tree  var 
)
void fini_ssa_operands ( void  )

Dispose of anything required by the operand routines.

Referenced by execute_init_datastructures().

void free_stmt_operands ( gimple  )
static tree get_def_from_ptr ( )
inlinestatic

Return the tree pointed-to by DEF.

static tree get_use_from_ptr ( )
inlinestatic

Return the tree pointed-to by USE.

void init_ssa_operands ( struct function fn)
bool ssa_operands_active ( struct function )
void swap_ssa_operands ( gimple  ,
tree ,
tree  
)
void unlink_stmt_vdef ( gimple  )
void update_stmt_operands ( gimple  )
bool verify_imm_links ( FILE *  f,
tree  var 
)
bool verify_ssa_operands ( gimple  stmt)