Commit 2cca7283 by Jan Hubicka Committed by Jan Hubicka

final.c (*_MAX_SKIP): Use *_max_skip variables.

	* final.c (*_MAX_SKIP): Use *_max_skip variables.
	* flags.h (align_loops_max_skip, align_jumps_max_skip,
	align_labels_max_skip): New global variables.
	* toplev.c (align_loops_max_skip, align_jumps_max_skip,
	align_labels_max_skip): New global variables.
	(toplev_main): Set new variables.
	* i386.c (override_options): Set max_skip values.

From-SVN: r46919
parent 2f0b7af6
Sun Nov 11 01:26:00 CET 2001 Jan Hubicka <jh@suse.cz>
* final.c (*_MAX_SKIP): Use *_max_skip variables.
* flags.h (align_loops_max_skip, align_jumps_max_skip,
align_labels_max_skip): New global variables.
* toplev.c (align_loops_max_skip, align_jumps_max_skip,
align_labels_max_skip): New global variables.
(toplev_main): Set new variables.
* i386.c (override_options): Set max_skip values.
2001-11-10 Geoffrey Keating <geoffk@redhat.com>
* doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF.
......
......@@ -796,19 +796,21 @@ override_options ()
const int target_enable; /* Target flags to enable. */
const int target_disable; /* Target flags to disable. */
const int align_loop; /* Default alignments. */
const int align_loop_max_skip;
const int align_jump;
const int align_jump_max_skip;
const int align_func;
const int branch_cost;
}
const processor_target_table[PROCESSOR_max] =
{
{&i386_cost, 0, 0, 2, 2, 2, 1},
{&i486_cost, 0, 0, 4, 4, 4, 1},
{&pentium_cost, 0, 0, -4, -4, -4, 1},
{&pentiumpro_cost, 0, 0, 4, -4, 4, 1},
{&k6_cost, 0, 0, -5, -5, 4, 1},
{&athlon_cost, 0, 0, 4, -4, 4, 1},
{&pentium4_cost, 0, 0, 2, 2, 2, 1}
{&i386_cost, 0, 0, 4, 3, 4, 3, 4, 1},
{&i486_cost, 0, 0, 16, 15, 16, 15, 16, 1},
{&pentium_cost, 0, 0, 16, 7, 16, 7, 16, 1},
{&pentiumpro_cost, 0, 0, 16, 15, 16, 7, 16, 1},
{&k6_cost, 0, 0, 32, 7, 32, 7, 32, 1},
{&athlon_cost, 0, 0, 16, 7, 64, 7, 16, 1},
{&pentium4_cost, 0, 0, 0, 0, 0, 0, 0, 1}
};
static struct pta
......@@ -967,11 +969,19 @@ override_options ()
/* Default align_* from the processor table. */
#define abs(n) (n < 0 ? -n : n)
if (align_loops == 0)
align_loops = 1 << abs (processor_target_table[ix86_cpu].align_loop);
{
align_loops = processor_target_table[ix86_cpu].align_loop;
align_loops_max_skip = processor_target_table[ix86_cpu].align_loop_max_skip;
}
if (align_jumps == 0)
align_jumps = 1 << abs (processor_target_table[ix86_cpu].align_jump);
{
align_jumps = processor_target_table[ix86_cpu].align_jump;
align_jumps_max_skip = processor_target_table[ix86_cpu].align_jump_max_skip;
}
if (align_functions == 0)
align_functions = 1 << abs (processor_target_table[ix86_cpu].align_func);
{
align_functions = processor_target_table[ix86_cpu].align_func;
}
/* Validate -mpreferred-stack-boundary= value, or provide default.
The default of 128 bits is for Pentium III's SSE __m128, but we
......
......@@ -775,7 +775,7 @@ get_attr_length (insn)
#endif
#ifndef LABEL_ALIGN_MAX_SKIP
#define LABEL_ALIGN_MAX_SKIP (align_labels-1)
#define LABEL_ALIGN_MAX_SKIP align_labels_max_skip
#endif
#ifndef LOOP_ALIGN
......@@ -783,7 +783,7 @@ get_attr_length (insn)
#endif
#ifndef LOOP_ALIGN_MAX_SKIP
#define LOOP_ALIGN_MAX_SKIP (align_loops-1)
#define LOOP_ALIGN_MAX_SKIP align_loops_max_skip
#endif
#ifndef LABEL_ALIGN_AFTER_BARRIER
......@@ -799,7 +799,7 @@ get_attr_length (insn)
#endif
#ifndef JUMP_ALIGN_MAX_SKIP
#define JUMP_ALIGN_MAX_SKIP (align_jumps-1)
#define JUMP_ALIGN_MAX_SKIP align_jumps_max_skip
#endif
#ifndef ADDR_VEC_ALIGN
......
......@@ -590,10 +590,13 @@ extern int g_switch_set;
extern int align_loops;
extern int align_loops_log;
extern int align_loops_max_skip;
extern int align_jumps;
extern int align_jumps_log;
extern int align_jumps_max_skip;
extern int align_labels;
extern int align_labels_log;
extern int align_labels_max_skip;
extern int align_functions;
extern int align_functions_log;
......
......@@ -924,10 +924,13 @@ int flag_renumber_insns = 1;
int align_loops;
int align_loops_log;
int align_loops_max_skip;
int align_jumps;
int align_jumps_log;
int align_jumps_max_skip;
int align_labels;
int align_labels_log;
int align_labels_max_skip;
int align_functions;
int align_functions_log;
......@@ -4877,11 +4880,17 @@ toplev_main (argc, argv)
/* Set up the align_*_log variables, defaulting them to 1 if they
were still unset. */
if (align_loops <= 0) align_loops = 1;
if (align_loops_max_skip > align_loops || !align_loops)
align_loops_max_skip = align_loops - 1;
align_loops_log = floor_log2 (align_loops * 2 - 1);
if (align_jumps <= 0) align_jumps = 1;
if (align_jumps_max_skip > align_jumps || !align_jumps)
align_jumps_max_skip = align_jumps - 1;
align_jumps_log = floor_log2 (align_jumps * 2 - 1);
if (align_labels <= 0) align_labels = 1;
align_labels_log = floor_log2 (align_labels * 2 - 1);
if (align_labels_max_skip > align_labels || !align_labels)
align_labels_max_skip = align_labels - 1;
if (align_functions <= 0) align_functions = 1;
align_functions_log = floor_log2 (align_functions * 2 - 1);
......
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