Mercurial > hg > graal-compiler
changeset 9211:77c17c97f713
Fixed verifying specialization argument length must be done before generating specialization ids.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 08 Apr 2013 17:00:31 +0200 |
parents | 160f088e40db |
children | 216dce75d5ac |
files | graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java |
diffstat | 1 files changed, 9 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java Mon Apr 08 16:50:51 2013 +0200 +++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java Mon Apr 08 17:00:31 2013 +0200 @@ -365,9 +365,13 @@ needsId.add(specialization); } } - List<String> ids = calculateSpecializationIds(needsId); - for (int i = 0; i < ids.size(); i++) { - needsId.get(i).setId(ids.get(i)); + + // verify specialization parameter length + if (verifySpecializationParameters(node)) { + List<String> ids = calculateSpecializationIds(needsId); + for (int i = 0; i < ids.size(); i++) { + needsId.get(i).setId(ids.get(i)); + } } } @@ -509,9 +513,6 @@ } private void verifyNode(NodeData nodeData) { - // verify specialization parameter length - verifySpecializationParameters(nodeData); - // verify order is not ambiguous verifySpecializationOrder(nodeData); @@ -521,14 +522,6 @@ verifyConstructors(nodeData); -// if (!verifyNamingConvention(specializations, "do")) { -// return null; -// } -// -// if (!verifyNamesUnique(specializations)) { -// return null; -// } - verifyNamingConvention(nodeData.getShortCircuits(), "needs"); verifySpecializationThrows(nodeData); @@ -565,7 +558,7 @@ return nodeData; } - private static void verifySpecializationParameters(NodeData nodeData) { + private static boolean verifySpecializationParameters(NodeData nodeData) { boolean valid = true; int args = -1; for (SpecializationData specializationData : nodeData.getSpecializations()) { @@ -586,6 +579,7 @@ specialization.addError("All specializations must have the same number of arguments."); } } + return valid; } private void verifyMissingAbstractMethods(NodeData nodeData) {