mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 14:39:38 +00:00
[dart2js] Clean up ssa/optimize.dart migration files.
Change-Id: I0aaf3e719ab6ab794840a6a07f58c3ee82a61e23 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274322 Reviewed-by: Sigmund Cherem <sigmund@google.com> Commit-Queue: Nate Biggs <natebiggs@google.com>
This commit is contained in:
parent
25e650691f
commit
6144b6ed89
|
@ -9,7 +9,7 @@ import '../js_backend/interceptor_data.dart';
|
|||
import '../js_model/js_world.dart' show JClosedWorld;
|
||||
import '../universe/selector.dart' show Selector;
|
||||
import 'nodes.dart';
|
||||
import 'optimize_interfaces.dart' show OptimizationPhase;
|
||||
import 'optimize.dart' show OptimizationPhase;
|
||||
|
||||
/// SsaFinalizeInterceptors makes adjustments for the interceptor calling
|
||||
/// convention.
|
||||
|
|
|
@ -10,7 +10,7 @@ import '../js_backend/interceptor_data.dart';
|
|||
import '../js_model/js_world.dart' show JClosedWorld;
|
||||
import '../universe/selector.dart' show Selector;
|
||||
import 'nodes.dart';
|
||||
import 'optimize_interfaces.dart' show OptimizationPhase;
|
||||
import 'optimize.dart' show OptimizationPhase;
|
||||
|
||||
/// This phase computes the set of classes dispatched by an interceptor, and
|
||||
/// simplifies interceptors in multiple ways:
|
||||
|
|
|
@ -8,7 +8,7 @@ import '../js_model/elements.dart' show JField;
|
|||
import '../js_model/js_world.dart' show JClosedWorld;
|
||||
import 'logging.dart';
|
||||
import 'nodes.dart';
|
||||
import 'optimize_interfaces.dart' show OptimizationPhase;
|
||||
import 'optimize.dart' show OptimizationPhase;
|
||||
|
||||
/// Optimization phase that tries to eliminate late field checks and memory
|
||||
/// loads.
|
||||
|
|
|
@ -35,16 +35,19 @@ import 'late_field_optimizer.dart';
|
|||
import 'logging.dart';
|
||||
import 'nodes.dart';
|
||||
import 'metrics.dart';
|
||||
import 'optimize_interfaces.dart' as interfaces
|
||||
show OptimizationPhase, SsaOptimizerTask;
|
||||
import 'types.dart';
|
||||
import 'types_propagation.dart';
|
||||
import 'validate.dart' show NoUnusedPhiValidator;
|
||||
import 'value_range_analyzer.dart';
|
||||
import 'value_set.dart';
|
||||
|
||||
class SsaOptimizerTask extends CompilerTask
|
||||
implements interfaces.SsaOptimizerTask {
|
||||
abstract class OptimizationPhase {
|
||||
String get name;
|
||||
void visitGraph(HGraph graph);
|
||||
bool validPostcondition(HGraph graph);
|
||||
}
|
||||
|
||||
class SsaOptimizerTask extends CompilerTask {
|
||||
final CompilerOptions _options;
|
||||
|
||||
Map<HInstruction, Range> ranges = {};
|
||||
|
@ -64,7 +67,7 @@ class SsaOptimizerTask extends CompilerTask
|
|||
GlobalTypeInferenceResults globalInferenceResults,
|
||||
CodegenRegistry registry,
|
||||
SsaMetrics metrics) {
|
||||
void runPhase(interfaces.OptimizationPhase phase) {
|
||||
void runPhase(OptimizationPhase phase) {
|
||||
measureSubtask(phase.name, () => phase.visitGraph(graph));
|
||||
codegen.tracer.traceGraph(phase.name, graph);
|
||||
assert(graph.isValid(), 'Graph not valid after ${phase.name}');
|
||||
|
@ -85,7 +88,7 @@ class SsaOptimizerTask extends CompilerTask
|
|||
}
|
||||
|
||||
measure(() {
|
||||
List<interfaces.OptimizationPhase> phases = [
|
||||
List<OptimizationPhase> phases = [
|
||||
// Run trivial instruction simplification first to optimize
|
||||
// some patterns useful for type conversion.
|
||||
SsaInstructionSimplifier(globalInferenceResults, _options, closedWorld,
|
||||
|
@ -211,7 +214,7 @@ bool hasUnreachableExit(HBasicBlock block) {
|
|||
/// If both inputs to known operations are available execute the operation at
|
||||
/// compile-time.
|
||||
class SsaInstructionSimplifier extends HBaseVisitor<HInstruction>
|
||||
implements interfaces.OptimizationPhase {
|
||||
implements OptimizationPhase {
|
||||
// We don't produce constant-folded strings longer than this unless they have
|
||||
// a single use. This protects against exponentially large constant folded
|
||||
// strings.
|
||||
|
@ -2459,8 +2462,7 @@ class SsaInstructionSimplifier extends HBaseVisitor<HInstruction>
|
|||
}
|
||||
}
|
||||
|
||||
class SsaDeadCodeEliminator extends HGraphVisitor
|
||||
implements interfaces.OptimizationPhase {
|
||||
class SsaDeadCodeEliminator extends HGraphVisitor implements OptimizationPhase {
|
||||
@override
|
||||
final String name = "SsaDeadCodeEliminator";
|
||||
|
||||
|
@ -2869,7 +2871,7 @@ class SsaLiveBlockAnalyzer extends HBaseVisitor<void> {
|
|||
}
|
||||
}
|
||||
|
||||
class SsaDeadPhiEliminator implements interfaces.OptimizationPhase {
|
||||
class SsaDeadPhiEliminator implements OptimizationPhase {
|
||||
@override
|
||||
final String name = "SsaDeadPhiEliminator";
|
||||
|
||||
|
@ -2934,7 +2936,7 @@ class SsaDeadPhiEliminator implements interfaces.OptimizationPhase {
|
|||
}
|
||||
}
|
||||
|
||||
class SsaRedundantPhiEliminator implements interfaces.OptimizationPhase {
|
||||
class SsaRedundantPhiEliminator implements OptimizationPhase {
|
||||
@override
|
||||
final String name = "SsaRedundantPhiEliminator";
|
||||
|
||||
|
@ -2998,7 +3000,7 @@ class GvnWorkItem {
|
|||
GvnWorkItem(this.block, this.valueSet);
|
||||
}
|
||||
|
||||
class SsaGlobalValueNumberer implements interfaces.OptimizationPhase {
|
||||
class SsaGlobalValueNumberer implements OptimizationPhase {
|
||||
final AbstractValueDomain _abstractValueDomain;
|
||||
@override
|
||||
final String name = "SsaGlobalValueNumberer";
|
||||
|
@ -3226,8 +3228,7 @@ class SsaGlobalValueNumberer implements interfaces.OptimizationPhase {
|
|||
// A basic block looks at its sucessors and finds the intersection of
|
||||
// these computed ValueSet. It moves all instructions of the
|
||||
// intersection into its own list of instructions.
|
||||
class SsaCodeMotion extends HBaseVisitor<void>
|
||||
implements interfaces.OptimizationPhase {
|
||||
class SsaCodeMotion extends HBaseVisitor<void> implements OptimizationPhase {
|
||||
final AbstractValueDomain _abstractValueDomain;
|
||||
|
||||
@override
|
||||
|
@ -3336,7 +3337,7 @@ class SsaCodeMotion extends HBaseVisitor<void>
|
|||
}
|
||||
|
||||
class SsaTypeConversionInserter extends HBaseVisitor<void>
|
||||
implements interfaces.OptimizationPhase {
|
||||
implements OptimizationPhase {
|
||||
@override
|
||||
final String name = "SsaTypeconversionInserter";
|
||||
final JClosedWorld closedWorld;
|
||||
|
@ -3494,7 +3495,7 @@ class SsaTypeConversionInserter extends HBaseVisitor<void>
|
|||
/// [HFieldGet]), when it knows the value stored in that memory location, and
|
||||
/// stores that overwrite with the same value.
|
||||
class SsaLoadElimination extends HBaseVisitor<void>
|
||||
implements interfaces.OptimizationPhase {
|
||||
implements OptimizationPhase {
|
||||
final JClosedWorld _closedWorld;
|
||||
final JFieldAnalysis _fieldAnalysis;
|
||||
@override
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'nodes.dart';
|
||||
import 'value_range_analyzer.dart';
|
||||
|
||||
abstract class OptimizationPhase {
|
||||
String get name;
|
||||
void visitGraph(HGraph graph);
|
||||
bool validPostcondition(HGraph graph);
|
||||
}
|
||||
|
||||
abstract class SsaOptimizerTask {
|
||||
set ranges(Map<HInstruction, Range> value);
|
||||
}
|
|
@ -11,7 +11,7 @@ import '../js_model/js_world.dart' show JClosedWorld;
|
|||
import '../universe/selector.dart' show Selector;
|
||||
import 'logging.dart';
|
||||
import 'nodes.dart';
|
||||
import 'optimize_interfaces.dart' show OptimizationPhase;
|
||||
import 'optimize.dart' show OptimizationPhase;
|
||||
|
||||
/// Type propagation and conditioning check insertion.
|
||||
///
|
||||
|
|
|
@ -6,7 +6,7 @@ import '../constants/constant_system.dart' as constant_system;
|
|||
import '../constants/values.dart';
|
||||
import '../js_model/js_world.dart' show JClosedWorld;
|
||||
import 'nodes.dart';
|
||||
import 'optimize_interfaces.dart' show OptimizationPhase, SsaOptimizerTask;
|
||||
import 'optimize.dart' show OptimizationPhase, SsaOptimizerTask;
|
||||
|
||||
class ValueRangeInfo {
|
||||
late final IntValue intZero;
|
||||
|
|
Loading…
Reference in a new issue