This patch moves isAsCheapAsAMove to be a new API defined in TargetInstroInfo, so different targets could override it by customizing micro-architecture specific versions. For AArch64, this patch only adds cortex-a57 and cortex-a53 support so far. In LLVM, register coalesce pass is leveraging this API to help rematerialization.
With this patch applied, we would have some performance changes on cortex-a57. Below is running time change data
spec.cpu2000.ref.252_eon -1.26%
spec.cpu2000.ref.253_perlbmk -5.61%
spec.cpu2000.ref.254_gap 1.29%
eembc.automotive.cacheb01 1.82%
eembc.automotive.rspeed01 -5.44%
eembc.consumer.cjpeg -2.08%
eembc.telecom.conven00 -6.42%
Thanks,
-Jiangning
Like Eric said:
u-archs => microarchitectures