[haifa-sched] PR rtl-optimization/68236: Exit early from autoprefetcher lookahead...
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Nov 2015 09:22:58 +0000 (09:22 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230088 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/haifa-sched.c

index 5abb84b..f9ae060 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 835648b..e712110 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 ();
 }