Skip to content

Commit 4343add

Browse files
author
Christian Wimmer
committed
Remove ReadableJavaField.isValueAvailableBeforeAnalysis
1 parent ddb574c commit 4343add

File tree

5 files changed

+8
-26
lines changed

5 files changed

+8
-26
lines changed

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/ameta/ReadableJavaField.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626

2727
import com.oracle.graal.pointsto.meta.AnalysisField;
2828
import com.oracle.graal.pointsto.util.GraalAccess;
29-
import com.oracle.svm.core.BuildPhaseProvider;
30-
import com.oracle.svm.core.fieldvaluetransformer.FieldValueTransformerWithAvailability.ValueAvailability;
3129
import com.oracle.svm.core.util.VMError;
3230
import com.oracle.svm.hosted.classinitialization.ClassInitializationSupport;
3331
import com.oracle.svm.hosted.meta.HostedField;
@@ -96,19 +94,7 @@ static JavaConstant readFieldValue(MetaAccessProvider metaAccess, ClassInitializ
9694

9795
JavaConstant readValue(MetaAccessProvider metaAccess, ClassInitializationSupport classInitializationSupport, JavaConstant receiver);
9896

99-
/**
100-
* When this method returns true, image heap snapshotting can access the value before analysis.
101-
* If the field is final, then the value can also be constant folded before analysis.
102-
*
103-
* The introduction of this method pre-dates {@link ValueAvailability}, i.e., we could combine
104-
* this method and {@link #isValueAvailable} into a single method that returns the
105-
* {@link ValueAvailability} of the field.
106-
*/
107-
boolean isValueAvailableBeforeAnalysis();
108-
109-
default boolean isValueAvailable() {
110-
return isValueAvailableBeforeAnalysis() || BuildPhaseProvider.isAnalysisFinished();
111-
}
97+
boolean isValueAvailable();
11298

11399
boolean injectFinalForRuntimeCompilation();
114100

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/analysis/CustomTypeFieldHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void handleField(AnalysisField field) {
5858
*/
5959
assert field.isAccessed();
6060
if (field.wrapped instanceof ComputedValueField computedField) {
61-
if (!computedField.isValueAvailableBeforeAnalysis() && field.getStorageKind().isObject()) {
61+
if (!computedField.isValueAvailable() && field.getJavaKind().isObject()) {
6262
injectFieldTypes(field, field.getType());
6363
} else if (bb.trackPrimitiveValues() && field.getStorageKind().isPrimitive() && field instanceof PointsToAnalysisField ptaField) {
6464
ptaField.saturatePrimitiveField();

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/AnnotatedField.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.lang.reflect.Field;
3030

3131
import com.oracle.graal.pointsto.infrastructure.OriginalFieldProvider;
32+
import com.oracle.svm.core.BuildPhaseProvider;
3233
import com.oracle.svm.hosted.ameta.ReadableJavaField;
3334
import com.oracle.svm.hosted.annotation.AnnotationValue;
3435
import com.oracle.svm.hosted.annotation.AnnotationWrapper;
@@ -67,12 +68,12 @@ public JavaConstant readValue(MetaAccessProvider metaAccess, ClassInitialization
6768
}
6869

6970
@Override
70-
public boolean isValueAvailableBeforeAnalysis() {
71+
public boolean isValueAvailable() {
7172
/*
7273
* We assume that fields for which this class is used always have altered behavior for which
73-
* constant folding is not valid.
74+
* constant folding before or during analysis is not valid.
7475
*/
75-
return false;
76+
return BuildPhaseProvider.isAnalysisFinished();
7677
}
7778

7879
@Override

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/ComputedValueField.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,6 @@ public static boolean isOffsetRecomputation(RecomputeFieldValue.Kind kind) {
182182
return offsetComputationKinds.contains(kind);
183183
}
184184

185-
@Override
186-
public boolean isValueAvailableBeforeAnalysis() {
187-
return isValueAvailableBeforeAnalysis;
188-
}
189-
190185
@Override
191186
public boolean isValueAvailable() {
192187
/*
@@ -196,7 +191,7 @@ public boolean isValueAvailable() {
196191
* value available when strengthening graphs after analysis, i.e., when applying analysis
197192
* results back into the IR.
198193
*/
199-
return constantValue != null || isValueAvailableBeforeAnalysis() ||
194+
return constantValue != null || isValueAvailableBeforeAnalysis ||
200195
(isValueAvailableOnlyAfterAnalysis && BuildPhaseProvider.isHostedUniverseBuilt()) ||
201196
(isValueAvailableOnlyAfterCompilation && BuildPhaseProvider.isCompilationFinished());
202197
}

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public SubstitutionField(ResolvedJavaField original, ResolvedJavaField annotated
5656
}
5757

5858
@Override
59-
public boolean isValueAvailableBeforeAnalysis() {
59+
public boolean isValueAvailable() {
6060
return true;
6161
}
6262

0 commit comments

Comments
 (0)