coins.ir.hir
インタフェース IndexedLoopStmt
- すべてのスーパーインタフェース:
- java.lang.Cloneable, HIR, HIR0, IR, IR0, LoopStmt, Stmt
- 既知の実装クラスの一覧:
- IndexedLoopStmtImpl
- public interface IndexedLoopStmt
- extends LoopStmt
IndexedLoop-statement interface.
IndexedLoopStmt is created as a general loop where contents of
ConditionalInitPart_, EndCondition_, LoopEndPart_
are null at first (but they may become not null
by some optimizing transformation).
IndexedLoopStmt represents a Fortran type loop where
value of loop index is incremented or decremented by loop
step value starting from loop start value and stops
to loop before crossing the barrier of loop end value.
The loop index is a simple variable.
It may be integer variable (short int, int, long int, long long int)
or floating variable (float, double).
The values of loop start value, loop end value, and
loop step value are fixed at entry to the loop
and do not change until terminating the loop.
If upward parameter is true, then the loop index is incremented
up to but not exceeding the loop end value.
If upward parameter is false, then the loop index is decremented
down to but not crossing the loop end value.
The loop start value, loop end value, loop step value are
converted to the type of loop index if their type differ
from the type of the loop index.
If the index variable is a floating variable, then repetition
count is computed at the entry to the loop by the formula
MAX( INT( ( -
+ ) / ), 0)
if upward parameter is true, or by the formula
MAX( INT( ( -
+ ) / ), 0)
if upward parameter is false.
The loop step value should be positive.
| インタフェース coins.ir.hir.HIR0 から継承したフィールド |
FLAG_C_PTR, FLAG_CONST_EXP, FLAG_INIT_BLOCK, FLAG_LOOP_WITH_CONDITIONAL_INIT, FLAG_NOCHANGE, FLAG_NONTERMINAL, OP_ADD, OP_ADD_ASSIGN, OP_ADDR, OP_AND, OP_AND_ASSIGN, OP_ARROW, OP_ASM, OP_ASSIGN, OP_BLOCK, OP_CALL, OP_CMP_EQ, OP_CMP_GE, OP_CMP_GT, OP_CMP_LE, OP_CMP_LT, OP_CMP_NE, OP_COMMA, OP_CONST, OP_CONTENTS, OP_CONV, OP_DECAY, OP_DIV, OP_DIV_ASSIGN, OP_ELEM, OP_ENCLOSE, OP_EQ_ZERO, OP_EXP_STMT, OP_EXPLIST, OP_EXPREPEAT, OP_FOR, OP_IF, OP_INDEX, OP_INDEXED_LOOP, OP_JUMP, OP_LABEL, OP_LABEL_DEF, OP_LABELED_STMT, OP_LG_AND, OP_LG_OR, OP_MOD, OP_MOD_ASSIGN, OP_MULT, OP_MULT_ASSIGN, OP_NEG, OP_NOT, OP_NULL, OP_OFFSET, OP_OR, OP_OR_ASSIGN, OP_PARAM, OP_PHI, OP_POST_DECR, OP_POST_INCR, OP_PRE_DECR, OP_PRE_INCR, OP_QUAL, OP_REPEAT, OP_RETURN, OP_SELECT, OP_SEQ, OP_SETDATA, OP_SHIFT_L_ASSIGN, OP_SHIFT_LL, OP_SHIFT_R, OP_SHIFT_R_ASSIGN, OP_SHIFT_RL, OP_SIZEOF, OP_STMT, OP_STMT_UPPER, OP_SUB, OP_SUB_ASSIGN, OP_SUBP, OP_SUBS, OP_SWITCH, OP_SYM, OP_TYPE, OP_UNDECAY, OP_UNTIL, OP_VAR, OP_WHILE, OP_XOR, OP_XOR_ASSIGN |
|
メソッドの概要 |
Exp |
getEndValue()
getEndValue
Get the end value of the loop index. |
Var |
getLoopIndex()
getLoopIndex
Get the loop index variable of this loop. |
Exp |
getStartValue()
getStartValue
Get the start value of the loop index. |
Exp |
getStepValue()
getStepValue
Get the step value of this loop. |
boolean |
isUpward()
isUpward
See whether upward or downword. |
| インタフェース coins.ir.hir.LoopStmt から継承したメソッド |
addToConditionalInitPart, addToLoopBodyPart, addToLoopEndPart, addToLoopInitPart, addToLoopStepPart, getConditionalInitPart, getLoopBackLabel, getLoopBackPoint, getLoopBodyLabel, getLoopBodyPart, getLoopEndCondition, getLoopEndLabel, getLoopEndPart, getLoopInf, getLoopInitPart, getLoopStartCondition, getLoopStepLabel, getLoopStepPart, isSimpleForLoop, isSimpleIndexedLoop, isSimpleRepeatLoop, isSimpleWhileLoop, replaceBodyPart, setLoopEndCondition, setLoopInf, setLoopStartCondition |
| インタフェース coins.ir.hir.Stmt から継承したメソッド |
addNextStmt, ancestorControlStmtOfConditionalExp, attachLabel, attachLabelAsFirstOne, combineStmt, combineWithConditionalExp, copyPosition, cutLabelLinkOfStmt, deleteThisStmt, getBlockStmt, getFileName, getLabel, getLabelDefList, getLabeledStmt, getLineNumber, getPreviousStmt, getUpperStmt, insertPreviousStmt, insertPreviousStmt, isBranchStmt, isMultiBlock, isolateThisStmt, replaceThisStmtWith, setFileName, setLineNumber |
| インタフェース coins.ir.hir.HIR から継承したメソッド |
addrExp, asmStmt, checkLinkage, conditionalExp, contains, copyInfListFrom, cutParentLink, exp, expList, expRepeat, forStmt, getExpId, getFlowAnalSym, getIndentSpace, getInfString, getIrName, getSourceNode, getSourceNode1, getSourceNode2, getSymOrExpId, getWork, hirNodeClone, hirSeq, hirSeq, indexedLoopStmt, indexedLoopStmt, infStmt, infStmt, intConstNode, irList, isEmpty, isStmt, isTree, nullNode, nullStmt, offsetConstNode, phiExp, repeatStmt, replaceSource, replaceSource1, replaceSource2, returnStmt, setChild1, setChild2, setChildren, setChildren, setDataStmt, setIndex, setIndexNumberToAllNodes, setParent, setType, setWork, subpDefinition, subpIterator, subscriptedExp, toString, toStringDetail, toStringShort, toStringWithChildren, undecayExp, undecayExp, undecayExp, whileStmt |
| インタフェース coins.ir.hir.HIR0 から継承したメソッド |
accept, assignStmt, blockStmt, callStmt, constNode, contentsExp, convExp, copyWithOperands, copyWithOperandsChangingLabels, decayExp, elemNode, exp, exp, expStmt, falseNode, finishHir, forStmt, functionExp, getChildNumber, getFlag, getFlagBox, getNextStmt, getStmtContainingThisNode, getType, hirClone, hirIterator, hirList, hirSeq, ifStmt, intConstNode, irList, isSameAs, jumpStmt, labelDef, labeledStmt, labelNode, pointedExp, print, program, qualifiedExp, repeatStmt, replaceThisNode, returnStmt, setFlag, setIndexNumberToAllNodes, sizeofExp, sizeofExp, subpDefinition, subpNode, subscriptedExp, switchStmt, symNode, trueNode, undecayExp, varNode, whileStmt |
getLoopIndex
public Var getLoopIndex()
- getLoopIndex
Get the loop index variable of this loop.
- 戻り値:
- loop index variable.
getStartValue
public Exp getStartValue()
- getStartValue
Get the start value of the loop index.
- 戻り値:
- loop start value.
getEndValue
public Exp getEndValue()
- getEndValue
Get the end value of the loop index.
- 戻り値:
- loop end value.
getStepValue
public Exp getStepValue()
- getStepValue
Get the step value of this loop.
- 戻り値:
- loop step value.
isUpward
public boolean isUpward()
- isUpward
See whether upward or downword.
- 戻り値:
- true if upward, else return false.