]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
haifa-sched.c (extend_global): Split to extend_global_data and extend_region_data.
authorMaxim Kuvyrkov <maxim@codesourcery.com>
Wed, 6 Aug 2008 06:22:33 +0000 (06:22 +0000)
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>
Wed, 6 Aug 2008 06:22:33 +0000 (06:22 +0000)
* haifa-sched.c (extend_global): Split to extend_global_data and
extend_region_data.  Update all uses.
(extend_all): Rename to extend_block_data.

* gcc.target/ia64/20080802-1.c: New test.

From-SVN: r138758

gcc/ChangeLog
gcc/haifa-sched.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/ia64/20080802-1.c [new file with mode: 0644]

index 625b8960534eccbd05c9642c33757ab8fc95e3a2..fb238345559a3a7f82c5fd188e13be8762357ce0 100644 (file)
@@ -1,3 +1,9 @@
+2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * haifa-sched.c (extend_global): Split to extend_global_data and
+       extend_region_data.  Update all uses.
+       (extend_all): Rename to extend_block_data.
+
 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
 
        * sched-rgn.c (new_ready): Check if instruction can be
index d614986b49c616b3388b9e258f8671eece9b83fb..db1d66f49b84490ca9a11238a5641d4dfed97432 100644 (file)
@@ -544,8 +544,6 @@ static void change_queue_index (rtx, int);
 
 static void extend_h_i_d (void);
 static void extend_ready (int);
-static void extend_global (rtx);
-static void extend_all (rtx);
 static void init_h_i_d (rtx);
 static void generate_recovery_code (rtx);
 static void process_insn_forw_deps_be_in_spec (rtx, rtx, ds_t);
@@ -3188,36 +3186,45 @@ extend_ready (int n_new_insns)
     choice_stack[i].state = xmalloc (dfa_state_size);
 }
 
-/* Extend global scheduler structures (those, that live across calls to
-   schedule_block) to include information about just emitted INSN.  */
+/* Extend global-scope scheduler data structures
+   (those, that live within one call to schedule_insns)
+   to include information about just emitted INSN.  */
 static void
-extend_global (rtx insn)
+extend_global_data (rtx insn)
 {
   gcc_assert (INSN_P (insn));
 
-  /* These structures have scheduler scope.  */
-
   /* Init h_i_d.  */
   extend_h_i_d ();
   init_h_i_d (insn);
 
-  /* Init data handled in sched-deps.c.  */
-  sd_init_insn (insn);
-
   /* Extend dependency caches by one element.  */
   extend_dependency_caches (1, false);
 }
 
-/* Extends global and local scheduler structures to include information
-   about just emitted INSN.  */
+/* Extend global- and region-scope scheduler data structures
+   (those, that live within one call to schedule_region)
+   to include information about just emitted INSN.  */
+static void
+extend_region_data (rtx insn)
+{
+  extend_global_data (insn);
+
+  /* Init dependency data.  */
+  sd_init_insn (insn);
+}
+
+/* Extend global-, region- and block-scope scheduler data structures
+   (those, that live within one call to schedule_block)
+   to include information about just emitted INSN.  */
 static void
-extend_all (rtx insn)
-{ 
-  extend_global (insn);
+extend_block_data (rtx insn)
+{
+  extend_region_data (insn);
 
   /* These structures have block scope.  */
   extend_ready (1);
-  
+
   (*current_sched_info->add_remove_insn) (insn, 0);
 }
 
@@ -3391,7 +3398,7 @@ add_to_speculative_block (rtx insn)
       rec = BLOCK_FOR_INSN (check);
 
       twin = emit_insn_before (copy_insn (PATTERN (insn)), BB_END (rec));
-      extend_global (twin);
+      extend_region_data (twin);
 
       sd_copy_back_deps (twin, insn, true);
 
@@ -3581,7 +3588,7 @@ init_before_recovery (void)
       x = emit_jump_insn_after (gen_jump (label), BB_END (single));
       JUMP_LABEL (x) = label;
       LABEL_NUSES (label)++;
-      extend_global (x);
+      extend_global_data (x);
           
       emit_barrier_after (x);
 
@@ -3681,7 +3688,7 @@ create_check_block_twin (rtx insn, bool mutate_p)
     check = emit_insn_before (check, insn);
 
   /* Extend data structures.  */
-  extend_all (check);
+  extend_block_data (check);
   RECOVERY_BLOCK (check) = rec;
 
   if (sched_verbose && spec_info->dump)
@@ -3708,7 +3715,7 @@ create_check_block_twin (rtx insn, bool mutate_p)
          }
 
       twin = emit_insn_after (ORIG_PAT (insn), BB_END (rec));
-      extend_global (twin);
+      extend_region_data (twin);
 
       if (sched_verbose && spec_info->dump)
        /* INSN_BB (insn) isn't determined for twin insns yet.
@@ -3761,7 +3768,7 @@ create_check_block_twin (rtx insn, bool mutate_p)
       jump = emit_jump_insn_after (gen_jump (label), BB_END (rec));
       JUMP_LABEL (jump) = label;
       LABEL_NUSES (label)++;
-      extend_global (jump);
+      extend_region_data (jump);
 
       if (BB_PARTITION (second_bb) != BB_PARTITION (rec))
        /* Partition type is the same, if it is "unpartitioned".  */
index aae61b48eabc0688ea51e6bfc7d8d72f5ed5c62d..0a3088ba8cc6d137131e75d736055feecbef85c6 100644 (file)
@@ -1,3 +1,7 @@
+2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * gcc.target/ia64/20080802-1.c: New test.
+
 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
        PR tree-opt/37024
diff --git a/gcc/testsuite/gcc.target/ia64/20080802-1.c b/gcc/testsuite/gcc.target/ia64/20080802-1.c
new file mode 100644 (file)
index 0000000..b689a5d
--- /dev/null
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -msched-control-spec" } */
+
+struct cpp_reader;
+
+extern const char * parse_include (struct cpp_reader *, int *m, void *);
+extern int _cpp_compare_file_date (struct cpp_reader *, const char *, int);
+
+void
+_cpp_init_internal_pragmas (struct cpp_reader *pfile)
+{
+  const char *fname;
+  int angle_brackets, ordering;
+
+  fname = parse_include (pfile, &angle_brackets, (void *) 0);
+  if (!fname)
+    return;
+  ordering = _cpp_compare_file_date (pfile, fname, angle_brackets);
+}