diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bbcf050751c08ccef4ee091c964c7c4101d495bd..437221cf830b40dbfd9fcf0b34cbf46f93a83b76 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-09-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/54456
+	* sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.
+
 2012-09-04  Diego Novillo  <dnovillo@google.com>
 
 	PR bootstrap/54478
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 0498cede6948867e31c02b611b053d0fb0945a79..4a277f4a2798180009e10ba2d51327747d15ed19 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -3473,7 +3473,7 @@ static bool
 gate_handle_sched (void)
 {
 #ifdef INSN_SCHEDULING
-  return flag_schedule_insns && dbg_cnt (sched_func);
+  return optimize > 0 && flag_schedule_insns && dbg_cnt (sched_func);
 #else
   return 0;
 #endif