Disable CF load/store optimization in L8.

Bug: 145589480
Change-Id: I1421fcc4700cb4fbfbd5bf05d0670112419ab619
diff --git a/src/main/java/com/android/tools/r8/L8.java b/src/main/java/com/android/tools/r8/L8.java
index 28713e3..d526f48 100644
--- a/src/main/java/com/android/tools/r8/L8.java
+++ b/src/main/java/com/android/tools/r8/L8.java
@@ -107,6 +107,9 @@
     try {
       // Disable global optimizations.
       options.disableGlobalOptimizations();
+      // Since L8 Cf representation is temporary, just disable long running back-end optimizations
+      // on it.
+      options.enableLoadStoreOptimization = false;
 
       DexApplication app = new ApplicationReader(inputApp, options, timing).read(executor);
       PrefixRewritingMapper rewritePrefix =
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
index 55cabed..682804e 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
@@ -136,7 +136,7 @@
     LoadStoreHelper loadStoreHelper = new LoadStoreHelper(appView, code, typeVerificationHelper);
     loadStoreHelper.insertLoadsAndStores();
     // Run optimizations on phis and basic blocks in a fixpoint.
-    if (!appView.options().testing.disallowLoadStoreOptimization) {
+    if (appView.options().enableLoadStoreOptimization) {
       PhiOptimizations phiOptimizations = new PhiOptimizations();
       boolean reachedFixpoint = false;
       phiOptimizations.optimize(code);
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 77cc41e..e815737 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -393,6 +393,8 @@
   public boolean readCompileTimeAnnotations = true;
   public List<String> logArgumentsFilter = ImmutableList.of();
 
+  // Flag to turn on/offLoad/store optimization in the Cf back-end.
+  public boolean enableLoadStoreOptimization = true;
   // Flag to turn on/off lambda class merging in R8.
   public boolean enableLambdaMerging = false;
   // Flag to turn on/off desugaring in D8/R8.
@@ -1009,7 +1011,6 @@
     public Set<Inliner.Reason> validInliningReasons = null;
     public boolean noLocalsTableOnInput = false;
     public boolean forceNameReflectionOptimization = false;
-    public boolean disallowLoadStoreOptimization = false;
     public boolean enableNarrowingChecksInD8 = false;
     public Consumer<IRCode> irModifier = null;
     // TODO(b/129458850) When fixed, remove this and change all usages to "true".
diff --git a/src/test/java/com/android/tools/r8/cf/TryRangeTestRunner.java b/src/test/java/com/android/tools/r8/cf/TryRangeTestRunner.java
index cf8f3f4..f659d1c 100644
--- a/src/test/java/com/android/tools/r8/cf/TryRangeTestRunner.java
+++ b/src/test/java/com/android/tools/r8/cf/TryRangeTestRunner.java
@@ -41,7 +41,7 @@
         .noMinification()
         .noTreeShaking()
         .enableInliningAnnotations()
-        .addOptionsModification(o -> o.testing.disallowLoadStoreOptimization = true)
+        .addOptionsModification(o -> o.enableLoadStoreOptimization = false)
         .run(TryRangeTest.class)
         .assertSuccessWithOutput(StringUtils.lines("10", "7.0"));
   }
@@ -58,7 +58,7 @@
             .enableInliningAnnotations()
             .addOptionsModification(
                 o -> {
-                  o.testing.disallowLoadStoreOptimization = true;
+                  o.enableLoadStoreOptimization = false;
                   o.testing.irModifier = this::processIR;
                 })
             .run(TryRangeTestLimitRange.class)