Commit 32ad0f03 by Teresa Johnson Committed by Teresa Johnson

i386-common.c: Enable -freorder-blocks-and-partition at -O2 and up for x86.

2013-11-19  Teresa Johnson  <tejohnson@google.com>

	* common/config/i386/i386-common.c: Enable
	-freorder-blocks-and-partition at -O2 and up for x86.
	* doc/invoke.texi: Update -freorder-blocks-and-partition default.
	* opts.c (finish_options): Only warn if -freorder-blocks-and-
	partition was set on command line.

From-SVN: r205058
parent 2ae367c1
2013-11-19 Teresa Johnson <tejohnson@google.com>
* common/config/i386/i386-common.c: Enable
-freorder-blocks-and-partition at -O2 and up for x86.
* doc/invoke.texi: Update -freorder-blocks-and-partition default.
* opts.c (finish_options): Only warn if -freorder-blocks-and-
partition was set on command line.
2013-11-19 Sriraman Tallam <tmsriram@google.com> 2013-11-19 Sriraman Tallam <tmsriram@google.com>
* final.c (final_scan_insn): Emit a label for the split * final.c (final_scan_insn): Emit a label for the split
...@@ -789,6 +789,8 @@ static const struct default_options ix86_option_optimization_table[] = ...@@ -789,6 +789,8 @@ static const struct default_options ix86_option_optimization_table[] =
{ {
/* Enable redundant extension instructions removal at -O2 and higher. */ /* Enable redundant extension instructions removal at -O2 and higher. */
{ OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 }, { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 },
/* Enable function splitting at -O2 and higher. */
{ OPT_LEVELS_2_PLUS, OPT_freorder_blocks_and_partition, NULL, 1 },
/* Turn off -fschedule-insns by default. It tends to make the /* Turn off -fschedule-insns by default. It tends to make the
problem with not enough registers even worse. */ problem with not enough registers even worse. */
{ OPT_LEVELS_ALL, OPT_fschedule_insns, NULL, 0 }, { OPT_LEVELS_ALL, OPT_fschedule_insns, NULL, 0 },
......
...@@ -8173,6 +8173,8 @@ exception handling, for linkonce sections, for functions with a user-defined ...@@ -8173,6 +8173,8 @@ exception handling, for linkonce sections, for functions with a user-defined
section attribute and on any architecture that does not support named section attribute and on any architecture that does not support named
sections. sections.
Enabled for x86 at levels @option{-O2}, @option{-O3}.
@item -freorder-functions @item -freorder-functions
@opindex freorder-functions @opindex freorder-functions
Reorder functions in the object file in order to Reorder functions in the object file in order to
......
...@@ -737,9 +737,10 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set, ...@@ -737,9 +737,10 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
&& opts->x_flag_reorder_blocks_and_partition && opts->x_flag_reorder_blocks_and_partition
&& (ui_except == UI_SJLJ || ui_except >= UI_TARGET)) && (ui_except == UI_SJLJ || ui_except >= UI_TARGET))
{ {
inform (loc, if (opts_set->x_flag_reorder_blocks_and_partition)
"-freorder-blocks-and-partition does not work " inform (loc,
"with exceptions on this architecture"); "-freorder-blocks-and-partition does not work "
"with exceptions on this architecture");
opts->x_flag_reorder_blocks_and_partition = 0; opts->x_flag_reorder_blocks_and_partition = 0;
opts->x_flag_reorder_blocks = 1; opts->x_flag_reorder_blocks = 1;
} }
...@@ -752,9 +753,10 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set, ...@@ -752,9 +753,10 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
&& opts->x_flag_reorder_blocks_and_partition && opts->x_flag_reorder_blocks_and_partition
&& (ui_except == UI_SJLJ || ui_except >= UI_TARGET)) && (ui_except == UI_SJLJ || ui_except >= UI_TARGET))
{ {
inform (loc, if (opts_set->x_flag_reorder_blocks_and_partition)
"-freorder-blocks-and-partition does not support " inform (loc,
"unwind info on this architecture"); "-freorder-blocks-and-partition does not support "
"unwind info on this architecture");
opts->x_flag_reorder_blocks_and_partition = 0; opts->x_flag_reorder_blocks_and_partition = 0;
opts->x_flag_reorder_blocks = 1; opts->x_flag_reorder_blocks = 1;
} }
...@@ -769,9 +771,10 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set, ...@@ -769,9 +771,10 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
&& targetm_common.unwind_tables_default && targetm_common.unwind_tables_default
&& (ui_except == UI_SJLJ || ui_except >= UI_TARGET)))) && (ui_except == UI_SJLJ || ui_except >= UI_TARGET))))
{ {
inform (loc, if (opts_set->x_flag_reorder_blocks_and_partition)
"-freorder-blocks-and-partition does not work " inform (loc,
"on this architecture"); "-freorder-blocks-and-partition does not work "
"on this architecture");
opts->x_flag_reorder_blocks_and_partition = 0; opts->x_flag_reorder_blocks_and_partition = 0;
opts->x_flag_reorder_blocks = 1; opts->x_flag_reorder_blocks = 1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment