/* Tree lowering pass. Lowers GIMPLE into unstructured form.
- Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of GCC.
It now fills in for many such returns. Failure to remove this
will result in incorrect results for coverage analysis. */
x = TREE_VALUE (t);
-#ifdef USE_MAPPED_LOCATION
SET_EXPR_LOCATION (x, UNKNOWN_LOCATION);
-#else
- SET_EXPR_LOCUS (x, NULL);
-#endif
tsi_link_after (&i, x, TSI_CONTINUE_LINKING);
}
return 0;
}
-struct tree_opt_pass pass_lower_cf =
+struct gimple_opt_pass pass_lower_cf =
{
+ {
+ GIMPLE_PASS,
"lower", /* name */
NULL, /* gate */
lower_function_body, /* execute */
PROP_gimple_lcf, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_dump_func, /* todo_flags_finish */
- 0 /* letter */
+ TODO_dump_func /* todo_flags_finish */
+ }
};
case NOP_EXPR:
case ASM_EXPR:
case GOTO_EXPR:
+ case PREDICT_EXPR:
case LABEL_EXPR:
case SWITCH_EXPR:
case CHANGE_DYNAMIC_TYPE_EXPR:
case OMP_ORDERED:
case OMP_CRITICAL:
case OMP_RETURN:
+ case OMP_ATOMIC_LOAD:
+ case OMP_ATOMIC_STORE:
case OMP_CONTINUE:
break;
{
/* This CONST_CAST is okay because expr_last returns it's argument
unmodified and we assign it to a const_tree. */
- const_tree stmt = expr_last ((tree)CONST_CAST(block));
+ const_tree stmt = expr_last (CONST_CAST_TREE(block));
switch (stmt ? TREE_CODE (stmt) : ERROR_MARK)
{
void
record_vars_into (tree vars, tree fn)
{
- struct function *saved_cfun = cfun;
-
if (fn != current_function_decl)
- cfun = DECL_STRUCT_FUNCTION (fn);
+ push_cfun (DECL_STRUCT_FUNCTION (fn));
for (; vars; vars = TREE_CHAIN (vars))
{
continue;
/* Record the variable. */
- cfun->unexpanded_var_list = tree_cons (NULL_TREE, var,
- cfun->unexpanded_var_list);
+ cfun->local_decls = tree_cons (NULL_TREE, var,
+ cfun->local_decls);
}
if (fn != current_function_decl)
- cfun = saved_cfun;
+ pop_cfun ();
}
}
-struct tree_opt_pass pass_mark_used_blocks =
+struct gimple_opt_pass pass_mark_used_blocks =
{
+ {
+ GIMPLE_PASS,
"blocks", /* name */
NULL, /* gate */
mark_used_blocks, /* execute */
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_dump_func, /* todo_flags_finish */
- 0 /* letter */
+ TODO_dump_func /* todo_flags_finish */
+ }
};