[llvm-branch-commits] [llvm-branch] r90328 - /llvm/branches/Apple/Zoidberg/lib/CodeGen/TailDuplication.cpp

Bob Wilson bob.wilson at apple.com
Wed Dec 2 09:21:19 PST 2009


Author: bwilson
Date: Wed Dec  2 11:21:14 2009
New Revision: 90328

URL: http://llvm.org/viewvc/llvm-project?rev=90328&view=rev
Log:
--- Merging r90326 into '.':
U    lib/CodeGen/TailDuplication.cpp

Modified:
    llvm/branches/Apple/Zoidberg/lib/CodeGen/TailDuplication.cpp

Modified: llvm/branches/Apple/Zoidberg/lib/CodeGen/TailDuplication.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Zoidberg/lib/CodeGen/TailDuplication.cpp?rev=90328&r1=90327&r2=90328&view=diff

==============================================================================
--- llvm/branches/Apple/Zoidberg/lib/CodeGen/TailDuplication.cpp (original)
+++ llvm/branches/Apple/Zoidberg/lib/CodeGen/TailDuplication.cpp Wed Dec  2 11:21:14 2009
@@ -129,20 +129,22 @@
 
   // Check the instructions in the block to determine whether tail-duplication
   // is invalid or unlikely to be profitable.
-  unsigned i = 0;
+  unsigned InstrCount = 0;
   bool HasCall = false;
   for (MachineBasicBlock::iterator I = TailBB->begin();
-       I != TailBB->end(); ++I, ++i) {
+       I != TailBB->end(); ++I) {
     // Non-duplicable things shouldn't be tail-duplicated.
     if (I->getDesc().isNotDuplicable()) return false;
     // Don't duplicate more than the threshold.
-    if (i == MaxDuplicateCount) return false;
+    if (InstrCount == MaxDuplicateCount) return false;
     // Remember if we saw a call.
     if (I->getDesc().isCall()) HasCall = true;
+    if (I->getOpcode() != TargetInstrInfo::PHI)
+      InstrCount += 1;
   }
   // Heuristically, don't tail-duplicate calls if it would expand code size,
   // as it's less likely to be worth the extra cost.
-  if (i > 1 && HasCall)
+  if (InstrCount > 1 && HasCall)
     return false;
 
   // Iterate through all the unique predecessors and tail-duplicate this





More information about the llvm-branch-commits mailing list