[PATCH] D28152: Cortex-A57 scheduling model for ARM backend (AArch32)
Andrew Zhogin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 2 11:43:14 PDT 2017
andrew.zhogin updated this revision to Diff 93801.
andrew.zhogin added a comment.
Changes to fix the performance regressions:
- Implemented FeatureCheapPredicableCPSR to disable +1 predication cost for CPSR-defining instructions and MispredictPenalty increased to 16. It tweaks if-conversion.
- Added FeatureAvoidPartialCPSR in the ProcessorModel.
With those changes only 2 tests have significant stable regressions (with --exec-multisample 5):
SingleSource/Benchmarks/BenchmarkGame/fannkuch 6.19%
MultiSource/Benchmarks/Ptrdist/ft/ft 3.75%
Both tests have problem with unrolling of inner loops with small (dynamic) loop counts.
With PGO-compilation the regressions are gone.
Also fixed problem with atomic loads second argument.
https://reviews.llvm.org/D28152
Files:
include/llvm/CodeGen/TargetSchedule.h
lib/Target/ARM/ARM.td
lib/Target/ARM/ARMBaseInstrInfo.cpp
lib/Target/ARM/ARMBaseInstrInfo.h
lib/Target/ARM/ARMSchedule.td
lib/Target/ARM/ARMScheduleA57.td
lib/Target/ARM/ARMScheduleA57WriteRes.td
lib/Target/ARM/ARMSubtarget.h
test/CodeGen/ARM/cortex-a57-misched-alu.ll
test/CodeGen/ARM/cortex-a57-misched-basic.ll
test/CodeGen/ARM/cortex-a57-misched-ldm-wrback.ll
test/CodeGen/ARM/cortex-a57-misched-ldm.ll
test/CodeGen/ARM/cortex-a57-misched-stm-wrback.ll
test/CodeGen/ARM/cortex-a57-misched-stm.ll
test/CodeGen/ARM/cortex-a57-misched-vfma.ll
test/CodeGen/ARM/cortex-a57-misched-vldm-wrback.ll
test/CodeGen/ARM/cortex-a57-misched-vldm.ll
test/CodeGen/ARM/cortex-a57-misched-vstm-wrback.ll
test/CodeGen/ARM/cortex-a57-misched-vstm.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28152.93801.patch
Type: text/x-patch
Size: 105539 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170402/c81a71f3/attachment-0001.bin>
More information about the llvm-commits
mailing list