summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2015-01-10 00:31:10 +0000
committerHal Finkel <hfinkel@anl.gov>2015-01-10 00:31:10 +0000
commit611b127ad81108b43032ddf936c764edbb6af7db (patch)
treedfa0a7d37bbd9927b6aa44d34e56dabb129fffa9
parent38dd590861c32563c3bb38bc8ca53055fc89d691 (diff)
downloadbcm5719-llvm-611b127ad81108b43032ddf936c764edbb6af7db.tar.gz
bcm5719-llvm-611b127ad81108b43032ddf936c764edbb6af7db.zip
[PowerPC] Readjust the loop unrolling threshold
Now that the way that the partial unrolling threshold for small loops is used to compute the unrolling factor as been corrected, a slightly smaller threshold is preferable. This is expected; other targets may need to re-tune as well. llvm-svn: 225566
-rw-r--r--llvm/lib/Target/PowerPC/PPCScheduleP7.td4
-rw-r--r--llvm/lib/Target/PowerPC/PPCScheduleP8.td4
-rw-r--r--llvm/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll52
3 files changed, 54 insertions, 6 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCScheduleP7.td b/llvm/lib/Target/PowerPC/PPCScheduleP7.td
index 00aa834ca4b..03693cbeada 100644
--- a/llvm/lib/Target/PowerPC/PPCScheduleP7.td
+++ b/llvm/lib/Target/PowerPC/PPCScheduleP7.td
@@ -380,8 +380,8 @@ def P7Model : SchedMachineModel {
// Itineraries are queried instead.
let MispredictPenalty = 16;
- // Try to make sure we have at least 10-11 dispatch groups in a loop.
- let LoopMicroOpBufferSize = 44;
+ // Try to make sure we have at least 10 dispatch groups in a loop.
+ let LoopMicroOpBufferSize = 40;
let Itineraries = P7Itineraries;
}
diff --git a/llvm/lib/Target/PowerPC/PPCScheduleP8.td b/llvm/lib/Target/PowerPC/PPCScheduleP8.td
index 8cdc79e9d14..07971809c87 100644
--- a/llvm/lib/Target/PowerPC/PPCScheduleP8.td
+++ b/llvm/lib/Target/PowerPC/PPCScheduleP8.td
@@ -389,8 +389,8 @@ def P8Model : SchedMachineModel {
// Itineraries are queried instead.
let MispredictPenalty = 16;
- // Try to make sure we have at least 10-11 dispatch groups in a loop.
- let LoopMicroOpBufferSize = 66;
+ // Try to make sure we have at least 10 dispatch groups in a loop.
+ let LoopMicroOpBufferSize = 60;
let Itineraries = P8Itineraries;
}
diff --git a/llvm/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll b/llvm/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll
index b2ea74a75da..7a50fc0a4f4 100644
--- a/llvm/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll
+++ b/llvm/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll
@@ -22,7 +22,31 @@ exit:
; CHECK-NEXT: add
; CHECK-NEXT: add
; CHECK-NEXT: add
-; CHECK: icmp
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: icmp
define void @unroll_default() nounwind {
entry:
@@ -47,5 +71,29 @@ exit:
; CHECK-NEXT: add
; CHECK-NEXT: add
; CHECK-NEXT: add
-; CHECK: icmp
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: add
+; CHECK-NEXT: icmp
OpenPOWER on IntegriCloud