/* Lowers the body of current_function_decl. */
-static void
+static unsigned int
lower_function_body (void)
{
struct lower_data data;
= blocks_nreverse (BLOCK_SUBBLOCKS (data.block));
clear_block_marks (data.block);
+ return 0;
}
struct tree_opt_pass pass_lower_cf =
0, /* tv_id */
PROP_gimple_any, /* properties_required */
PROP_gimple_lcf, /* properties_provided */
- PROP_gimple_any, /* properties_destroyed */
+ 0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */
0 /* letter */
static void
lower_omp_directive (tree_stmt_iterator *tsi, struct lower_data *data)
{
- tree clause, stmt;
+ tree stmt;
stmt = tsi_stmt (*tsi);
- clause = (TREE_CODE (stmt) >= OMP_PARALLEL && TREE_CODE (stmt) <= OMP_SINGLE)
- ? OMP_CLAUSES (stmt)
- : NULL_TREE;
-
- for (; clause; clause = OMP_CLAUSE_CHAIN (clause))
- TREE_BLOCK (clause) = TREE_BLOCK (stmt);
-
lower_stmt_body (OMP_BODY (stmt), data);
tsi_link_before (tsi, stmt, TSI_SAME_STMT);
tsi_link_before (tsi, OMP_BODY (stmt), TSI_SAME_STMT);
case GOTO_EXPR:
case LABEL_EXPR:
case SWITCH_EXPR:
- case OMP_RETURN_EXPR:
- break;
-
- case OMP_PARALLEL:
case OMP_FOR:
case OMP_SECTIONS:
case OMP_SECTION:
case OMP_MASTER:
case OMP_ORDERED:
case OMP_CRITICAL:
+ case OMP_RETURN:
+ case OMP_CONTINUE:
+ break;
+
+ case OMP_PARALLEL:
lower_omp_directive (tsi, data);
return;
/* Mark the used attribute on blocks correctly. */
-static void
+static unsigned int
mark_used_blocks (void)
{
mark_blocks_with_used_vars (DECL_INITIAL (current_function_decl));
+ return 0;
}