[Bug target/56133] New: [x86] align_loops, align_jumps and align_functions are ignored
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 28 21:56:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56133
Bug #: 56133
Summary: [x86] align_loops, align_jumps and align_functions
are ignored
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: hjl.tools@gmail.com
i386.c has
/* Default align_* from the processor table. */
if (align_loops == 0)
{
align_loops = processor_target_table[ix86_tune].align_loop;
align_loops_max_skip =
processor_target_table[ix86_tune].align_loop_max_skip;
}
if (align_jumps == 0)
{
align_jumps = processor_target_table[ix86_tune].align_jump;
align_jumps_max_skip =
processor_target_table[ix86_tune].align_jump_max_skip;
}
if (align_functions == 0)
{
align_functions = processor_target_table[ix86_tune].align_func;
}
However, opts.c has
{ OPT_LEVELS_2_PLUS, OPT_falign_loops, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_falign_jumps, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_falign_labels, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_falign_functions, NULL, 1 },
Those variables aren't zero unless they are set at command-line. I think
they should be initialized to -1, which is handled by init_alignments:
/* Default the align_* variables to 1 if they're still unset, and
set up the align_*_log variables. */
static void
init_alignments (void)
{
and i386.c should check <= 0, instead of == 0.
More information about the Gcc-bugs
mailing list