[PPC] Early exit loop. NFC.
authorChad Rosier <mcrosier@codeaurora.org>
Mon, 14 Dec 2015 14:44:06 +0000 (14:44 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Mon, 14 Dec 2015 14:44:06 +0000 (14:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255497 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCISelLowering.cpp

index 176a8b3ea59b976e6e1557afbc79391b59c617cb..242c1ea330968844d8e55289c9dc7a02e55ccc77 100644 (file)
@@ -10801,8 +10801,11 @@ unsigned PPCTargetLowering::getPrefLoopAlignment(MachineLoop *ML) const {
     // boundary so that the entire loop fits in one instruction-cache line.
     uint64_t LoopSize = 0;
     for (auto I = ML->block_begin(), IE = ML->block_end(); I != IE; ++I)
     // boundary so that the entire loop fits in one instruction-cache line.
     uint64_t LoopSize = 0;
     for (auto I = ML->block_begin(), IE = ML->block_end(); I != IE; ++I)
-      for (auto J = (*I)->begin(), JE = (*I)->end(); J != JE; ++J)
+      for (auto J = (*I)->begin(), JE = (*I)->end(); J != JE; ++J) {
         LoopSize += TII->GetInstSizeInBytes(J);
         LoopSize += TII->GetInstSizeInBytes(J);
+        if (LoopSize > 32)
+          break;
+      }
 
     if (LoopSize > 16 && LoopSize <= 32)
       return 5;
 
     if (LoopSize > 16 && LoopSize <= 32)
       return 5;