Hi, This patch series adds machinery and functionality to enable tuning for big.LITTLE systems when compiling for the ARM target.
We take the convention for names to -mcpu that for some big.LITTLE system where the big core is 'x' and the little core is 'y', the -mcpu name will be x.y In order to acheive that, we must first tweak some infrastructure. First, in order to reduce coupling between assembler versions, we must add name rewriting for the -mcpu command. big.LITTLE systems use architecturally compatible cores, so we can be sure that if we are asked to assemble for cortex-a15.cortex-a7, then we can also assemble for cortex-a15. Thus, we choose to truncate at the first '.' delimiter between core names. The ARM backend presently carries the limitation that each entry in arm-cores.def must provide a unique 'tuning' target. This is restrictive and would require constant churn modifications to the scheduler descriptions to add each big.LITTLE flavour which is released. We modify this infrastructure to still carry a unique identifier, but also to carry a potentially shared sheduling identifier. The final 3 patches add support for new -mcpu values: cortex-a15.cortex-a7, cortex-a57, cortex-a57.cortex-a53. The series has been regression tested and built on a number of configurations, bootstrapped with option --with-cpu=cortex-a15.cortex-a7 and benchmarked on an Cortex-A15 based system and a Cortex-A7 base system with no regressions. OK? Thanks, James