< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/SymbolicSnippetEncoder.java

Print this page
rev 56282 : [mq]: graal

*** 343,353 **** SubstitutionGraphDecoder(Providers providers, StructuredGraph result, ReplacementsImpl replacements, ParameterPlugin parameterPlugin, ResolvedJavaMethod method, IntrinsicContext.CompilationContext context, EncodedGraph encodedGraph) { super(providers.getCodeCache().getTarget().arch, result, providers, null, replacements.getGraphBuilderPlugins().getInvocationPlugins(), new InlineInvokePlugin[0], parameterPlugin, ! null, null, null); this.method = method; this.encodedGraph = encodedGraph; intrinsic = new IntrinsicContext(method, null, replacements.getDefaultReplacementBytecodeProvider(), context, false); } --- 343,353 ---- SubstitutionGraphDecoder(Providers providers, StructuredGraph result, ReplacementsImpl replacements, ParameterPlugin parameterPlugin, ResolvedJavaMethod method, IntrinsicContext.CompilationContext context, EncodedGraph encodedGraph) { super(providers.getCodeCache().getTarget().arch, result, providers, null, replacements.getGraphBuilderPlugins().getInvocationPlugins(), new InlineInvokePlugin[0], parameterPlugin, ! null, null, null, null); this.method = method; this.encodedGraph = encodedGraph; intrinsic = new IntrinsicContext(method, null, replacements.getDefaultReplacementBytecodeProvider(), context, false); }
*** 788,798 **** } @Override public JavaConstant readFieldValue(ResolvedJavaField field, JavaConstant receiver) { JavaConstant javaConstant = constantReflection.readFieldValue(field, receiver); ! if (!safeConstants.contains(receiver) && !field.getDeclaringClass().getName().contains("graalvm") && !field.getDeclaringClass().getName().contains("jdk/vm/ci/") && !field.getName().equals("TYPE")) { // Only permit constant reflection on compiler classes. This is necessary primarily // because of the boxing snippets which are compiled as snippets but are really just // regular JDK java sources that are being compiled like a snippet. These shouldn't // permit constant folding during graph preparation as that embeds constants from --- 788,802 ---- } @Override public JavaConstant readFieldValue(ResolvedJavaField field, JavaConstant receiver) { JavaConstant javaConstant = constantReflection.readFieldValue(field, receiver); ! if (!safeConstants.contains(receiver) && ! !field.getDeclaringClass().getName().contains("graalvm") && ! !field.getDeclaringClass().getName().contains("jdk/vm/ci/") && ! !field.getDeclaringClass().getName().contains("jdk/internal/vm/compiler") && ! !field.getName().equals("TYPE")) { // Only permit constant reflection on compiler classes. This is necessary primarily // because of the boxing snippets which are compiled as snippets but are really just // regular JDK java sources that are being compiled like a snippet. These shouldn't // permit constant folding during graph preparation as that embeds constants from
*** 1043,1053 **** @Override public boolean canDeferPlugin(GeneratedInvocationPlugin plugin) { // Fold is always deferred but NodeIntrinsics may have to wait if all their arguments // aren't constant yet. ! return plugin.getSource().equals(Fold.class) || plugin.getSource().equals(Node.NodeIntrinsic.class); } @Override protected boolean canInlinePartialIntrinsicExit() { return false; --- 1047,1057 ---- @Override public boolean canDeferPlugin(GeneratedInvocationPlugin plugin) { // Fold is always deferred but NodeIntrinsics may have to wait if all their arguments // aren't constant yet. ! return plugin.isGeneratedFromFoldOrNodeIntrinsic(); } @Override protected boolean canInlinePartialIntrinsicExit() { return false;
< prev index next >