Revert r327721 "This patch fixes the invalid usage of OptSize in Machine Combiner."
authorReid Kleckner <rnk@google.com>
Fri, 16 Mar 2018 20:11:55 +0000 (20:11 +0000)
committerReid Kleckner <rnk@google.com>
Fri, 16 Mar 2018 20:11:55 +0000 (20:11 +0000)
It causes asserts when compiling Chromium on Win32 with optimizations.
We compile many things with -Os.

llvm-svn: 327733

llvm/lib/CodeGen/MachineCombiner.cpp

index 7637a64..efb463f 100644 (file)
@@ -407,8 +407,8 @@ bool MachineCombiner::preservesResourceLen(
 /// \returns true when new instruction sequence should be generated
 /// independent if it lengthens critical path or not
 bool MachineCombiner::doSubstitute(unsigned NewSize, unsigned OldSize) {
-  if (OptSize)                   // First of all check OptSize option
-    return (NewSize < OldSize);  // Only substitute if new size < old size
+  if (OptSize && (NewSize < OldSize))
+    return true;
   if (!TSchedModel.hasInstrSchedModelOrItineraries())
     return true;
   return false;
@@ -588,7 +588,7 @@ bool MachineCombiner::combineInstructions(MachineBasicBlock *MBB) {
         // Eagerly stop after the first pattern fires.
         Changed = true;
         break;
-      } else if (!OptSize || (NewInstCount <= OldInstCount)) {
+      } else {
         // For big basic blocks, we only compute the full trace the first time
         // we hit this. We do not invalidate the trace, but instead update the
         // instruction depths incrementally.