From 1494c5345d46b90b685bb310d99fef3a52ad23c3 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Fri, 27 Aug 2004 18:29:52 +0000 Subject: [PATCH] rs6000.c (rs6000_override_options): Increase maximum skip to 15. * config/rs6000/rs6000.c (rs6000_override_options): Increase maximum skip to 15. Set function alignment, jump alignment, and loop alignment to 16 for processors that form dispatch groups. (rs6000_rtx_costs): Outer code is used. From-SVN: r86670 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/rs6000.c | 23 ++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5afcde684d6..fdf25f2b52d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-08-27 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Increase + maximum skip to 15. Set function alignment, jump alignment, and + loop alignment to 16 for processors that form dispatch groups. + (rs6000_rtx_costs): Outer code is used. + 2004-08-27 Nathan Sidwell * stor-layout.c (sizetype_set): Remove. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 49fe3bac77f..0ec9c57c6eb 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1429,9 +1429,23 @@ rs6000_override_options (const char *default_cpu) targetm.asm_out.unaligned_op.di = NULL; } - /* Set maximum branch target alignment at two instructions, eight bytes. */ - align_jumps_max_skip = 8; - align_loops_max_skip = 8; + /* Set branch target alignment, if not optimizing for size. */ + if (!optimize_size) + { + if (rs6000_sched_groups) + { + if (align_functions <= 0) + align_functions = 16; + if (align_jumps <= 0) + align_jumps = 16; + if (align_loops <= 0) + align_loops = 16; + } + if (align_jumps_max_skip <= 0) + align_jumps_max_skip = 15; + if (align_loops_max_skip <= 0) + align_loops_max_skip = 15; + } /* Arrange to save and restore machine status around nested functions. */ init_machine_status = rs6000_init_machine_status; @@ -17070,8 +17084,7 @@ rs6000_binds_local_p (tree decl) scanned. In either case, *TOTAL contains the cost result. */ static bool -rs6000_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED, - int *total) +rs6000_rtx_costs (rtx x, int code, int outer_code, int *total) { enum machine_mode mode = GET_MODE (x); -- 2.30.2