[PowerPC] Readjust the loop unrolling threshold
authorHal Finkel <hfinkel@anl.gov>
Sat, 10 Jan 2015 00:31:10 +0000 (00:31 +0000)
committerHal Finkel <hfinkel@anl.gov>
Sat, 10 Jan 2015 00:31:10 +0000 (00:31 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225566 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCScheduleP7.td
lib/Target/PowerPC/PPCScheduleP8.td
test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll

index 00aa834ca4bc903e118fdfc3d7e1e413d776b8a5..03693cbeada071ac85182f97a8ed56d8707653e7 100644 (file)
@@ -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;
 }
index 8cdc79e9d14db802dfd80ad353c101e45f0d0895..07971809c877beb184564e8cb5bafd7d5818b365 100644 (file)
@@ -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;
 }
index b2ea74a75daededa7ce3632dd192d9b235607f9a..7a50fc0a4f49e7dc8daa354fd49ac2e17ad3437e 100644 (file)
@@ -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