/* Index variable. */
tree index;
-
+
/* Initial value. */
tree initial;
/* Final value. */
tree final;
-
+
/* Increment. */
tree incr;
};
};
-/* GIMPLE_OMP_ATOMIC_LOAD.
+/* GIMPLE_OMP_ATOMIC_LOAD.
Note: This is based on gimple_statement_base, not g_s_omp, because g_s_omp
contains a sequence, which we don't need here. */
/* Map GIMPLE codes to GSS codes. */
extern enum gimple_statement_structure_enum const gss_for_code_[];
+/* This variable holds the currently expanded gimple statement for purposes
+ of comminucating the profile info to the builtin expanders. */
+extern gimple currently_expanding_gimple_stmt;
+
gimple gimple_build_return (tree);
gimple gimple_build_assign_stat (tree, tree MEM_STAT_DECL);
gimple_seq conditional_cleanups;
tree exit_label;
tree return_temp;
-
+
VEC(tree,heap) *case_labels;
/* The formal temporary table. Should this be persistent? */
htab_t temp_htab;
return false;
}
}
-
+
/* Return the basic block holding statement G. */
/* Set DEST to be the destination of the unconditonal jump GS. */
-static inline void
+static inline void
gimple_goto_set_dest (gimple gs, tree dest)
{
GIMPLE_CHECK (gs, GIMPLE_GOTO);
/* Return the body for the OMP statement GS. */
-static inline gimple_seq
+static inline gimple_seq
gimple_omp_body (gimple gs)
{
return gs->omp.body;
{
gimple_stmt_iterator i;
gimple_seq seq;
-
+
seq = bb_seq (bb);
i.ptr = gimple_seq_first (seq);
i.seq = seq;
}
/* Return a pointer to the current stmt.
-
+
NOTE: You may want to use gsi_replace on the iterator itself,
as this performs additional bookkeeping that will not be done
if you simply assign through a pointer returned by gsi_stmt_ptr. */