Package | Description |
---|---|
org.clafer.ir |
This package provides the IR used as in intermediate language during
compilation.
|
org.clafer.ir.analysis |
This package provides various analysis and optimizations to perform on the
IR.
|
Modifier and Type | Interface and Description |
---|---|
interface |
IrBoolExpr
An immutable expression that evaluates to a boolean.
|
Modifier and Type | Class and Description |
---|---|
class |
IrAbstractInt |
class |
IrAcyclic |
class |
IrAdd
offset + foldl (+) addends
|
class |
IrAllDifferent |
class |
IrAnd |
class |
IrBoolChannel |
class |
IrBoolConstant |
class |
IrBoolVar |
class |
IrCard |
class |
IrCompare
left `op` right + offset
|
class |
IrCount |
class |
IrDiv
dividend / divisor
|
class |
IrElement
Returns array[index].
|
class |
IrFilterString |
class |
IrIfOnlyIf |
class |
IrIfThenElse |
class |
IrImplies |
class |
IrIntChannel |
class |
IrIntConstant |
class |
IrIntVar |
class |
IrLone |
class |
IrMember |
class |
IrMinus |
class |
IrMul
multiplicant * multiplier
|
class |
IrNot |
class |
IrNotImplies |
class |
IrNotMember |
class |
IrNotWithin |
class |
IrOne |
class |
IrOr |
class |
IrSelectN |
class |
IrSetSum |
class |
IrSetTest |
class |
IrSortSets |
class |
IrSortStrings |
class |
IrSortStringsChannel |
class |
IrSubsetEq |
class |
IrTernary |
class |
IrUnreachable |
class |
IrWithin |
class |
IrXor |
Modifier and Type | Method and Description |
---|---|
static IrIntExpr |
Irs.add(Collection<? extends IrIntExpr> addends) |
static IrIntExpr |
Irs.add(int addend1,
IrIntExpr addend2) |
static IrIntExpr |
Irs.add(IrIntExpr... addends) |
static IrIntExpr |
Irs.add(IrIntExpr addend1,
int addend2) |
static IrIntExpr |
IrUtil.asInt(IrSetExpr set) |
static IrIntExpr[] |
IrUtil.asInts(IrSetExpr[] sets) |
static IrIntExpr |
Irs.card(IrSetExpr set) |
static IrIntExpr |
Irs.count(int value,
IrIntExpr[] array) |
static IrIntExpr |
Irs.div(int dividend,
IrIntExpr divisor) |
static IrIntExpr |
Irs.div(IrIntExpr dividend,
int divisor) |
static IrIntExpr |
Irs.div(IrIntExpr dividend,
IrIntExpr divisor) |
static IrIntExpr |
Irs.element(IrIntExpr[] array,
IrIntExpr index) |
IrIntExpr[] |
IrAdd.getAddends() |
IrIntExpr |
IrTernary.getAlternative() |
IrIntExpr[] |
IrCount.getArray() |
IrIntExpr[] |
IrElement.getArray() |
IrIntExpr[] |
IrArrayToSet.getArray() |
IrIntExpr |
IrTernary.getConsequent() |
IrIntExpr |
IrDiv.getDividend() |
IrIntExpr |
IrDiv.getDivisor() |
IrIntExpr[] |
IrUnreachable.getEdges() |
IrIntExpr[] |
IrAcyclic.getEdges() |
IrIntExpr |
IrNotMember.getElement() |
IrIntExpr |
IrMember.getElement() |
IrIntExpr |
IrMinus.getExpr() |
IrIntExpr |
IrElement.getIndex() |
IrIntExpr[] |
IrIntChannel.getInts() |
IrIntExpr[] |
IrSortStringsChannel.getInts() |
IrIntExpr |
IrCompare.getLeft() |
IrIntExpr |
IrMul.getMultiplicand() |
IrIntExpr |
IrMul.getMultiplier() |
IrIntExpr |
IrSelectN.getN() |
IrIntExpr[] |
IrAllDifferent.getOperands() |
IrIntExpr[] |
IrJoinFunction.getRefs() |
IrIntExpr[] |
IrFilterString.getResult() |
IrIntExpr |
IrCompare.getRight() |
IrIntExpr[] |
IrFilterString.getString() |
IrIntExpr[][] |
IrSortStrings.getStrings() |
IrIntExpr[][] |
IrSortStringsChannel.getStrings() |
IrIntExpr |
IrNotWithin.getValue() |
IrIntExpr |
IrSingleton.getValue() |
IrIntExpr |
IrWithin.getValue() |
static IrIntExpr |
Irs.minus(IrIntExpr expr) |
static IrIntExpr |
Irs.mul(int multiplicand,
IrIntExpr multiplier) |
static IrIntExpr |
Irs.mul(IrIntExpr multiplicand,
int multiplier) |
static IrIntExpr |
Irs.mul(IrIntExpr multiplicand,
IrIntExpr multiplier) |
IrIntExpr[][] |
IrRewriter.rewrite(IrIntExpr[][] exprs,
T t) |
IrIntExpr[] |
IrRewriter.rewrite(IrIntExpr[] exprs,
T t) |
IrIntExpr |
IrRewriter.rewrite(IrIntExpr expr,
T t) |
static IrIntExpr |
Irs.sub(Collection<? extends IrIntExpr> subtrahends) |
static IrIntExpr |
Irs.sub(int minuend,
IrIntExpr subtrahend) |
static IrIntExpr |
Irs.sub(IrIntExpr... subtrahends) |
static IrIntExpr |
Irs.sub(IrIntExpr minuend,
int subtrahend) |
static IrIntExpr |
Irs.sum(IrSetExpr set) |
static IrIntExpr |
Irs.ternary(IrBoolExpr antecedent,
IrIntExpr consequent,
IrIntExpr alternative) |
IrIntExpr |
IrRewriter.visit(IrAcyclic ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrAdd ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrCard ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrCount ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrDiv ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrElement ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrMinus ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrMul ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrSetSum ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrTernary ir,
T a) |
IrIntExpr |
IrRewriter.visit(IrUnreachable ir,
T a) |
Modifier and Type | Method and Description |
---|---|
static IrBoolExpr |
Irs.acyclic(IrIntExpr[] edges) |
static IrIntExpr |
Irs.add(int addend1,
IrIntExpr addend2) |
static IrIntExpr |
Irs.add(IrIntExpr... addends) |
static IrIntExpr |
Irs.add(IrIntExpr addend1,
int addend2) |
static IrBoolExpr |
Irs.allDifferent(IrIntExpr[] ints) |
static IrSetExpr |
Irs.arrayToSet(IrIntExpr[] array,
Integer globalCardinality) |
static IrBoolExpr |
Irs.compare(int left,
IrCompare.Op op,
IrIntExpr right) |
static IrBoolExpr |
Irs.compare(IrIntExpr left,
IrCompare.Op op,
int right) |
static IrBoolExpr |
Irs.compare(IrIntExpr left,
IrCompare.Op op,
IrIntExpr right) |
static IrUtil.Ordering |
IrUtil.compare(IrIntExpr a,
IrIntExpr b) |
static IrUtil.Ordering |
IrUtil.compareString(IrIntExpr[] a,
IrIntExpr[] b) |
static IrUtil.Ordering |
IrUtil.compareString(IrIntExpr[] a,
IrIntExpr[] b) |
static IrUtil.Ordering |
IrUtil.compareString(IrIntExpr[] a,
IrIntExpr[] b,
int index) |
static IrUtil.Ordering |
IrUtil.compareString(IrIntExpr[] a,
IrIntExpr[] b,
int index) |
static IrIntExpr |
Irs.count(int value,
IrIntExpr[] array) |
static IrIntExpr |
Irs.div(int dividend,
IrIntExpr divisor) |
static IrIntExpr |
Irs.div(IrIntExpr dividend,
int divisor) |
static IrIntExpr |
Irs.div(IrIntExpr dividend,
IrIntExpr divisor) |
static IrIntExpr |
Irs.element(IrIntExpr[] array,
IrIntExpr index) |
static IrIntExpr |
Irs.element(IrIntExpr[] array,
IrIntExpr index) |
static IrBoolExpr |
Irs.equal(int left,
IrIntExpr right) |
static IrBoolExpr |
Irs.equal(IrIntExpr[] left,
IrIntExpr[] right) |
static IrBoolExpr |
Irs.equal(IrIntExpr[] left,
IrIntExpr[] right) |
static IrBoolExpr |
Irs.equal(IrIntExpr left,
int right) |
static IrBoolExpr |
Irs.equal(IrIntExpr left,
IrIntExpr right) |
static IrBoolExpr |
Irs.filterString(IrSetExpr set,
int offset,
IrIntExpr[] string,
IrIntExpr[] result) |
static IrBoolExpr |
Irs.filterString(IrSetExpr set,
int offset,
IrIntExpr[] string,
IrIntExpr[] result) |
static IrBoolExpr |
Irs.filterString(IrSetExpr set,
IrIntExpr[] string,
IrIntExpr[] result) |
static IrBoolExpr |
Irs.filterString(IrSetExpr set,
IrIntExpr[] string,
IrIntExpr[] result) |
static Integer |
IrUtil.getConstant(IrIntExpr i) |
static int[] |
IrUtil.getConstant(IrIntExpr[] is) |
static IrBoolExpr |
Irs.greaterThan(int left,
IrIntExpr right) |
static IrBoolExpr |
Irs.greaterThan(IrIntExpr left,
int right) |
static IrBoolExpr |
Irs.greaterThan(IrIntExpr left,
IrIntExpr right) |
static IrBoolExpr |
Irs.greaterThanEqual(int left,
IrIntExpr right) |
static IrBoolExpr |
Irs.greaterThanEqual(IrIntExpr left,
int right) |
static IrBoolExpr |
Irs.greaterThanEqual(IrIntExpr left,
IrIntExpr right) |
static IrBoolExpr |
Irs.intChannel(IrIntExpr[] ints,
IrSetExpr[] sets) |
static boolean |
IrUtil.isConstant(IrIntExpr i) |
static IrSetExpr |
Irs.joinFunction(IrSetExpr take,
IrIntExpr[] refs,
Integer globalCardinality) |
static IrBoolExpr |
Irs.lessThan(int left,
IrIntExpr right) |
static IrBoolExpr |
Irs.lessThan(IrIntExpr left,
int right) |
static IrBoolExpr |
Irs.lessThan(IrIntExpr left,
IrIntExpr right) |
static IrBoolExpr |
Irs.lessThanEqual(int left,
IrIntExpr right) |
static IrBoolExpr |
Irs.lessThanEqual(IrIntExpr left,
int right) |
static IrBoolExpr |
Irs.lessThanEqual(IrIntExpr left,
IrIntExpr right) |
static IrBoolExpr |
Irs.member(IrIntExpr element,
IrSetExpr set) |
static IrIntExpr |
Irs.minus(IrIntExpr expr) |
static IrIntExpr |
Irs.mul(int multiplicand,
IrIntExpr multiplier) |
static IrIntExpr |
Irs.mul(IrIntExpr multiplicand,
int multiplier) |
static IrIntExpr |
Irs.mul(IrIntExpr multiplicand,
IrIntExpr multiplier) |
static IrBoolExpr |
Irs.notEqual(int left,
IrIntExpr right) |
static IrBoolExpr |
Irs.notEqual(IrIntExpr left,
int right) |
static IrBoolExpr |
Irs.notEqual(IrIntExpr left,
IrIntExpr right) |
static IrBoolExpr |
Irs.notMember(IrIntExpr element,
IrSetExpr set) |
static IrBoolExpr |
Irs.notWithin(IrIntExpr value,
IrDomain range) |
IrIntExpr[][] |
IrRewriter.rewrite(IrIntExpr[][] exprs,
T t) |
IrIntExpr[] |
IrRewriter.rewrite(IrIntExpr[] exprs,
T t) |
IrIntExpr |
IrRewriter.rewrite(IrIntExpr expr,
T t) |
static IrBoolExpr |
Irs.selectN(IrBoolExpr[] bools,
IrIntExpr n) |
static IrSetExpr |
Irs.singleton(IrIntExpr value) |
static IrBoolExpr |
Irs.sort(IrIntExpr... array) |
static IrBoolExpr |
Irs.sort(IrIntExpr[]... strings) |
static IrBoolExpr |
Irs.sortChannel(IrIntExpr[][] strings,
IrIntExpr[] ints) |
static IrBoolExpr |
Irs.sortChannel(IrIntExpr[][] strings,
IrIntExpr[] ints) |
static IrBoolExpr |
Irs.sortStrict(IrIntExpr... array) |
static IrBoolExpr |
Irs.sortStrict(IrIntExpr[]... strings) |
static IrIntExpr |
Irs.sub(int minuend,
IrIntExpr subtrahend) |
static IrIntExpr |
Irs.sub(IrIntExpr... subtrahends) |
static IrIntExpr |
Irs.sub(IrIntExpr minuend,
int subtrahend) |
static IrIntExpr |
Irs.ternary(IrBoolExpr antecedent,
IrIntExpr consequent,
IrIntExpr alternative) |
static IrBoolExpr |
Irs.unreachable(IrIntExpr[] edges,
int from,
int to) |
static IrBoolExpr |
Irs.within(IrIntExpr value,
IrDomain range) |
Modifier and Type | Method and Description |
---|---|
static IrIntExpr |
Irs.add(Collection<? extends IrIntExpr> addends) |
static IrIntExpr |
Irs.sub(Collection<? extends IrIntExpr> subtrahends) |
Constructor and Description |
---|
IrAcyclic(IrIntExpr[] edges,
IrBoolDomain domain) |
IrCount(int value,
IrIntExpr[] array,
IrDomain domain) |
IrFilterString(IrSetExpr set,
int offset,
IrIntExpr[] string,
IrIntExpr[] result,
IrBoolDomain domain) |
IrFilterString(IrSetExpr set,
int offset,
IrIntExpr[] string,
IrIntExpr[] result,
IrBoolDomain domain) |
IrMinus(IrIntExpr expr,
IrDomain domain) |
IrSortStringsChannel(IrIntExpr[][] strings,
IrIntExpr[] ints,
IrBoolDomain domain) |
IrSortStringsChannel(IrIntExpr[][] strings,
IrIntExpr[] ints,
IrBoolDomain domain) |
IrTernary(IrBoolExpr antecedent,
IrIntExpr consequent,
IrIntExpr alternative,
IrDomain domain) |
IrUnreachable(IrIntExpr[] edges,
int from,
int to,
IrBoolDomain domain) |
Modifier and Type | Method and Description |
---|---|
static Pair<IrIntExpr,IrSetVar> |
AnalysisUtil.getAssignCardinality(IrBoolExpr expr) |
static Pair<IrIntExpr,IrSetVar> |
AnalysisUtil.getAssignCardinality(IrIntExpr left,
IrIntExpr right) |
Modifier and Type | Method and Description |
---|---|
static Pair<IrIntExpr,IrSetVar> |
AnalysisUtil.getAssignCardinality(IrIntExpr left,
IrIntExpr right) |
Copyright © 2013. All Rights Reserved.