From a88896b5c042399a83e434cc39cd3cc098737381 Mon Sep 17 00:00:00 2001 From: James Molloy Date: Thu, 21 Aug 2014 00:02:51 +0000 Subject: [PATCH] [LoopVectorize] Up the maximum unroll factor to 4 for AArch64 Only for Cortex-A57 and Cyclone for now, where it has shown wins. llvm-svn: 216141 --- llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp index 2058dd06b218..24cb129b0b77 100644 --- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp @@ -104,7 +104,7 @@ public: return 64; } - unsigned getMaximumUnrollFactor() const override { return 2; } + unsigned getMaximumUnrollFactor() const override; unsigned getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src) const override; @@ -513,3 +513,9 @@ unsigned AArch64TTI::getCostOfKeepingLiveOverCall(ArrayRef Tys) const { } return Cost; } + +unsigned AArch64TTI::getMaximumUnrollFactor() const { + if (ST->isCortexA57() || ST->isCyclone()) + return 4; + return 2; +}