blob: aaeae0e3b8cd839f928d6a2375b4dcc51544d16a [file] [log] [blame]
// Copyright (c) 2023, the R8 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.
package com.android.tools.r8.verticalclassmerging;
import com.android.tools.r8.classmerging.ClassMergerMode;
import com.android.tools.r8.utils.InternalOptions;
public class VerticalClassMergerOptions {
private final InternalOptions options;
private boolean enabled = true;
private boolean enableInitial = true;
private boolean enableBridgeAnalysis = true;
public VerticalClassMergerOptions(InternalOptions options) {
this.options = options;
}
public void disable() {
setEnabled(false);
}
public void disableInitial() {
enableInitial = false;
}
public boolean isEnabled(ClassMergerMode mode) {
if (!enabled
|| options.debug
|| options.intermediate
|| !options.isOptimizing()
|| !options.isShrinking()) {
return false;
}
if (mode.isInitial() && !enableInitial) {
return false;
}
return true;
}
public boolean isBridgeAnalysisEnabled() {
return enableBridgeAnalysis;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setEnableBridgeAnalysis(boolean enableBridgeAnalysis) {
this.enableBridgeAnalysis = enableBridgeAnalysis;
}
}