From e395963ff613e9e6b497466bd9b49c6a3eb2f1eb Mon Sep 17 00:00:00 2001 From: James E Wilson Date: Mon, 5 Dec 2005 21:31:39 -0800 Subject: [PATCH] re PR target/24934 (profilebootstrap failure) PR target/24934 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables is set. From-SVN: r108103 --- gcc/ChangeLog | 6 ++++++ gcc/opts.c | 21 +++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0bc88d3cca6f..7edad6f740c9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-12-05 James E Wilson + + PR target/24934 + * opts.c (decode_options): Turn off partitioning if flag_unwind_tables + is set. + 2005-12-05 Daniel Berlin * print-tree.c (print_node): Ditto. diff --git a/gcc/opts.c b/gcc/opts.c index 7edaeac5b53e..776ce73f3c5f 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -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"); -- 2.47.2