IterDescriptor¶
-
public final class
IterDescriptor¶ Represents an iteration of a given “length”, i.e. from “init” to “init+length-1”. Holds the decision whether to implement this iteration with a do-loop or an array notation.
Fields¶
allSubArrayAccesses¶
-
public boolean
allSubArrayAccesses¶ True if all uses of this iteration are in subArray mode, i.e. start from an array element and continue with stride one. In this case, we can use the classical Fortran pseudo-pointer trick that calls F(T(i)) for a function declared F(T(:)).
indexHolder¶
-
public NewSymbolHolder
indexHolder¶ If the iteration is implemented with a do-loop, NewSymbolHolder of the loop index.
Constructors¶
IterDescriptor¶
-
public
IterDescriptor(int depth, SymbolTable symbolTable, SymbolTable fwdSymbolTable, Tree initIndex, Tree hintRefTree, String hintArrayNameInText, String hintArrayNameInIdent, Tree hintTreeSize, int hintDim, int hintNDims)¶ Plain creation. Creates the NewSymbolHolder for the loop index, and register it at the enclosing local SymbolTable level.
IterDescriptor¶
-
public
IterDescriptor(int depth, SymbolTable symbolTable, Tree initIndex, Tree hintRefTree, String hintArrayNameInText, Tree hintArrayNameInIdentTree, Tree hintTreeSize, int hintDim, int hintNDims)¶ Plain creation. Creates the NewSymbolHolder for the loop index, and register it at the enclosing local SymbolTable level.
IterDescriptor¶
IterDescriptor¶
-
public
IterDescriptor(NewSymbolHolder dirIndexSymbolHolder)¶ Alternative creation. Creates the IterDescriptor for the “multiDir” dimension.
Methods¶
buildDoHeaderTree¶
-
public Tree
buildDoHeaderTree(SymbolTable usageSymboltable, Unit targetUnit, boolean directOrder)¶
buildIndexTree¶
-
public Tree
buildIndexTree(SymbolTable usageSymboltable, Unit targetUnit)¶ - Returns
an index tree that will range over this iteration space. Will be an index identifier or an arrayTriplet according to the choice or array notation made in “isArray”.
preciseDefaultLengthTree¶
-
public void
preciseDefaultLengthTree(Unit targetUnit, SymbolTable symbolTable)¶