Mercurial > hg > graal-compiler
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());