re PR middle-end/46667 (-freorder-blocks-and-partition -g failed and libstdc++ builds for arm-eabi are broken.)

PR middle-end/46667
	* varasm.c (assemble_start_function): Do not call resolve_unique_section.
	* cfgexpand.c (gimple_expand_cfg): Resolve it here.

From-SVN: r167795
This commit is contained in:
Jan Hubicka 2010-12-14 14:07:05 +01:00 committed by Jan Hubicka
parent b4550bf7ad
commit ae9fd6b7cd
3 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2010-12-14 Jan Hubicka <jh@suse.cz>
PR middle-end/46667
* varasm.c (assemble_start_function): Do not call resolve_unique_section.
* cfgexpand.c (gimple_expand_cfg): Resolve it here.
2010-12-14 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/46875

View File

@ -3951,6 +3951,10 @@ gimple_expand_cfg (void)
crtl->preferred_stack_boundary = STACK_BOUNDARY;
cfun->cfg->max_jumptable_ents = 0;
/* Resovle the function section. Some targets, like ARM EABI rely on knowledge
of the function section at exapnsion time to predict distance of calls. */
resolve_unique_section (current_function_decl, 0, flag_function_sections);
/* Expand the variables recorded during gimple lowering. */
timevar_push (TV_VAR_EXPAND);
start_sequence ();

View File

@ -1551,8 +1551,6 @@ assemble_start_function (tree decl, const char *fnname)
if (CONSTANT_POOL_BEFORE_FUNCTION)
output_constant_pool (fnname, decl);
resolve_unique_section (decl, 0, flag_function_sections);
/* Make sure the not and cold text (code) sections are properly
aligned. This is necessary here in the case where the function
has both hot and cold sections, because we don't want to re-set