tree-flow-inline.h: Document all functions.
2004-06-15 Daniel Berlin <dberlin@dberlin.org> * tree-flow-inline.h: Document all functions. From-SVN: r83197
This commit is contained in:
parent
c8a6f15498
commit
0566b51e1f
@ -1,3 +1,7 @@
|
|||||||
|
2004-06-15 Daniel Berlin <dberlin@dberlin.org>
|
||||||
|
|
||||||
|
* tree-flow-inline.h: Document all functions.
|
||||||
|
|
||||||
2004-06-15 Daniel Berlin <dberlin@dberlin.org>
|
2004-06-15 Daniel Berlin <dberlin@dberlin.org>
|
||||||
|
|
||||||
* tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
|
* tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
|
||||||
|
@ -25,6 +25,8 @@ Boston, MA 02111-1307, USA. */
|
|||||||
/* Inline functions for manipulating various data structures defined in
|
/* Inline functions for manipulating various data structures defined in
|
||||||
tree-flow.h. See tree-flow.h for documentation. */
|
tree-flow.h. See tree-flow.h for documentation. */
|
||||||
|
|
||||||
|
/* Return the variable annotation for T, which must be a _DECL node.
|
||||||
|
Return NULL if the variable annotation doesn't already exist. */
|
||||||
static inline var_ann_t
|
static inline var_ann_t
|
||||||
var_ann (tree t)
|
var_ann (tree t)
|
||||||
{
|
{
|
||||||
@ -39,6 +41,8 @@ var_ann (tree t)
|
|||||||
return (var_ann_t) t->common.ann;
|
return (var_ann_t) t->common.ann;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the variable annotation for T, which must be a _DECL node.
|
||||||
|
Create the variable annotation if it doesn't exist. */
|
||||||
static inline var_ann_t
|
static inline var_ann_t
|
||||||
get_var_ann (tree var)
|
get_var_ann (tree var)
|
||||||
{
|
{
|
||||||
@ -47,6 +51,8 @@ get_var_ann (tree var)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Return the constant annotation for T, which must be a _CST node.
|
||||||
|
Return NULL if the constant annotation doesn't already exist. */
|
||||||
static inline cst_ann_t
|
static inline cst_ann_t
|
||||||
cst_ann (tree t)
|
cst_ann (tree t)
|
||||||
{
|
{
|
||||||
@ -60,6 +66,8 @@ cst_ann (tree t)
|
|||||||
return (cst_ann_t) t->common.ann;
|
return (cst_ann_t) t->common.ann;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the constant annotation for T, which must be a _CST node.
|
||||||
|
Create the constant annotation if it doesn't exist. */
|
||||||
static inline cst_ann_t
|
static inline cst_ann_t
|
||||||
get_cst_ann (tree var)
|
get_cst_ann (tree var)
|
||||||
{
|
{
|
||||||
@ -67,6 +75,9 @@ get_cst_ann (tree var)
|
|||||||
return (ann) ? ann : create_cst_ann (var);
|
return (ann) ? ann : create_cst_ann (var);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the expression annotation for T, which must be an expression
|
||||||
|
node. Return NULL if the expression annotation doesn't already
|
||||||
|
exist. */
|
||||||
static inline expr_ann_t
|
static inline expr_ann_t
|
||||||
expr_ann (tree t)
|
expr_ann (tree t)
|
||||||
{
|
{
|
||||||
@ -80,13 +91,17 @@ expr_ann (tree t)
|
|||||||
return (expr_ann_t) t->common.ann;
|
return (expr_ann_t) t->common.ann;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the expression annotation for T, which must be an expression
|
||||||
|
node. Create the expression annotation if it doesn't exist. */
|
||||||
static inline expr_ann_t
|
static inline expr_ann_t
|
||||||
get_expr_ann (tree var)
|
get_expr_ann (tree t)
|
||||||
{
|
{
|
||||||
expr_ann_t ann = expr_ann (var);
|
expr_ann_t ann = expr_ann (t);
|
||||||
return (ann) ? ann : create_expr_ann (var);
|
return (ann) ? ann : create_expr_ann (t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the statement annotation for T, which must be a statement
|
||||||
|
node. Return NULL if the statement annotation doesn't exist. */
|
||||||
static inline stmt_ann_t
|
static inline stmt_ann_t
|
||||||
stmt_ann (tree t)
|
stmt_ann (tree t)
|
||||||
{
|
{
|
||||||
@ -98,6 +113,8 @@ stmt_ann (tree t)
|
|||||||
return (stmt_ann_t) t->common.ann;
|
return (stmt_ann_t) t->common.ann;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the statement annotation for T, which must be a statement
|
||||||
|
node. Create the statement annotation if it doesn't exist. */
|
||||||
static inline stmt_ann_t
|
static inline stmt_ann_t
|
||||||
get_stmt_ann (tree stmt)
|
get_stmt_ann (tree stmt)
|
||||||
{
|
{
|
||||||
@ -106,12 +123,14 @@ get_stmt_ann (tree stmt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Return the annotation type for annotation ANN. */
|
||||||
static inline enum tree_ann_type
|
static inline enum tree_ann_type
|
||||||
ann_type (tree_ann ann)
|
ann_type (tree_ann ann)
|
||||||
{
|
{
|
||||||
return ann->common.type;
|
return ann->common.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the basic block for statement T. */
|
||||||
static inline basic_block
|
static inline basic_block
|
||||||
bb_for_stmt (tree t)
|
bb_for_stmt (tree t)
|
||||||
{
|
{
|
||||||
@ -119,6 +138,8 @@ bb_for_stmt (tree t)
|
|||||||
return ann ? ann->bb : NULL;
|
return ann ? ann->bb : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the may_aliases varray for variable VAR, or NULL if it has
|
||||||
|
no may aliases. */
|
||||||
static inline varray_type
|
static inline varray_type
|
||||||
may_aliases (tree var)
|
may_aliases (tree var)
|
||||||
{
|
{
|
||||||
@ -126,6 +147,7 @@ may_aliases (tree var)
|
|||||||
return ann ? ann->may_aliases : NULL;
|
return ann ? ann->may_aliases : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if VAR has a hidden use, false if it does not. */
|
||||||
static inline bool
|
static inline bool
|
||||||
has_hidden_use (tree var)
|
has_hidden_use (tree var)
|
||||||
{
|
{
|
||||||
@ -133,6 +155,7 @@ has_hidden_use (tree var)
|
|||||||
return ann ? ann->has_hidden_use : false;
|
return ann ? ann->has_hidden_use : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set the hidden use flag on VAR. */
|
||||||
static inline void
|
static inline void
|
||||||
set_has_hidden_use (tree var)
|
set_has_hidden_use (tree var)
|
||||||
{
|
{
|
||||||
@ -142,6 +165,8 @@ set_has_hidden_use (tree var)
|
|||||||
ann->has_hidden_use = 1;
|
ann->has_hidden_use = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the line number for EXPR, or return -1 if we have no line
|
||||||
|
number information for it. */
|
||||||
static inline int
|
static inline int
|
||||||
get_lineno (tree expr)
|
get_lineno (tree expr)
|
||||||
{
|
{
|
||||||
@ -157,6 +182,8 @@ get_lineno (tree expr)
|
|||||||
return EXPR_LINENO (expr);
|
return EXPR_LINENO (expr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the file name for EXPR, or return "???" if we have no
|
||||||
|
filename information. */
|
||||||
static inline const char *
|
static inline const char *
|
||||||
get_filename (tree expr)
|
get_filename (tree expr)
|
||||||
{
|
{
|
||||||
@ -172,6 +199,7 @@ get_filename (tree expr)
|
|||||||
return "???";
|
return "???";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark statement T as modified. */
|
||||||
static inline void
|
static inline void
|
||||||
modify_stmt (tree t)
|
modify_stmt (tree t)
|
||||||
{
|
{
|
||||||
@ -181,6 +209,7 @@ modify_stmt (tree t)
|
|||||||
ann->modified = 1;
|
ann->modified = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark statement T as unmodified. */
|
||||||
static inline void
|
static inline void
|
||||||
unmodify_stmt (tree t)
|
unmodify_stmt (tree t)
|
||||||
{
|
{
|
||||||
@ -190,6 +219,7 @@ unmodify_stmt (tree t)
|
|||||||
ann->modified = 0;
|
ann->modified = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if T is marked as modified, false otherwise. */
|
||||||
static inline bool
|
static inline bool
|
||||||
stmt_modified_p (tree t)
|
stmt_modified_p (tree t)
|
||||||
{
|
{
|
||||||
@ -201,36 +231,48 @@ stmt_modified_p (tree t)
|
|||||||
return ann ? ann->modified : true;
|
return ann ? ann->modified : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the definitions present in ANN, a statement annotation.
|
||||||
|
Return NULL if this annotation contains no definitions. */
|
||||||
static inline def_optype
|
static inline def_optype
|
||||||
get_def_ops (stmt_ann_t ann)
|
get_def_ops (stmt_ann_t ann)
|
||||||
{
|
{
|
||||||
return ann ? ann->def_ops : NULL;
|
return ann ? ann->def_ops : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the uses present in ANN, a statement annotation.
|
||||||
|
Return NULL if this annotation contains no uses. */
|
||||||
static inline use_optype
|
static inline use_optype
|
||||||
get_use_ops (stmt_ann_t ann)
|
get_use_ops (stmt_ann_t ann)
|
||||||
{
|
{
|
||||||
return ann ? ann->use_ops : NULL;
|
return ann ? ann->use_ops : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the virtual may-defs present in ANN, a statement
|
||||||
|
annotation.
|
||||||
|
Return NULL if this annotation contains no virtual may-defs. */
|
||||||
static inline v_may_def_optype
|
static inline v_may_def_optype
|
||||||
get_v_may_def_ops (stmt_ann_t ann)
|
get_v_may_def_ops (stmt_ann_t ann)
|
||||||
{
|
{
|
||||||
return ann ? ann->v_may_def_ops : NULL;
|
return ann ? ann->v_may_def_ops : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the virtual uses present in ANN, a statement annotation.
|
||||||
|
Return NULL if this annotation contains no virtual uses. */
|
||||||
static inline vuse_optype
|
static inline vuse_optype
|
||||||
get_vuse_ops (stmt_ann_t ann)
|
get_vuse_ops (stmt_ann_t ann)
|
||||||
{
|
{
|
||||||
return ann ? ann->vuse_ops : NULL;
|
return ann ? ann->vuse_ops : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the virtual must-defs present in ANN, a statement
|
||||||
|
annotation. Return NULL if this annotation contains no must-defs.*/
|
||||||
static inline v_must_def_optype
|
static inline v_must_def_optype
|
||||||
get_v_must_def_ops (stmt_ann_t ann)
|
get_v_must_def_ops (stmt_ann_t ann)
|
||||||
{
|
{
|
||||||
return ann ? ann->v_must_def_ops : NULL;
|
return ann ? ann->v_must_def_ops : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a pointer to the tree that is at INDEX in the USES array. */
|
||||||
static inline tree *
|
static inline tree *
|
||||||
get_use_op_ptr (use_optype uses, unsigned int index)
|
get_use_op_ptr (use_optype uses, unsigned int index)
|
||||||
{
|
{
|
||||||
@ -241,6 +283,7 @@ get_use_op_ptr (use_optype uses, unsigned int index)
|
|||||||
return uses->uses[index];
|
return uses->uses[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a pointer to the tree that is at INDEX in the DEFS array. */
|
||||||
static inline tree *
|
static inline tree *
|
||||||
get_def_op_ptr (def_optype defs, unsigned int index)
|
get_def_op_ptr (def_optype defs, unsigned int index)
|
||||||
{
|
{
|
||||||
@ -251,6 +294,9 @@ get_def_op_ptr (def_optype defs, unsigned int index)
|
|||||||
return defs->defs[index];
|
return defs->defs[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Return a pointer to the tree that is the V_MAY_DEF_RESULT for the V_MAY_DEF
|
||||||
|
at INDEX in the V_MAY_DEFS array. */
|
||||||
static inline tree *
|
static inline tree *
|
||||||
get_v_may_def_result_ptr(v_may_def_optype v_may_defs, unsigned int index)
|
get_v_may_def_result_ptr(v_may_def_optype v_may_defs, unsigned int index)
|
||||||
{
|
{
|
||||||
@ -261,6 +307,8 @@ get_v_may_def_result_ptr(v_may_def_optype v_may_defs, unsigned int index)
|
|||||||
return &(v_may_defs->v_may_defs[index * 2]);
|
return &(v_may_defs->v_may_defs[index * 2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a pointer to the tree that is the V_MAY_DEF_OP for the V_MAY_DEF at
|
||||||
|
INDEX in the V_MAY_DEFS array. */
|
||||||
static inline tree *
|
static inline tree *
|
||||||
get_v_may_def_op_ptr(v_may_def_optype v_may_defs, unsigned int index)
|
get_v_may_def_op_ptr(v_may_def_optype v_may_defs, unsigned int index)
|
||||||
{
|
{
|
||||||
@ -271,6 +319,7 @@ get_v_may_def_op_ptr(v_may_def_optype v_may_defs, unsigned int index)
|
|||||||
return &(v_may_defs->v_may_defs[index * 2 + 1]);
|
return &(v_may_defs->v_may_defs[index * 2 + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a pointer to the tree that is at INDEX in the VUSES array. */
|
||||||
static inline tree *
|
static inline tree *
|
||||||
get_vuse_op_ptr(vuse_optype vuses, unsigned int index)
|
get_vuse_op_ptr(vuse_optype vuses, unsigned int index)
|
||||||
{
|
{
|
||||||
@ -281,6 +330,8 @@ get_vuse_op_ptr(vuse_optype vuses, unsigned int index)
|
|||||||
return &(vuses->vuses[index]);
|
return &(vuses->vuses[index]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a pointer to the tree that is the V_MUST_DEF_OP for the
|
||||||
|
V_MUST_DEF at INDEX in the V_MUST_DEFS array. */
|
||||||
static inline tree *
|
static inline tree *
|
||||||
get_v_must_def_op_ptr (v_must_def_optype v_must_defs, unsigned int index)
|
get_v_must_def_op_ptr (v_must_def_optype v_must_defs, unsigned int index)
|
||||||
{
|
{
|
||||||
@ -291,6 +342,7 @@ get_v_must_def_op_ptr (v_must_def_optype v_must_defs, unsigned int index)
|
|||||||
return &(v_must_defs->v_must_defs[index]);
|
return &(v_must_defs->v_must_defs[index]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark the beginning of changes to the SSA operands for STMT. */
|
||||||
static inline void
|
static inline void
|
||||||
start_ssa_stmt_operands (tree stmt ATTRIBUTE_UNUSED)
|
start_ssa_stmt_operands (tree stmt ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
@ -299,6 +351,8 @@ start_ssa_stmt_operands (tree stmt ATTRIBUTE_UNUSED)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the bitmap of addresses taken by STMT, or NULL if it takes
|
||||||
|
no addresses. */
|
||||||
static inline bitmap
|
static inline bitmap
|
||||||
addresses_taken (tree stmt)
|
addresses_taken (tree stmt)
|
||||||
{
|
{
|
||||||
@ -306,6 +360,8 @@ addresses_taken (tree stmt)
|
|||||||
return ann ? ann->addresses_taken : NULL;
|
return ann ? ann->addresses_taken : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the immediate uses of STMT, or NULL if this information is
|
||||||
|
not computed. */
|
||||||
static dataflow_t
|
static dataflow_t
|
||||||
get_immediate_uses (tree stmt)
|
get_immediate_uses (tree stmt)
|
||||||
{
|
{
|
||||||
@ -313,6 +369,8 @@ get_immediate_uses (tree stmt)
|
|||||||
return ann ? ann->df : NULL;
|
return ann ? ann->df : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the number of immediate uses present in the dataflow
|
||||||
|
information at DF. */
|
||||||
static inline int
|
static inline int
|
||||||
num_immediate_uses (dataflow_t df)
|
num_immediate_uses (dataflow_t df)
|
||||||
{
|
{
|
||||||
@ -328,6 +386,7 @@ num_immediate_uses (dataflow_t df)
|
|||||||
return VARRAY_ACTIVE_SIZE (imm) + 2;
|
return VARRAY_ACTIVE_SIZE (imm) + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the tree that is at NUM in the immediate use DF array. */
|
||||||
static inline tree
|
static inline tree
|
||||||
immediate_use (dataflow_t df, int num)
|
immediate_use (dataflow_t df, int num)
|
||||||
{
|
{
|
||||||
@ -343,12 +402,15 @@ immediate_use (dataflow_t df, int num)
|
|||||||
return VARRAY_TREE (df->immediate_uses, num - 2);
|
return VARRAY_TREE (df->immediate_uses, num - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the basic_block annotation for BB. */
|
||||||
static inline bb_ann_t
|
static inline bb_ann_t
|
||||||
bb_ann (basic_block bb)
|
bb_ann (basic_block bb)
|
||||||
{
|
{
|
||||||
return (bb_ann_t)bb->tree_annotations;
|
return (bb_ann_t)bb->tree_annotations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the PHI nodes for basic block BB, or NULL if there are no
|
||||||
|
PHI nodes. */
|
||||||
static inline tree
|
static inline tree
|
||||||
phi_nodes (basic_block bb)
|
phi_nodes (basic_block bb)
|
||||||
{
|
{
|
||||||
@ -402,6 +464,7 @@ phi_element_for_edge (tree phi, edge e)
|
|||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Return true if T is an executable statement. */
|
||||||
static inline bool
|
static inline bool
|
||||||
is_exec_stmt (tree t)
|
is_exec_stmt (tree t)
|
||||||
{
|
{
|
||||||
@ -427,6 +490,7 @@ is_label_stmt (tree t)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if we may propagate ORIG into DEST, false otherwise. */
|
||||||
static inline bool
|
static inline bool
|
||||||
may_propagate_copy (tree dest, tree orig)
|
may_propagate_copy (tree dest, tree orig)
|
||||||
{
|
{
|
||||||
@ -507,6 +571,7 @@ may_propagate_copy (tree dest, tree orig)
|
|||||||
&& !DECL_HARD_REGISTER (SSA_NAME_VAR (dest)));
|
&& !DECL_HARD_REGISTER (SSA_NAME_VAR (dest)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set the default definition for VAR to DEF. */
|
||||||
static inline void
|
static inline void
|
||||||
set_default_def (tree var, tree def)
|
set_default_def (tree var, tree def)
|
||||||
{
|
{
|
||||||
@ -516,6 +581,8 @@ set_default_def (tree var, tree def)
|
|||||||
ann->default_def = def;
|
ann->default_def = def;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the default definition for variable VAR, or NULL if none
|
||||||
|
exists. */
|
||||||
static inline tree
|
static inline tree
|
||||||
default_def (tree var)
|
default_def (tree var)
|
||||||
{
|
{
|
||||||
@ -541,6 +608,8 @@ phi_ssa_name_p (tree t)
|
|||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Return a block_stmt_iterator that points to beginning of basic
|
||||||
|
block BB. */
|
||||||
static inline block_stmt_iterator
|
static inline block_stmt_iterator
|
||||||
bsi_start (basic_block bb)
|
bsi_start (basic_block bb)
|
||||||
{
|
{
|
||||||
@ -560,6 +629,8 @@ bsi_start (basic_block bb)
|
|||||||
return bsi;
|
return bsi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a block statement iterator that points to the end of basic
|
||||||
|
block BB. */
|
||||||
static inline block_stmt_iterator
|
static inline block_stmt_iterator
|
||||||
bsi_last (basic_block bb)
|
bsi_last (basic_block bb)
|
||||||
{
|
{
|
||||||
@ -579,36 +650,47 @@ bsi_last (basic_block bb)
|
|||||||
return bsi;
|
return bsi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if block statement iterator I has reached the end of
|
||||||
|
the basic block. */
|
||||||
static inline bool
|
static inline bool
|
||||||
bsi_end_p (block_stmt_iterator i)
|
bsi_end_p (block_stmt_iterator i)
|
||||||
{
|
{
|
||||||
return tsi_end_p (i.tsi);
|
return tsi_end_p (i.tsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Modify block statement iterator I so that it is at the next
|
||||||
|
statement in the basic block. */
|
||||||
static inline void
|
static inline void
|
||||||
bsi_next (block_stmt_iterator *i)
|
bsi_next (block_stmt_iterator *i)
|
||||||
{
|
{
|
||||||
tsi_next (&i->tsi);
|
tsi_next (&i->tsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Modify block statement iterator I so that it is at the previous
|
||||||
|
statement in the basic block. */
|
||||||
static inline void
|
static inline void
|
||||||
bsi_prev (block_stmt_iterator *i)
|
bsi_prev (block_stmt_iterator *i)
|
||||||
{
|
{
|
||||||
tsi_prev (&i->tsi);
|
tsi_prev (&i->tsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the statement that block statement iterator I is currently
|
||||||
|
at. */
|
||||||
static inline tree
|
static inline tree
|
||||||
bsi_stmt (block_stmt_iterator i)
|
bsi_stmt (block_stmt_iterator i)
|
||||||
{
|
{
|
||||||
return tsi_stmt (i.tsi);
|
return tsi_stmt (i.tsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a pointer to the statement that block statement iterator I
|
||||||
|
is currently at. */
|
||||||
static inline tree *
|
static inline tree *
|
||||||
bsi_stmt_ptr (block_stmt_iterator i)
|
bsi_stmt_ptr (block_stmt_iterator i)
|
||||||
{
|
{
|
||||||
return tsi_stmt_ptr (i.tsi);
|
return tsi_stmt_ptr (i.tsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if VAR may be aliased. */
|
||||||
static inline bool
|
static inline bool
|
||||||
may_be_aliased (tree var)
|
may_be_aliased (tree var)
|
||||||
{
|
{
|
||||||
@ -616,6 +698,7 @@ may_be_aliased (tree var)
|
|||||||
|| decl_function_context (var) != current_function_decl);
|
|| decl_function_context (var) != current_function_decl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return true if VAR is a clobbered by function calls. */
|
||||||
static inline bool
|
static inline bool
|
||||||
is_call_clobbered (tree var)
|
is_call_clobbered (tree var)
|
||||||
{
|
{
|
||||||
@ -623,6 +706,7 @@ is_call_clobbered (tree var)
|
|||||||
|| bitmap_bit_p (call_clobbered_vars, var_ann (var)->uid);
|
|| bitmap_bit_p (call_clobbered_vars, var_ann (var)->uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark variable VAR as being clobbered by function calls. */
|
||||||
static inline void
|
static inline void
|
||||||
mark_call_clobbered (tree var)
|
mark_call_clobbered (tree var)
|
||||||
{
|
{
|
||||||
@ -632,6 +716,7 @@ mark_call_clobbered (tree var)
|
|||||||
bitmap_set_bit (call_clobbered_vars, ann->uid);
|
bitmap_set_bit (call_clobbered_vars, ann->uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark variable VAR as being non-addressable. */
|
||||||
static inline void
|
static inline void
|
||||||
mark_non_addressable (tree var)
|
mark_non_addressable (tree var)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user