functional list benchmark and part of rewrite of type info codegen for performance reasons

This commit is contained in:
Alex Tkachman
2011-12-12 10:40:42 +02:00
parent 182009ab61
commit 92d8d2de72
24 changed files with 371 additions and 158 deletions
+5
View File
@@ -23,4 +23,9 @@ public class DefaultJetObject implements JetObject {
public final TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
+11 -1
View File
@@ -47,7 +47,12 @@ public final class IntRange implements Range<Integer>, Iterable<Integer>, JetObj
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
public static IntRange count(int length) {
return new IntRange(0, length);
}
@@ -95,5 +100,10 @@ public final class IntRange implements Range<Integer>, Iterable<Integer>, JetObj
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
}
+2
View File
@@ -4,7 +4,9 @@ import jet.typeinfo.TypeInfo;
/**
* @author abreslav
* @author alex.tkachman
*/
public interface JetObject {
TypeInfo<?> getTypeInfo();
JetObject getOuterObject();
}
+10
View File
@@ -48,6 +48,11 @@ public final class LongRange implements Range<Long>, Iterable<Long>, JetObject {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
public static IntRange count(int length) {
return new IntRange(0, length);
}
@@ -95,5 +100,10 @@ public final class LongRange implements Range<Long>, Iterable<Long>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
}
+5
View File
@@ -31,4 +31,9 @@ public class Tuple0 implements JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
+45
View File
@@ -39,6 +39,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return TypeInfo.getTypeInfo(GenericIterator.class, false, null, new TypeInfoProjection[] {(TypeInfoProjection) elementTypeInfo});
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static <T> Iterator<T> iterator(T[] array, TypeInfo elementTypeInfo) {
@@ -69,6 +74,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static ByteIterator iterator(byte[] array) {
@@ -99,6 +109,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static ShortIterator iterator(short[] array) {
@@ -129,6 +144,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static IntIterator iterator(int[] array) {
@@ -159,6 +179,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static LongIterator iterator(long[] array) {
@@ -189,6 +214,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static FloatIterator iterator(float[] array) {
@@ -219,6 +249,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static DoubleIterator iterator(double[] array) {
@@ -249,6 +284,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static CharIterator iterator(char[] array) {
@@ -279,6 +319,11 @@ public abstract class ArrayIterator<T> implements Iterator<T>, JetObject {
public TypeInfo<?> getTypeInfo() {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
}
public static BooleanIterator iterator(boolean[] array) {
+10
View File
@@ -181,6 +181,11 @@ public abstract class TypeInfo<T> implements JetObject {
throw new UnsupportedOperationException("Abstract TypeInfo");
}
@Override
public JetObject getOuterObject() {
return null;
}
@Override
public String toString() {
return "T:" + signature.klazz.getName() + ":" + varIndex;
@@ -388,6 +393,11 @@ public abstract class TypeInfo<T> implements JetObject {
return typeInfo;
}
@Override
public JetObject getOuterObject() {
return null;
}
public final boolean isSubtypeOf(TypeInfoImpl<?> superType) {
if (nullable && !superType.nullable) {
return false;