OSDN Git Service

* config/rs6000/rs6000.opt (mspe): Remove Var property.
[pf3gnuchains/gcc-fork.git] / gcc / gimple-low.c
index 6de6eae..89de67a 100644 (file)
@@ -1,6 +1,6 @@
 /* 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.
 
@@ -108,11 +108,7 @@ lower_function_body (void)
         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);
     }
 
@@ -152,8 +148,10 @@ lower_function_body (void)
   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 */
@@ -165,8 +163,8 @@ struct tree_opt_pass pass_lower_cf =
   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 */
+ }
 };
 
 
@@ -239,6 +237,7 @@ lower_stmt (tree_stmt_iterator *tsi, struct lower_data *data)
     case NOP_EXPR:
     case ASM_EXPR:
     case GOTO_EXPR:
+    case PREDICT_EXPR:
     case LABEL_EXPR:
     case SWITCH_EXPR:
     case CHANGE_DYNAMIC_TYPE_EXPR:
@@ -251,6 +250,8 @@ lower_stmt (tree_stmt_iterator *tsi, struct lower_data *data)
     case OMP_ORDERED:
     case OMP_CRITICAL:
     case OMP_RETURN:
+    case OMP_ATOMIC_LOAD:
+    case OMP_ATOMIC_STORE:
     case OMP_CONTINUE:
       break;
 
@@ -718,10 +719,8 @@ lower_builtin_setjmp (tree_stmt_iterator *tsi)
 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))
     {
@@ -737,12 +736,12 @@ record_vars_into (tree vars, tree fn)
        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 ();
 }
 
 
@@ -793,8 +792,10 @@ mark_used_blocks (void)
 }
 
 
-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 */
@@ -806,6 +807,6 @@ struct tree_opt_pass pass_mark_used_blocks =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_dump_func,                      /* todo_flags_finish */
-  0                                    /* letter */
+  TODO_dump_func                       /* todo_flags_finish */
+ }
 };