changeset 22906:0bf0cdd17bd3

Let MatchProcessor generate ProviderFiles into META-INF/jvmci.providers
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Thu, 29 Oct 2015 17:48:15 +0100
parents 463553e69619
children 6a508ee4c7ef 6ecf989e8556
files graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeMatchRules.java graal/com.oracle.graal.compiler.match.processor/src/com/oracle/graal/compiler/match/processor/MatchProcessor.java
diffstat 2 files changed, 15 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeMatchRules.java	Thu Oct 29 17:49:30 2015 +0100
+++ b/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeMatchRules.java	Thu Oct 29 17:48:15 2015 +0100
@@ -35,13 +35,6 @@
 import static com.oracle.graal.asm.amd64.AMD64Assembler.OperandSize.QWORD;
 import static com.oracle.graal.asm.amd64.AMD64Assembler.OperandSize.SD;
 import static com.oracle.graal.asm.amd64.AMD64Assembler.OperandSize.SS;
-import jdk.vm.ci.amd64.AMD64Kind;
-import jdk.vm.ci.common.JVMCIError;
-import jdk.vm.ci.meta.JavaConstant;
-import jdk.vm.ci.meta.JavaKind;
-import jdk.vm.ci.meta.LIRKind;
-import jdk.vm.ci.meta.PlatformKind;
-import jdk.vm.ci.meta.Value;
 
 import com.oracle.graal.asm.NumUtil;
 import com.oracle.graal.asm.amd64.AMD64Assembler.AMD64MIOp;
@@ -76,6 +69,14 @@
 import com.oracle.graal.nodes.memory.Access;
 import com.oracle.graal.nodes.memory.WriteNode;
 
+import jdk.vm.ci.amd64.AMD64Kind;
+import jdk.vm.ci.common.JVMCIError;
+import jdk.vm.ci.meta.JavaConstant;
+import jdk.vm.ci.meta.JavaKind;
+import jdk.vm.ci.meta.LIRKind;
+import jdk.vm.ci.meta.PlatformKind;
+import jdk.vm.ci.meta.Value;
+
 public class AMD64NodeMatchRules extends NodeMatchRules {
 
     public AMD64NodeMatchRules(LIRGeneratorTool gen) {
@@ -126,7 +127,7 @@
 
         if (value.isConstant()) {
             JavaConstant constant = value.asJavaConstant();
-            if (kind == AMD64Kind.QWORD && !NumUtil.isInt(constant.asLong())) {
+            if (constant != null && kind == AMD64Kind.QWORD && !NumUtil.isInt(constant.asLong())) {
                 // Only imm32 as long
                 return null;
             }
@@ -134,7 +135,7 @@
                 Debug.log("Skipping constant compares for float kinds");
                 return null;
             }
-            if (constant.getJavaKind() == JavaKind.Object && !constant.isNull()) {
+            if (constant != null && constant.getJavaKind() == JavaKind.Object && !constant.isNull()) {
                 Debug.log("Skipping constant compares for Object kinds");
                 return null;
             }
@@ -151,8 +152,9 @@
                 boolean unorderedIsTrue = compare.unorderedIsTrue();
                 double trueLabelProbability = ifNode.probability(ifNode.trueSuccessor());
                 Value other;
-                if (value.isConstant()) {
-                    other = gen.emitJavaConstant(value.asJavaConstant());
+                JavaConstant constant = value.asJavaConstant();
+                if (constant != null) {
+                    other = gen.emitJavaConstant(constant);
                 } else {
                     other = operand(value);
                 }
@@ -172,7 +174,7 @@
         OperandSize size = kind == AMD64Kind.QWORD ? QWORD : DWORD;
         if (value.isConstant()) {
             JavaConstant constant = value.asJavaConstant();
-            if (kind == AMD64Kind.QWORD && !NumUtil.isInt(constant.asLong())) {
+            if (constant != null && kind == AMD64Kind.QWORD && !NumUtil.isInt(constant.asLong())) {
                 // Only imm32 as long
                 return null;
             }
--- a/graal/com.oracle.graal.compiler.match.processor/src/com/oracle/graal/compiler/match/processor/MatchProcessor.java	Thu Oct 29 17:49:30 2015 +0100
+++ b/graal/com.oracle.graal.compiler.match.processor/src/com/oracle/graal/compiler/match/processor/MatchProcessor.java	Thu Oct 29 17:48:15 2015 +0100
@@ -604,7 +604,7 @@
     }
 
     private void createProviderFile(String pkg, String providerClassName, Element... originatingElements) throws IOException {
-        String filename = "META-INF/providers/" + pkg + "." + providerClassName;
+        String filename = "META-INF/jvmci.providers/" + pkg + "." + providerClassName;
         FileObject file = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", filename, originatingElements);
         PrintWriter writer = new PrintWriter(new OutputStreamWriter(file.openOutputStream(), "UTF-8"));
         writer.println(MatchStatementSet.class.getName());