diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fa3be0d76e7caf545f0a13e322295c2dded737b2..2cd3e25566057b88bfca86ef459e4129711826bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
+	only once.
+
 2009-05-15  Jan Hubicka  <jh@suse.cz>
 
 	* doc/invoke.texi (max-early-inliner-iterations): New flag.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 743618c4dea81672ce161d9756486662dad74f0a..cc0bb025de13bd5213d9127eb7171b4da5a7d4b6 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -27359,12 +27359,13 @@ ix86_pad_returns (void)
 static void
 ix86_reorg (void)
 {
-  if (TARGET_PAD_RETURNS && optimize
-      && optimize_function_for_speed_p (cfun))
-    ix86_pad_returns ();
-  if (TARGET_FOUR_JUMP_LIMIT && optimize
-      && optimize_function_for_speed_p (cfun))
-    ix86_avoid_jump_misspredicts ();
+  if (optimize && optimize_function_for_speed_p (cfun))
+    {
+      if (TARGET_PAD_RETURNS)
+	ix86_pad_returns ();
+      if (TARGET_FOUR_JUMP_LIMIT)
+	ix86_avoid_jump_misspredicts ();
+    }
 }
 
 /* Return nonzero when QImode register that must be represented via REX prefix