Hook up -freorder-blocks to mean -tail-dup-size=5, but don't enable it by default.

llvm-svn: 124572
diff --git a/llvm-gcc-4.2/gcc/llvm-backend.cpp b/llvm-gcc-4.2/gcc/llvm-backend.cpp
index 34f36e8..b99e387 100644
--- a/llvm-gcc-4.2/gcc/llvm-backend.cpp
+++ b/llvm-gcc-4.2/gcc/llvm-backend.cpp
@@ -424,6 +424,15 @@
     ArgStrings.push_back(Arg);
   }
 
+  // LLVM doesn't implement -freorder-blocks, but we can make tail-dup more
+  // aggressive as a poor man's block reordering.
+  // Tail-merge-size should always be at least one above tail-dup-size so they
+  // won't pull in opposite directions.
+  if (flag_reorder_blocks) {
+    ArgStrings.push_back("--tail-dup-size=5");
+    ArgStrings.push_back("--tail-merge-size=6");
+  }
+
   if (flag_limited_precision > 0) {
     std::string Arg("--limit-float-precision="+utostr(flag_limited_precision));
     ArgStrings.push_back(Arg);
diff --git a/llvm-gcc-4.2/gcc/opts.c b/llvm-gcc-4.2/gcc/opts.c
index b2373cf..e79b583 100644
--- a/llvm-gcc-4.2/gcc/opts.c
+++ b/llvm-gcc-4.2/gcc/opts.c
@@ -510,7 +510,12 @@
       if (cmdline) flag_strict_aliasing = 1;
       flag_strict_overflow = 1;
       flag_delete_null_pointer_checks = 1;
+      /* LLVM LOCAL begin */
+#ifndef ENABLE_LLVM
+      /* Don't enable -freorder-blocks by default for LLVM. 8935026 */
       flag_reorder_blocks = 1;
+#endif
+      /* LLVM LOCAL end */
       /* APPLE LOCAL optimization pragmas 3124235/3420242 */
       if (cmdline) flag_reorder_functions = 1;
       flag_tree_store_ccp = 1;