+2007-08-03 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (struct processor_cost): Change
+ l1_cache_lines to l1_cache_size. Add l2_cache_size.
+ (*_cost): Convert l1 cache information to kilobytes. Add l2 cache
+ information.
+ (rios1_costs, rios2_cost): Correct cache line size.
+ (rs6000_override_options): Set l2-cache-size parameter.
+
2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
Diego Novillo <dnovillo@google.com>
* langhooks.h (struct lang_hooks): Removed field
'can_use_bit_fields_p'.
-2007-01-10 Ralf CorsÃ\83©pius <ralf.corsepius@rtems.org>
+2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
* config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
* config/frv/predicates.md (reg_or_0_operand): Accept
CONST_DOUBLEs.
-2007-01-08 Ralf CorsÃ\83©pius <ralf.corsepius@rtems.org>
+2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* config/bfin/rtems.h, config/bfin/t-rtems: New.
* config.gcc: Add bfin*-rtems*.
const int dmul; /* cost of DFmode multiplication (and fmadd). */
const int sdiv; /* cost of SFmode division (fdivs). */
const int ddiv; /* cost of DFmode division (fdiv). */
- const int cache_line_size; /* cache block in bytes. */
- const int l1_cache_lines; /* number of lines in L1 cache. */
+ const int cache_line_size; /* cache line size in bytes. */
+ const int l1_cache_size; /* size of l1 cache, in kilobytes. */
+ const int l2_cache_size; /* size of l2 cache, in kilobytes. */
const int simultaneous_prefetches; /* number of parallel prefetch
operations. */
};
32,
0,
0,
+ 0,
};
/* Instruction size costs on 64bit processors. */
128,
0,
0,
+ 0,
};
/* Instruction costs on RIOS1 processors. */
COSTS_N_INSNS (2), /* dmul */
COSTS_N_INSNS (19), /* sdiv */
COSTS_N_INSNS (19), /* ddiv */
- 32,
- 1024, /* cache lines */
+ 128,
+ 64, /* l1 cache */
+ 512, /* l2 cache */
0, /* streams */
};
COSTS_N_INSNS (2), /* dmul */
COSTS_N_INSNS (17), /* sdiv */
COSTS_N_INSNS (17), /* ddiv */
- 32,
- 1024, /* cache lines */
+ 256,
+ 256, /* l1 cache */
+ 1024, /* l2 cache */
0, /* streams */
};
COSTS_N_INSNS (31), /* sdiv */
COSTS_N_INSNS (31), /* ddiv */
128,
- 1024, /* cache lines */
+ 128, /* l1 cache */
+ 2048, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (5), /* dmul */
COSTS_N_INSNS (10), /* sdiv */
COSTS_N_INSNS (17), /* ddiv */
- 128,
- 512, /* cache lines */
+ 32,
+ 4, /* l1 cache */
+ 16, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (11), /* sdiv */
COSTS_N_INSNS (11), /* ddiv */
32,
- 128, /* cache lines */
+ 4, /* l1 cache */
+ 16, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (11), /* sdiv */
COSTS_N_INSNS (11), /* ddiv */
32,
- 512, /* cache lines */
+ 16, /* l1 cache */
+ 128, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (19), /* sdiv */
COSTS_N_INSNS (33), /* ddiv */
32,
- 1024, /* cache lines */
+ 32, /* l1 cache */
+ 256, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (17), /* sdiv */
COSTS_N_INSNS (31), /* ddiv */
32,
- 1024, /* cache lines */
+ 32, /* l1 cache */
+ 256, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (18), /* sdiv */
COSTS_N_INSNS (33), /* ddiv */
32,
- 256, /* cache lines */
+ 8, /* l1 cache */
+ 64, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (18), /* sdiv */
COSTS_N_INSNS (32), /* ddiv */
32,
- 512, /* cache lines */
+ 16, /* l1 cache */
+ 512, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (18), /* sdiv */
COSTS_N_INSNS (32), /* ddiv */
32,
- 1024, /* cache lines */
+ 32, /* l1 cache */
+ 1024, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (18), /* sdiv */
COSTS_N_INSNS (32), /* ddiv */
128,
- 512, /* cache lines */
+ 32, /* l1 cache */
+ 1024, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (17), /* sdiv */
COSTS_N_INSNS (21), /* ddiv */
128,
- 512, /* cache lines */
+ 64, /* l1 cache */
+ 1024, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (74/2), /* sdiv */
COSTS_N_INSNS (74/2), /* ddiv */
128,
- 256, /* cache lines */
- 6, /* streams */
+ 32, /* l1 cache */
+ 512, /* l2 cache */
+ 6, /* streams */
};
/* Instruction costs on PPC750 and PPC7400 processors. */
COSTS_N_INSNS (17), /* sdiv */
COSTS_N_INSNS (31), /* ddiv */
32,
- 1024, /* cache lines */
+ 32, /* l1 cache */
+ 512, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (21), /* sdiv */
COSTS_N_INSNS (35), /* ddiv */
32,
- 1024, /* cache lines */
+ 32, /* l1 cache */
+ 1024, /* l2 cache */
1, /* streams */
};
COSTS_N_INSNS (29), /* sdiv */
COSTS_N_INSNS (29), /* ddiv */
32,
- 1024, /* cache lines */
+ 32, /* l1 cache */
+ 256, /* l2 cache */
1, /* prefetch streams /*/
};
COSTS_N_INSNS (17), /* sdiv */
COSTS_N_INSNS (17), /* ddiv */
128,
- 256, /* cache lines */
+ 32, /* l1 cache */
+ 1024, /* l2 cache */
8, /* prefetch streams /*/
};
COSTS_N_INSNS (13), /* sdiv */
COSTS_N_INSNS (16), /* ddiv */
128,
- 512, /* cache lines */
+ 64, /* l1 cache */
+ 2048, /* l2 cache */
16, /* prefetch streams */
};
set_param_value ("simultaneous-prefetches",
rs6000_cost->simultaneous_prefetches);
if (!PARAM_SET_P (PARAM_L1_CACHE_SIZE))
- set_param_value ("l1-cache-size", rs6000_cost->l1_cache_lines);
+ set_param_value ("l1-cache-size", rs6000_cost->l1_cache_size);
if (!PARAM_SET_P (PARAM_L1_CACHE_LINE_SIZE))
set_param_value ("l1-cache-line-size", rs6000_cost->cache_line_size);
+ if (!PARAM_SET_P (PARAM_L2_CACHE_SIZE))
+ set_param_value ("l2-cache-size", rs6000_cost->l2_cache_size);
}
/* Implement targetm.vectorize.builtin_mask_for_load. */