]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/24934 (profilebootstrap failure)
authorJames E Wilson <wilson@specifixinc.com>
Tue, 6 Dec 2005 05:31:39 +0000 (21:31 -0800)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 6 Dec 2005 05:31:39 +0000 (21:31 -0800)
PR target/24934
* opts.c (decode_options): Turn off partitioning if flag_unwind_tables
is set.

From-SVN: r108103

gcc/ChangeLog
gcc/opts.c

index 0bc88d3cca6fe3bbc78d5d75aa1c56ebb44f581b..7edad6f740c90116fc31f6803ccc8d3a007ccb31 100644 (file)
@@ -1,3 +1,9 @@
+2005-12-05  James E Wilson  <wilson@specifix.com>
+
+       PR target/24934
+       * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
+       is set.
+
 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
        
        * print-tree.c (print_node): Ditto.
index 7edaeac5b53e6d042a6d41e9d59e9796e4175a6c..776ce73f3c5f5f5279885a71588ae7b7ab0e6e82 100644 (file)
@@ -675,7 +675,8 @@ decode_options (unsigned int argc, const char **argv)
 
   /* The optimization to partition hot and cold basic blocks into separate
      sections of the .o and executable files does not work (currently)
-     with exception handling.  If flag_exceptions is turned on we need to
+     with exception handling.  This is because there is no support for
+     generating unwind info.  If flag_exceptions is turned on we need to
      turn off the partitioning optimization.  */
 
   if (flag_exceptions && flag_reorder_blocks_and_partition)
@@ -686,8 +687,24 @@ decode_options (unsigned int argc, const char **argv)
       flag_reorder_blocks = 1;
     }
 
+  /* If user requested unwind info, then turn off the partitioning
+     optimization.  */
+
+  if (flag_unwind_tables && ! targetm.unwind_tables_default
+      && flag_reorder_blocks_and_partition)
+    {
+      inform ("-freorder-blocks-and-parition does not support unwind info");
+      flag_reorder_blocks_and_partition = 0;
+      flag_reorder_blocks = 1;
+    }
+
+  /* If the target requested unwind info, then turn off the partitioning
+     optimization with a different message.  Likewise, if the target does not
+     support named sections.  */
+
   if (flag_reorder_blocks_and_partition
-      && !targetm.have_named_sections)
+      && (!targetm.have_named_sections
+         || (flag_unwind_tables && targetm.unwind_tables_default)))
     {
       inform 
        ("-freorder-blocks-and-partition does not work on this architecture");