[haifa-sched] PR rtl-optimization/68236: Exit early from autoprefetcher lookahead...
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 10 Nov 2015 09:22:58 +0000 (09:22 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 10 Nov 2015 09:22:58 +0000 (09:22 +0000)
PR rtl-optimization/68236
* haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
if insn_queue doesn't exist.
(haifa_sched_finish): Reset insn_queue to NULL.

From-SVN: r230088

gcc/ChangeLog
gcc/haifa-sched.c

index 5abb84bc793c17a1d0182702e9a38669fede205b..f9ae0601b791fd32287257d074c818eb77922d6a 100644 (file)
@@ -1,3 +1,10 @@
+2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR rtl-optimization/68236
+       * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
+       if insn_queue doesn't exist.
+       (haifa_sched_finish): Reset insn_queue to NULL.
+
 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
 
        * regrename.c (create_new_chain): Initialize renamed and tied_chain.
index 835648b688a2a9ca94c793a62d50cf55c858eb7d..e712110b2d8ba0ad04dc4ea3c4c621b7507f9d19 100644 (file)
@@ -5803,7 +5803,10 @@ autopref_multipass_dfa_lookahead_guard (rtx_insn *insn1, int ready_index)
 {
   int r = 0;
 
-  if (PARAM_VALUE (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH) <= 0)
+  /* Exit early if the param forbids this or if we're not entering here through
+     normal haifa scheduling.  This can happen if selective scheduling is
+     explicitly enabled.  */
+  if (!insn_queue || PARAM_VALUE (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH) <= 0)
     return 0;
 
   if (sched_verbose >= 2 && ready_index == 0)
@@ -7477,6 +7480,7 @@ haifa_sched_finish (void)
   sched_deps_finish ();
   sched_finish_luids ();
   current_sched_info = NULL;
+  insn_queue = NULL;
   sched_finish ();
 }