From 8dfc4f7080db89436e0cb9f2344a6a6540122d08 Mon Sep 17 00:00:00 2001 From: Rahul Kamat Date: Thu, 16 Jan 2025 17:43:57 -0800 Subject: [PATCH] Pass explicit list of stage 2 passes to stage2Passes() PiperOrigin-RevId: 716443092 --- .../javascript/jscomp/AbstractCommandLineRunner.java | 11 ++++++----- src/com/google/javascript/jscomp/Compiler.java | 8 ++++---- .../jscomp/integration/TypedAstIntegrationTest.java | 5 +++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/com/google/javascript/jscomp/AbstractCommandLineRunner.java b/src/com/google/javascript/jscomp/AbstractCommandLineRunner.java index 302f1d14cc4..2e8f4b3e72a 100644 --- a/src/com/google/javascript/jscomp/AbstractCommandLineRunner.java +++ b/src/com/google/javascript/jscomp/AbstractCommandLineRunner.java @@ -48,6 +48,7 @@ import com.google.javascript.jscomp.CompilerOptions.JsonStreamMode; import com.google.javascript.jscomp.CompilerOptions.OutputJs; import com.google.javascript.jscomp.CompilerOptions.TweakProcessing; +import com.google.javascript.jscomp.PassConfig.OptimizationPasses; import com.google.javascript.jscomp.deps.ModuleLoader; import com.google.javascript.jscomp.deps.SourceCodeEscapers; import com.google.javascript.jscomp.ijs.IjsErrors; @@ -1386,7 +1387,7 @@ private Result restoreTypedAstsPerformStage2AndSave( try { if (!compiler.hasErrors()) { metricsRecorder.recordStartState(compiler); - compiler.stage2Passes(); + compiler.stage2Passes(OptimizationPasses.ALL); if (!compiler.hasErrors()) { try (BufferedOutputStream serializedOutputStream = new BufferedOutputStream(new FileOutputStream(outputFilename))) { @@ -1411,7 +1412,7 @@ private Result restoreTypedAstsPerformStages2and3( try { if (!compiler.hasErrors()) { metricsRecorder.recordStartState(compiler); - compiler.stage2Passes(); + compiler.stage2Passes(OptimizationPasses.ALL); if (!compiler.hasErrors()) { compiler.stage3Passes(); } @@ -1435,7 +1436,7 @@ private Result restoreAndPerformStage2AndSave( compiler.restoreState(serializedInputStream); if (!compiler.hasErrors()) { metricsRecorder.recordStartState(compiler); - compiler.stage2Passes(); + compiler.stage2Passes(OptimizationPasses.ALL); if (!compiler.hasErrors()) { try (BufferedOutputStream serializedOutputStream = new BufferedOutputStream(new FileOutputStream(outputFilename))) { @@ -1465,7 +1466,7 @@ private Result restoreAndPerformStages2and3( compiler.restoreState(serializedInputStream); if (!compiler.hasErrors()) { metricsRecorder.recordStartState(compiler); - compiler.stage2Passes(); + compiler.stage2Passes(OptimizationPasses.ALL); if (!compiler.hasErrors()) { compiler.stage3Passes(); } @@ -1513,7 +1514,7 @@ private Result performFullCompilation(CompileMetricsRecorderInterface metricsRec metricsRecorder.recordStartState(compiler); compiler.stage1Passes(); if (!compiler.hasErrors()) { - compiler.stage2Passes(); + compiler.stage2Passes(OptimizationPasses.ALL); if (!compiler.hasErrors()) { compiler.stage3Passes(); } diff --git a/src/com/google/javascript/jscomp/Compiler.java b/src/com/google/javascript/jscomp/Compiler.java index e67f4a94d4f..f342b668206 100644 --- a/src/com/google/javascript/jscomp/Compiler.java +++ b/src/com/google/javascript/jscomp/Compiler.java @@ -939,7 +939,7 @@ public Result compile( } else { stage1Passes(); if (!hasErrors()) { - stage2Passes(); + stage2Passes(OptimizationPasses.ALL); if (!hasErrors()) { stage3Passes(); } @@ -995,7 +995,7 @@ public Result compileChunks( } else { stage1Passes(); if (!hasErrors()) { - stage2Passes(); + stage2Passes(OptimizationPasses.ALL); if (!hasErrors()) { stage3Passes(); } @@ -1040,7 +1040,7 @@ public void stage1Passes() { *

The caller is responsible for also calling {@code generateReport()} to generate a report of * warnings and errors to stderr. See the invocation in {@link #compile} for a good example. */ - public void stage2Passes() { + public void stage2Passes(OptimizationPasses optimizationPasses) { checkState(chunkGraph != null, "No inputs. Did you call init() or initChunks()?"); checkState(!hasErrors()); checkState(!options.getInstrumentForCoverageOnly()); @@ -1056,7 +1056,7 @@ public void stage2Passes() { runInCompilerThread( () -> { if (options.shouldOptimize()) { - performTranspilationAndOptimizations(OptimizationPasses.ALL); + performTranspilationAndOptimizations(optimizationPasses); } return null; }); diff --git a/test/com/google/javascript/jscomp/integration/TypedAstIntegrationTest.java b/test/com/google/javascript/jscomp/integration/TypedAstIntegrationTest.java index 417fa8e7c91..24d72409e3f 100644 --- a/test/com/google/javascript/jscomp/integration/TypedAstIntegrationTest.java +++ b/test/com/google/javascript/jscomp/integration/TypedAstIntegrationTest.java @@ -35,6 +35,7 @@ import com.google.javascript.jscomp.DiagnosticGroups; import com.google.javascript.jscomp.JSChunk; import com.google.javascript.jscomp.ModuleIdentifier; +import com.google.javascript.jscomp.PassConfig.OptimizationPasses; import com.google.javascript.jscomp.PropertyRenamingPolicy; import com.google.javascript.jscomp.SourceFile; import com.google.javascript.jscomp.VariableRenamingPolicy; @@ -659,7 +660,7 @@ public void testCrossChunkMethodMotion() throws IOException { options, inputStream); } - compiler.stage2Passes(); + compiler.stage2Passes(OptimizationPasses.ALL); compiler.stage3Passes(); String[] expected = @@ -925,7 +926,7 @@ private Compiler compileTypedAstShardsWithoutErrorChecks(CompilerOptions options options, inputStream); } - compiler.stage2Passes(); + compiler.stage2Passes(OptimizationPasses.ALL); if (!compiler.hasErrors()) { compiler.stage3Passes(); }