Turn disable or delete optimizations that don't have any effect.

Recording gets a ~5% speedup.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/577673003
diff --git a/src/core/SkRecordOpts.cpp b/src/core/SkRecordOpts.cpp
index 47718e1..7c24a08 100644
--- a/src/core/SkRecordOpts.cpp
+++ b/src/core/SkRecordOpts.cpp
@@ -14,9 +14,13 @@
 using namespace SkRecords;
 
 void SkRecordOptimize(SkRecord* record) {
+    // This might be useful  as a first pass in the future if we want to weed
+    // out junk for other optimization passes.  Right now, nothing needs it,
+    // and the bounding box hierarchy will do the work of skipping no-op
+    // Save-NoDraw-Restore sequences better than we can here.
+    //SkRecordNoopSaveRestores(record);
+
     SkRecordNoopSaveLayerDrawRestores(record);
-    SkRecordNoopSaveRestores(record);
-    SkRecordReduceDrawPosTextStrength(record);
 }
 
 // Most of the optimizations in this file are pattern-based.  These are all defined as structs with:
@@ -147,47 +151,3 @@
     apply(&pass, record);
 }
 
-
-// Replaces DrawPosText with DrawPosTextH when all Y coordinates are equal.
-struct StrengthReducer {
-    typedef Pattern1<Is<DrawPosText> > Pattern;
-
-    bool onMatch(SkRecord* record, Pattern* pattern, unsigned begin, unsigned end) {
-        SkASSERT(end == begin + 1);
-        DrawPosText* draw = pattern->first<DrawPosText>();
-
-        const unsigned points = draw->paint.countText(draw->text, draw->byteLength);
-        if (points == 0) {
-            return false;  // No point (ha!).
-        }
-
-        const SkScalar firstY = draw->pos[0].fY;
-        for (unsigned i = 1; i < points; i++) {
-            if (draw->pos[i].fY != firstY) {
-                return false;  // Needs full power of DrawPosText.
-            }
-        }
-        // All ys are the same.  We can replace DrawPosText with DrawPosTextH.
-
-        // draw->pos is points SkPoints, [(x,y),(x,y),(x,y),(x,y), ... ].
-        // We're going to squint and look at that as 2*points SkScalars, [x,y,x,y,x,y,x,y, ...].
-        // Then we'll rearrange things so all the xs are in order up front, clobbering the ys.
-        SK_COMPILE_ASSERT(sizeof(SkPoint) == 2 * sizeof(SkScalar), SquintingIsNotSafe);
-        SkScalar* scalars = &draw->pos[0].fX;
-        for (unsigned i = 0; i < 2*points; i += 2) {
-            scalars[i/2] = scalars[i];
-        }
-
-        // Extend lifetime of draw to the end of the loop so we can copy its paint.
-        Adopted<DrawPosText> adopted(draw);
-        SkNEW_PLACEMENT_ARGS(record->replace<DrawPosTextH>(begin, adopted),
-                             DrawPosTextH,
-                             (draw->paint, draw->text, draw->byteLength, scalars, firstY));
-        return true;
-    }
-};
-void SkRecordReduceDrawPosTextStrength(SkRecord* record) {
-    StrengthReducer pass;
-    apply(&pass, record);
-}
-
diff --git a/src/core/SkRecordOpts.h b/src/core/SkRecordOpts.h
index da72796..936eeff 100644
--- a/src/core/SkRecordOpts.h
+++ b/src/core/SkRecordOpts.h
@@ -20,7 +20,4 @@
 // draw, and no-op the SaveLayer and Restore.
 void SkRecordNoopSaveLayerDrawRestores(SkRecord*);
 
-// Convert DrawPosText to DrawPosTextH when all the Y coordinates are equal.
-void SkRecordReduceDrawPosTextStrength(SkRecord*);
-
 #endif//SkRecordOpts_DEFINED
diff --git a/tests/RecordOptsTest.cpp b/tests/RecordOptsTest.cpp
index e17b5e6..c5c4471 100644
--- a/tests/RecordOptsTest.cpp
+++ b/tests/RecordOptsTest.cpp
@@ -16,30 +16,6 @@
 
 static const int W = 1920, H = 1080;
 
-static void draw_pos_text(SkCanvas* canvas, const char* text, bool constantY) {
-    const size_t len = strlen(text);
-    SkAutoTMalloc<SkPoint> pos(len);
-    for (size_t i = 0; i < len; i++) {
-        pos[i].fX = (SkScalar)i;
-        pos[i].fY = constantY ? SK_Scalar1 : (SkScalar)i;
-    }
-    canvas->drawPosText(text, len, pos, SkPaint());
-}
-
-DEF_TEST(RecordOpts_StrengthReduction, r) {
-    SkRecord record;
-    SkRecorder recorder(&record, W, H);
-
-    // We can convert a drawPosText into a drawPosTextH when all the Ys are the same.
-    draw_pos_text(&recorder, "This will be reduced to drawPosTextH.", true);
-    draw_pos_text(&recorder, "This cannot be reduced to drawPosTextH.", false);
-
-    SkRecordReduceDrawPosTextStrength(&record);
-
-    assert_type<SkRecords::DrawPosTextH>(r, record, 0);
-    assert_type<SkRecords::DrawPosText>(r, record, 1);
-}
-
 DEF_TEST(RecordOpts_NoopDrawSaveRestore, r) {
     SkRecord record;
     SkRecorder recorder(&record, W, H);