aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2004-08-27 18:29:52 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2004-08-27 14:29:52 -0400
commit1494c5345d46b90b685bb310d99fef3a52ad23c3 (patch)
tree8f90c67ff3ca012057d91ec7c43c1b1acf1c19c3 /gcc/config/rs6000
parent50bc768da122bde65bc31bf4054f29603893455a (diff)
downloadgcc-1494c5345d46b90b685bb310d99fef3a52ad23c3.zip
gcc-1494c5345d46b90b685bb310d99fef3a52ad23c3.tar.gz
gcc-1494c5345d46b90b685bb310d99fef3a52ad23c3.tar.bz2
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
Diffstat (limited to 'gcc/config/rs6000')
-rw-r--r--gcc/config/rs6000/rs6000.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 49fe3ba..0ec9c57 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);