re PR target/66015 (align directives not propagated after __attribute__ ((__optimize__ ("O2"))))

2015-05-06  Christian Bruel  <christian.bruel@st.com>

	PR target/66015
	* config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
	align_jumps, align_functions into aarch64_override_options_after_change.

From-SVN: r222847
This commit is contained in:
Christian Bruel 2015-05-06 12:54:40 +02:00 committed by Christian Bruel
parent 240a94da04
commit 487edc878f
4 changed files with 52 additions and 12 deletions

View file

@ -1,3 +1,9 @@
2015-05-06 Christian Bruel <christian.bruel@st.com>
PR target/66015
* config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
align_jumps, align_functions into aarch64_override_options_after_change.
2015-05-06 Richard Biener <rguenther@suse.de>
* tree-vect-slp.c (vect_supported_load_permutation_p): Use

View file

@ -7053,18 +7053,6 @@ aarch64_override_options (void)
#endif
}
/* If not opzimizing for size, set the default
alignment to what the target wants */
if (!optimize_size)
{
if (align_loops <= 0)
align_loops = aarch64_tune_params->loop_align;
if (align_jumps <= 0)
align_jumps = aarch64_tune_params->jump_align;
if (align_functions <= 0)
align_functions = aarch64_tune_params->function_align;
}
if (AARCH64_TUNE_FMA_STEERING)
aarch64_register_fma_steering ();
@ -7080,6 +7068,18 @@ aarch64_override_options_after_change (void)
flag_omit_leaf_frame_pointer = false;
else if (flag_omit_leaf_frame_pointer)
flag_omit_frame_pointer = true;
/* If not optimizing for size, set the default
alignment to what the target wants */
if (!optimize_size)
{
if (align_loops <= 0)
align_loops = aarch64_tune_params->loop_align;
if (align_jumps <= 0)
align_jumps = aarch64_tune_params->jump_align;
if (align_functions <= 0)
align_functions = aarch64_tune_params->function_align;
}
}
static struct machine_function *

View file

@ -1,3 +1,8 @@
2015-05-06 Christian Bruel <christian.bruel@st.com>
PR target/66015
* gcc.target/aarch64/iinline-attr-1.c: New test.
2015-05-06 Richard Biener <rguenther@suse.de>
* gcc.dg/vect/bb-slp-34.c: New testcase.

View file

@ -0,0 +1,29 @@
/* Verify that alignment flags are set when attribute __optimize is used. */
/* { dg-do compile } */
/* { dg-options "-O2" } */
extern void non_existent(int);
__attribute__ ((__optimize__ ("O2")))
static void hooray ()
{
non_existent (1);
}
__attribute__ ((__optimize__ ("O2")))
static void hiphip (void (*f)())
{
non_existent (2);
f ();
}
__attribute__ ((__optimize__ ("O2")))
int test (void)
{
hiphip (hooray);
return 0;
}
/* { dg-final { scan-assembler "p2align" } } */