Commit 487edc87 by Christian Bruel Committed by Christian Bruel

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
parent 240a94da
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> 2015-05-06 Richard Biener <rguenther@suse.de>
* tree-vect-slp.c (vect_supported_load_permutation_p): Use * tree-vect-slp.c (vect_supported_load_permutation_p): Use
......
...@@ -7053,18 +7053,6 @@ aarch64_override_options (void) ...@@ -7053,18 +7053,6 @@ aarch64_override_options (void)
#endif #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) if (AARCH64_TUNE_FMA_STEERING)
aarch64_register_fma_steering (); aarch64_register_fma_steering ();
...@@ -7080,6 +7068,18 @@ aarch64_override_options_after_change (void) ...@@ -7080,6 +7068,18 @@ aarch64_override_options_after_change (void)
flag_omit_leaf_frame_pointer = false; flag_omit_leaf_frame_pointer = false;
else if (flag_omit_leaf_frame_pointer) else if (flag_omit_leaf_frame_pointer)
flag_omit_frame_pointer = true; 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 * static struct machine_function *
......
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> 2015-05-06 Richard Biener <rguenther@suse.de>
* gcc.dg/vect/bb-slp-34.c: New testcase. * gcc.dg/vect/bb-slp-34.c: New testcase.
......
/* 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" } } */
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