Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/SpecializedNodeFactory.java @ 18761:a665483c3881
Truffle-DSL: new node layout implementation.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 29 Dec 2014 23:38:54 +0100 |
parents | 3912400fc33a |
children | a720bf2e2f43 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/SpecializedNodeFactory.java Mon Dec 29 23:38:50 2014 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/SpecializedNodeFactory.java Mon Dec 29 23:38:54 2014 +0100 @@ -54,7 +54,7 @@ if (nodeGen != null) { baseType = nodeGen.asType(); } - CodeTypeElement clazz = GeneratorUtils.createClass(node, modifiers(PRIVATE, FINAL), nodeSpecializationClassName(specialization), baseType, false); + CodeTypeElement clazz = GeneratorUtils.createClass(node, null, modifiers(PRIVATE, FINAL), nodeSpecializationClassName(specialization), baseType); if (specialization.isSpecialized() || specialization.isUninitialized()) { clazz.add(createGetMetadata0(false)); @@ -62,7 +62,7 @@ } NodeCost cost; - if (specialization.isGeneric()) { + if (specialization.isFallback()) { cost = NodeCost.MEGAMORPHIC; } else if (specialization.isUninitialized()) { cost = NodeCost.UNINITIALIZED; @@ -162,7 +162,7 @@ builder.end(); } - return builder.getRoot(); + return builder.build(); } private CodeTree createSpecializationListLiteral(CodeTreeBuilder parent, Set<SpecializationData> list) { @@ -175,7 +175,7 @@ builder.startNewArray(classArray, null); for (SpecializationData current : list) { SpecializationData s = current; - if (s.isGeneric() || s.isPolymorphic()) { + if (s.isFallback() || s.isPolymorphic()) { s = getSpecialization().getNode().getUninitializedSpecialization(); } builder.startGroup().string(nodeSpecializationClassName(s)).string(".class").end(); @@ -183,7 +183,7 @@ builder.end(); } - return builder.getRoot(); + return builder.build(); } protected CodeAnnotationMirror createNodeInfo(NodeCost cost) { @@ -295,7 +295,7 @@ public CodeTree create(CodeTreeBuilder b, SpecializationData current) { return createGenericInvoke(b, polymorphic, current); } - }, elseBuilder.getRoot(), false, true, true, false)); + }, elseBuilder.build(), false, true, true, false)); } clazz.add(executeMethod); } @@ -309,7 +309,7 @@ } else { builder.tree(createDeoptimize(builder)); } - return builder.getRoot(); + return builder.build(); } private CodeTree createExecuteBody(CodeTreeBuilder parent, ExecutableTypeData execType, List<ExecutableTypeData> primaryExecutes) { @@ -324,7 +324,7 @@ return null; } - return builder.getRoot(); + return builder.build(); } private CodeExecutableElement createExecutableTypeOverride(ExecutableTypeData execType, boolean evaluated) { @@ -444,7 +444,7 @@ CodeTreeBuilder returnBuilder = new CodeTreeBuilder(builder); returnBuilder.tree(createDeoptimize(builder)); returnBuilder.tree(createCallRewriteMonomorphic(builder, executable.hasUnexpectedValue(context), executable.getType(), null, "One of guards " + specialization.getGuards() + " failed")); - returnSpecialized = returnBuilder.getRoot(); + returnSpecialized = returnBuilder.build(); } builder.tree(createExecuteTree(builder, specialization, SpecializationGroup.create(specialization), new CodeBlock<SpecializationData>() { @@ -454,7 +454,7 @@ } }, returnSpecialized, false, false, false, false)); - return builder.getRoot(); + return builder.build(); } private CodeTree createExecute(CodeTreeBuilder parent, ExecutableTypeData executable) { @@ -490,17 +490,17 @@ builder.startReturn(); if (targetType == null || sourceType == null) { - builder.tree(returnBuilder.getRoot()); + builder.tree(returnBuilder.build()); } else if (sourceType.needsCastTo(targetType)) { CodeTree cast; if (executable.hasUnexpectedValue(context)) { - cast = TypeSystemCodeGenerator.expect(targetType, returnBuilder.getRoot()); + cast = TypeSystemCodeGenerator.expect(targetType, returnBuilder.build()); } else { - cast = TypeSystemCodeGenerator.cast(targetType, returnBuilder.getRoot()); + cast = TypeSystemCodeGenerator.cast(targetType, returnBuilder.build()); } builder.tree(cast); } else { - builder.tree(returnBuilder.getRoot()); + builder.tree(returnBuilder.build()); } builder.end(); } @@ -519,7 +519,7 @@ builder.end(); } - return builder.getRoot(); + return builder.build(); } private CodeExecutableElement createCopyConstructorFactoryMethod(CodeTypeElement clazz, TypeMirror baseType) {