src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.java
Print this page
*** 22,32 ****
*/
package org.graalvm.compiler.core.common.spi;
import org.graalvm.compiler.debug.GraalError;
import org.graalvm.compiler.options.Option;
! import org.graalvm.compiler.options.OptionValue;
import jdk.vm.ci.meta.JavaConstant;
import jdk.vm.ci.meta.JavaType;
import jdk.vm.ci.meta.MetaAccessProvider;
import jdk.vm.ci.meta.ResolvedJavaField;
--- 22,32 ----
*/
package org.graalvm.compiler.core.common.spi;
import org.graalvm.compiler.debug.GraalError;
import org.graalvm.compiler.options.Option;
! import org.graalvm.compiler.options.OptionKey;
import jdk.vm.ci.meta.JavaConstant;
import jdk.vm.ci.meta.JavaType;
import jdk.vm.ci.meta.MetaAccessProvider;
import jdk.vm.ci.meta.ResolvedJavaField;
*** 37,47 ****
*/
public abstract class JavaConstantFieldProvider implements ConstantFieldProvider {
static class Options {
@Option(help = "Determines whether to treat final fields with default values as constant.")//
! public static final OptionValue<Boolean> TrustFinalDefaultFields = new OptionValue<>(true);
}
protected JavaConstantFieldProvider(MetaAccessProvider metaAccess) {
try {
this.stringValueField = metaAccess.lookupJavaField(String.class.getDeclaredField("value"));
--- 37,47 ----
*/
public abstract class JavaConstantFieldProvider implements ConstantFieldProvider {
static class Options {
@Option(help = "Determines whether to treat final fields with default values as constant.")//
! public static final OptionKey<Boolean> TrustFinalDefaultFields = new OptionKey<>(true);
}
protected JavaConstantFieldProvider(MetaAccessProvider metaAccess) {
try {
this.stringValueField = metaAccess.lookupJavaField(String.class.getDeclaredField("value"));
*** 91,112 ****
return !value.isDefaultForKind();
}
@SuppressWarnings("unused")
protected boolean isFinalFieldValueConstant(ResolvedJavaField field, JavaConstant value, ConstantFieldTool<?> tool) {
! return !value.isDefaultForKind() || Options.TrustFinalDefaultFields.getValue();
}
@SuppressWarnings("unused")
protected boolean isStableField(ResolvedJavaField field, ConstantFieldTool<?> tool) {
if (isSyntheticEnumSwitchMap(field)) {
return true;
}
if (isWellKnownImplicitStableField(field)) {
return true;
}
! if (field == stringHashField) {
return true;
}
return false;
}
--- 91,112 ----
return !value.isDefaultForKind();
}
@SuppressWarnings("unused")
protected boolean isFinalFieldValueConstant(ResolvedJavaField field, JavaConstant value, ConstantFieldTool<?> tool) {
! return !value.isDefaultForKind() || Options.TrustFinalDefaultFields.getValue(tool.getOptions());
}
@SuppressWarnings("unused")
protected boolean isStableField(ResolvedJavaField field, ConstantFieldTool<?> tool) {
if (isSyntheticEnumSwitchMap(field)) {
return true;
}
if (isWellKnownImplicitStableField(field)) {
return true;
}
! if (field.equals(stringHashField)) {
return true;
}
return false;
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/JavaConstantFieldProvider.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File