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>
* tree-vect-slp.c (vect_supported_load_permutation_p): Use
......
......@@ -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 *
......
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.
......
/* 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