[PATCH] [AArch64] Enhance rematerialization by adding a new API isAsCheapAsAMove in TargetInstroInfo

Jiangning Liu liujiangning1 at gmail.com
Tue Jul 1 22:14:58 PDT 2014


Hi t.p.northover,

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

http://reviews.llvm.org/D4361

Files:
  include/llvm/CodeGen/MachineInstr.h
  include/llvm/Target/TargetInstrInfo.h
  lib/CodeGen/RegisterCoalescer.cpp
  lib/Target/AArch64/AArch64InstrFormats.td
  lib/Target/AArch64/AArch64InstrInfo.cpp
  lib/Target/AArch64/AArch64InstrInfo.h
  test/CodeGen/AArch64/remat.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4361.11017.patch
Type: text/x-patch
Size: 7836 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140702/4225bd88/attachment.bin>


More information about the llvm-commits mailing list