diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2015-01-10 00:31:10 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2015-01-10 00:31:10 +0000 |
| commit | 611b127ad81108b43032ddf936c764edbb6af7db (patch) | |
| tree | dfa0a7d37bbd9927b6aa44d34e56dabb129fffa9 | |
| parent | 38dd590861c32563c3bb38bc8ca53055fc89d691 (diff) | |
| download | bcm5719-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.td | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCScheduleP8.td | 4 | ||||
| -rw-r--r-- | llvm/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll | 52 |
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 |

