Class SpecializationGroup
- java.lang.Object
-
- com.oracle.truffle.dsl.processor.parser.SpecializationGroup
-
public final class SpecializationGroup extends java.lang.Object
Class creates groups of specializations to optimize the layout of generated executeAndSpecialize and generic execute methods.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SpecializationGroup.TypeGuard
-
Constructor Summary
Constructors Constructor Description SpecializationGroup(java.util.List<SpecializationGroup> children, java.util.List<java.lang.String> assumptionMatches, java.util.List<SpecializationGroup.TypeGuard> typeGuardsMatches, java.util.List<GuardExpression> guardMatches)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SpecializationGroup
create(SpecializationData specialization)
static SpecializationGroup
create(java.util.List<SpecializationData> specializations)
java.util.List<GuardExpression>
findElseConnectableGuards()
SpecializationGroup.TypeGuard
findTypeGuard(int signatureIndex)
java.util.List<SpecializationGroup.TypeGuard>
getAllGuards()
java.util.List<java.lang.String>
getAssumptions()
java.util.List<SpecializationGroup>
getChildren()
java.util.List<GuardExpression>
getGuards()
int
getMaxSpecializationIndex()
SpecializationGroup
getParent()
SpecializationGroup
getPreviousGroup()
SpecializationData
getSpecialization()
java.util.List<SpecializationGroup.TypeGuard>
getTypeGuards()
int
getUncheckedSpecializationIndex()
boolean
isTypeGuardUsedInAnyGuardBelow(ProcessorContext context, SpecializationData source, SpecializationGroup.TypeGuard typeGuard)
java.lang.String
toString()
-
-
-
Constructor Detail
-
SpecializationGroup
public SpecializationGroup(java.util.List<SpecializationGroup> children, java.util.List<java.lang.String> assumptionMatches, java.util.List<SpecializationGroup.TypeGuard> typeGuardsMatches, java.util.List<GuardExpression> guardMatches)
-
-
Method Detail
-
getAllGuards
public java.util.List<SpecializationGroup.TypeGuard> getAllGuards()
-
findTypeGuard
public SpecializationGroup.TypeGuard findTypeGuard(int signatureIndex)
-
findElseConnectableGuards
public java.util.List<GuardExpression> findElseConnectableGuards()
-
getParent
public SpecializationGroup getParent()
-
getAssumptions
public java.util.List<java.lang.String> getAssumptions()
-
getTypeGuards
public java.util.List<SpecializationGroup.TypeGuard> getTypeGuards()
-
getGuards
public java.util.List<GuardExpression> getGuards()
-
getChildren
public java.util.List<SpecializationGroup> getChildren()
-
getSpecialization
public SpecializationData getSpecialization()
-
create
public static SpecializationGroup create(SpecializationData specialization)
-
create
public static SpecializationGroup create(java.util.List<SpecializationData> specializations)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getPreviousGroup
public SpecializationGroup getPreviousGroup()
-
getUncheckedSpecializationIndex
public int getUncheckedSpecializationIndex()
-
getMaxSpecializationIndex
public int getMaxSpecializationIndex()
-
isTypeGuardUsedInAnyGuardBelow
public boolean isTypeGuardUsedInAnyGuardBelow(ProcessorContext context, SpecializationData source, SpecializationGroup.TypeGuard typeGuard)
-
-