.. java:import:: fr.inria.tapenade.utils TapIntList .. java:import:: fr.inria.tapenade.utils Tree HeaderBlock =========== .. java:package:: fr.inria.tapenade.representation :noindex: .. java:type:: public final class HeaderBlock extends Block Special Block for loop headers in a Flow Graph. Fields ------ declaresItsIterator ^^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean declaresItsIterator :outertype: HeaderBlock True iff this HeaderBlock contains a C-style for-loop that declares the type of its iterator. dirtyOverwrittenIndex ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean dirtyOverwrittenIndex :outertype: HeaderBlock true if we discovered that the loop index may be overwritten during the loop (dirty !). localizedZones ^^^^^^^^^^^^^^ .. java:field:: public TapIntList localizedZones :outertype: HeaderBlock List of array zones which are accessed by the loop as "localized", i.e. no loop-carried deps between array elements. Example for: Do i; A(i+1)=B(i); B(i-1)=A(i+1); EndDo A is localized, B is not. loopCompleteZones ^^^^^^^^^^^^^^^^^ .. java:field:: public TapIntList loopCompleteZones :outertype: HeaderBlock List of array zones which are in "topUniqueAccessZones" and which are "completely" accessed, i.e. all the iterations will end up to have swept all cells of the array. This is used to get a simple killed-array mechanism. loopIndexUnusedAfterLoop ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean loopIndexUnusedAfterLoop :outertype: HeaderBlock true if we discovered that the loop index is unused after exit from this loop. topUniqueAccessZones ^^^^^^^^^^^^^^^^^^^^ .. java:field:: public TapIntList topUniqueAccessZones :outertype: HeaderBlock List of array zones which are in "uniqueAccessZones" but will not be any more at the above loop level. uniqueAccessTrees ^^^^^^^^^^^^^^^^^ .. java:field:: public TapList uniqueAccessTrees :outertype: HeaderBlock List of the Trees that access to the unique memory cell of the array zones listed in uniqueAccessZones. Same order. uniqueAccessZones ^^^^^^^^^^^^^^^^^ .. java:field:: public TapIntList uniqueAccessZones :outertype: HeaderBlock List of array zones which are accessed by the loop iteration as unique cells: these accesses will be temporarily marked "total". Constructors ------------ HeaderBlock ^^^^^^^^^^^ .. java:constructor:: public HeaderBlock(SymbolTable symbolTable, TapList parallelControls, TapList allBlocks) :outertype: HeaderBlock Methods ------- cite ^^^^ .. java:method:: @Override public void cite() throws java.io.IOException :outertype: HeaderBlock Prints a short reference to this HeaderBlock onto TapEnv.curOutputStream(). cyclingArrows ^^^^^^^^^^^^^ .. java:method:: public TapList cyclingArrows() :outertype: HeaderBlock :return: the list of arrows cycling inside the loop level whose header is this HeaderBlock. enteringArrows ^^^^^^^^^^^^^^ .. java:method:: public TapList enteringArrows() :outertype: HeaderBlock :return: the list of arrows entering the loop level whose header is this HeaderBlock. insertBlockBeforeLoopCycle ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void insertBlockBeforeLoopCycle(Block block) :outertype: HeaderBlock Inserts the given "block" before loop cycling in this HeaderBlock in the Flow Graph. This requires that the given "block" does not end with a test. insertBlockBeforeLoopEntry ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void insertBlockBeforeLoopEntry(Block block) :outertype: HeaderBlock Inserts the given "block" before the loop entry into this HeaderBlock in the Flow Graph. This requires that the given "block" does not end with a test. origCycleLabel ^^^^^^^^^^^^^^ .. java:method:: public String origCycleLabel() :outertype: HeaderBlock :return: the label of the loop. setOrigCycleLabel ^^^^^^^^^^^^^^^^^ .. java:method:: public void setOrigCycleLabel(String label) :outertype: HeaderBlock Sets the label of the loop. toString ^^^^^^^^ .. java:method:: @Override public String toString() :outertype: HeaderBlock