< prev index next >

test/testlibrary/jittester/src/jdk/test/lib/jittester/factories/ArrayExtractionFactory.java

Print this page

        

*** 27,44 **** import jdk.test.lib.jittester.IRNode; import jdk.test.lib.jittester.Literal; import jdk.test.lib.jittester.ProductionFailedException; import jdk.test.lib.jittester.ProductionParams; import jdk.test.lib.jittester.Type; import jdk.test.lib.jittester.arrays.ArrayCreation; import jdk.test.lib.jittester.arrays.ArrayExtraction; import jdk.test.lib.jittester.types.TypeArray; import jdk.test.lib.jittester.types.TypeKlass; - import jdk.test.lib.jittester.types.TypeByte; import jdk.test.lib.jittester.utils.PseudoRandom; ! class ArrayExtractionFactory extends SafeFactory { private final long complexityLimit; private final int operatorLimit; private final Type resultType; private final TypeKlass ownerClass; private final boolean exceptionSafe; --- 27,44 ---- import jdk.test.lib.jittester.IRNode; import jdk.test.lib.jittester.Literal; import jdk.test.lib.jittester.ProductionFailedException; import jdk.test.lib.jittester.ProductionParams; import jdk.test.lib.jittester.Type; + import jdk.test.lib.jittester.TypeList; import jdk.test.lib.jittester.arrays.ArrayCreation; import jdk.test.lib.jittester.arrays.ArrayExtraction; import jdk.test.lib.jittester.types.TypeArray; import jdk.test.lib.jittester.types.TypeKlass; import jdk.test.lib.jittester.utils.PseudoRandom; ! class ArrayExtractionFactory extends SafeFactory<ArrayExtraction> { private final long complexityLimit; private final int operatorLimit; private final Type resultType; private final TypeKlass ownerClass; private final boolean exceptionSafe;
*** 53,63 **** this.exceptionSafe = exceptionSafe; this.noconsts = noconsts; } @Override ! public IRNode sproduce() throws ProductionFailedException { if (resultType instanceof TypeArray) { TypeArray arrayType = (TypeArray) resultType; int delta = PseudoRandom.randomNotZero(ProductionParams.dimensionsLimit.value() - arrayType.dimensions); if (arrayType.dimensions + delta <= ProductionParams.dimensionsLimit.value()) { --- 53,63 ---- this.exceptionSafe = exceptionSafe; this.noconsts = noconsts; } @Override ! public ArrayExtraction sproduce() throws ProductionFailedException { if (resultType instanceof TypeArray) { TypeArray arrayType = (TypeArray) resultType; int delta = PseudoRandom.randomNotZero(ProductionParams.dimensionsLimit.value() - arrayType.dimensions); if (arrayType.dimensions + delta <= ProductionParams.dimensionsLimit.value()) {
*** 77,87 **** int dimOpLimit = (int) ((operatorLimit - arrayOpLimit - delta) * PseudoRandom.random()) / delta; double chanceExpression = ProductionParams.chanceExpressionIndex.value() / 100.; for (int i = 0; i < delta; i++) { if (PseudoRandom.randomBoolean(chanceExpression)) { ! perDimensionExpression.add(builder.setResultType(new TypeByte()) .setComplexityLimit(dimComplLimit) .setOperatorLimit(dimOpLimit) .getExpressionFactory() .produce()); } else { --- 77,87 ---- int dimOpLimit = (int) ((operatorLimit - arrayOpLimit - delta) * PseudoRandom.random()) / delta; double chanceExpression = ProductionParams.chanceExpressionIndex.value() / 100.; for (int i = 0; i < delta; i++) { if (PseudoRandom.randomBoolean(chanceExpression)) { ! perDimensionExpression.add(builder.setResultType(TypeList.BYTE) .setComplexityLimit(dimComplLimit) .setOperatorLimit(dimOpLimit) .getExpressionFactory() .produce()); } else {
*** 92,102 **** } else if (arrayReturningExpression instanceof ArrayExtraction) { ArrayExtraction arrayExtraction = (ArrayExtraction) arrayReturningExpression; if (i < arrayExtraction.getDimsNumber()) dimLimit = arrayExtraction.getDim(i); } ! perDimensionExpression.add(new Literal(PseudoRandom.randomNotNegative(dimLimit), new TypeByte())); } } return new ArrayExtraction(arrayReturningExpression, perDimensionExpression); } } --- 92,102 ---- } else if (arrayReturningExpression instanceof ArrayExtraction) { ArrayExtraction arrayExtraction = (ArrayExtraction) arrayReturningExpression; if (i < arrayExtraction.getDimsNumber()) dimLimit = arrayExtraction.getDim(i); } ! perDimensionExpression.add(new Literal((byte)PseudoRandom.randomNotNegative(dimLimit), TypeList.BYTE)); } } return new ArrayExtraction(arrayReturningExpression, perDimensionExpression); } }
< prev index next >