changeset 8471:809819548c05

prevent @Alias from being used in method substitutions - can only be used in lowering snippets
author Doug Simon <doug.simon@oracle.com>
date Tue, 26 Mar 2013 11:46:35 +0100
parents f9aee27a6ff0
children f71fec3fadae
files graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsInstaller.java
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsInstaller.java	Tue Mar 26 11:46:24 2013 +0100
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsInstaller.java	Tue Mar 26 11:46:35 2013 +0100
@@ -210,7 +210,9 @@
      * Does final processing of a snippet graph.
      */
     protected void finalizeGraph(ResolvedJavaMethod method, StructuredGraph graph) {
-        new AliasResolutionPhase(runtime).apply(graph);
+        if (substitute == null) {
+            new AliasResolutionPhase(runtime).apply(graph);
+        }
         new NodeIntrinsificationPhase(runtime, pool).apply(graph);
         assert SnippetTemplate.hasConstantParameter(method) || NodeIntrinsificationVerificationPhase.verify(graph);
 
@@ -256,7 +258,9 @@
         Debug.dump(graph, "%s: %s", method.getName(), GraphBuilderPhase.class.getSimpleName());
 
         new WordTypeVerificationPhase(runtime, target.wordKind).apply(graph);
-        new AliasResolutionPhase(runtime).apply(graph);
+        if (substitute == null) {
+            new AliasResolutionPhase(runtime).apply(graph);
+        }
         new NodeIntrinsificationPhase(runtime, pool).apply(graph);
 
         return graph;
@@ -279,7 +283,9 @@
      * Called after all inlining for a given graph is complete.
      */
     protected void afterInlining(StructuredGraph graph) {
-        new AliasResolutionPhase(runtime).apply(graph);
+        if (substitute == null) {
+            new AliasResolutionPhase(runtime).apply(graph);
+        }
         new NodeIntrinsificationPhase(runtime, pool).apply(graph);
 
         new WordTypeRewriterPhase(runtime, target.wordKind).apply(graph);