diff options
author | James E Wilson <wilson@specifixinc.com> | 2005-12-05 21:31:39 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2005-12-05 21:31:39 -0800 |
commit | e395963ff613e9e6b497466bd9b49c6a3eb2f1eb (patch) | |
tree | 2328deb0683c3924365413140ef7031e54863a74 /gcc/opts.c | |
parent | 326eda4b252e23e9c9b2ee1f0ad484c2175e7534 (diff) | |
download | gcc-e395963ff613e9e6b497466bd9b49c6a3eb2f1eb.zip gcc-e395963ff613e9e6b497466bd9b49c6a3eb2f1eb.tar.gz gcc-e395963ff613e9e6b497466bd9b49c6a3eb2f1eb.tar.bz2 |
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
Diffstat (limited to 'gcc/opts.c')
-rw-r--r-- | gcc/opts.c | 21 |
1 files changed, 19 insertions, 2 deletions
@@ -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"); |