From: Reid Kleckner Date: Fri, 16 Mar 2018 20:11:55 +0000 (+0000) Subject: Revert r327721 "This patch fixes the invalid usage of OptSize in Machine Combiner." X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2aeb930a9f5761e39fb321ad61710683fb49009d;p=platform%2Fupstream%2Fllvm.git Revert r327721 "This patch fixes the invalid usage of OptSize in Machine Combiner." It causes asserts when compiling Chromium on Win32 with optimizations. We compile many things with -Os. llvm-svn: 327733 --- diff --git a/llvm/lib/CodeGen/MachineCombiner.cpp b/llvm/lib/CodeGen/MachineCombiner.cpp index 7637a64..efb463f 100644 --- a/llvm/lib/CodeGen/MachineCombiner.cpp +++ b/llvm/lib/CodeGen/MachineCombiner.cpp @@ -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.