.. java:import:: fr.inria.tapenade.analysis ADActivityAnalyzer .. java:import:: fr.inria.tapenade.analysis ADTBRAnalyzer .. java:import:: fr.inria.tapenade.analysis ActivityPattern .. java:import:: fr.inria.tapenade.analysis DataFlowAnalyzer .. java:import:: fr.inria.tapenade.analysis DiffLivenessAnalyzer .. java:import:: fr.inria.tapenade.analysis MultithreadAnalyzer .. java:import:: fr.inria.tapenade.frontend TreeProtocol .. java:import:: fr.inria.tapenade.ir2tree DeclStruct .. java:import:: fr.inria.tapenade.ir2tree TreeGen .. java:import:: fr.inria.tapenade.ir2tree VariableDeclStruct .. java:import:: fr.inria.tapenade.toplevel Tapenade .. java:import:: fr.inria.tapenade.utils BoolMatrix .. java:import:: fr.inria.tapenade.utils BoolVector .. java:import:: fr.inria.tapenade.utils ILLang .. java:import:: fr.inria.tapenade.utils Int2ZoneInfo .. java:import:: fr.inria.tapenade.utils TapIntList .. java:import:: fr.inria.tapenade.utils TapPair .. java:import:: fr.inria.tapenade.utils TapTriplet .. java:import:: fr.inria.tapenade.utils ToBool .. java:import:: fr.inria.tapenade.utils ToInt .. java:import:: fr.inria.tapenade.utils ToObject .. java:import:: fr.inria.tapenade.utils Tree .. java:import:: java.io File .. java:import:: java.io IOException Unit ==== .. java:package:: fr.inria.tapenade.representation :noindex: .. java:type:: public final class Unit One node in the call graph. Represents one particular procedure or interface or external or module or package or file... of the current code. Holds links to callers, callees, containing CallGraph, SymbolTable's, For procedures, holds its Flow Graph in the form of an EntryBlock, an ExitBlock, and a graph of Block's in between. Fields ------ activeCalledNames ^^^^^^^^^^^^^^^^^ .. java:field:: public TapList activeCalledNames :outertype: Unit The list of unit names called by this unit and that are active. activityPatterns ^^^^^^^^^^^^^^^^ .. java:field:: public TapList activityPatterns :outertype: Unit Info for AD on this Unit. List of all possible ActivityPattern's for the calls to this Unit. Each ActivityPattern contains information about which variables being active, useful, etc, at all necessary locations inside this Unit (Specific to AD). allArrows ^^^^^^^^^ .. java:field:: public TapList allArrows :outertype: Unit DFST-ordered list of all Flow Graph arrows. allBlocks ^^^^^^^^^ .. java:field:: public TapList allBlocks :outertype: Unit DFST-ordered list of all Blocks, excluding EntryBlock and ExitBlock. analysisIsOutOfDateDown ^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean analysisIsOutOfDateDown :outertype: Unit Mark useful in any top-down static Data Flow analysis to write whether this Unit must be analyzed again at next analysis sweep. analysisIsOutOfDateUp ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean analysisIsOutOfDateUp :outertype: Unit Mark useful in any bottom-up static Data Flow analysis to write whether this Unit must be analyzed again at next analysis sweep. argsPublicRankTrees ^^^^^^^^^^^^^^^^^^^ .. java:field:: public TapList[] argsPublicRankTrees :outertype: Unit For each formal argument, indexed by its rank (0 for result), contains a tree (for each elementary part of this argument, e.g for records) of the corresponding public ranks, i.e. the rank in the external shape. arrayDimMin ^^^^^^^^^^^ .. java:field:: public int arrayDimMin :outertype: Unit Default first index of arrays. Fortran = 1, C = 0. callees ^^^^^^^ .. java:field:: public TapList callees :outertype: Unit List of all CallArrow's leaving from this Unit. callers ^^^^^^^ .. java:field:: public TapList callers :outertype: Unit List of all CallArrow's arriving on this Unit. childrenClasses ^^^^^^^^^^^^^^^ .. java:field:: public TapList childrenClasses :outertype: Unit List of all classes that inherit from this class (unit). copyPublicSTDeclarationBlock ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public Block copyPublicSTDeclarationBlock :outertype: Unit diffInfo ^^^^^^^^ .. java:field:: public Object diffInfo :outertype: Unit Special (TEMPORARY) field to hold info about differentiation For instance, this holds the predefined differentiation for mathematical intrinsics. dirNumberMaxSymbolHolder ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public NewSymbolHolder dirNumberMaxSymbolHolder :outertype: Unit The NewSymbolHolder of new variable "NBDirsMax". directives ^^^^^^^^^^ .. java:field:: public TapList directives :outertype: Unit List of AD directives attached to this Unit. enclosingUnitOfInterface ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public Unit enclosingUnitOfInterface :outertype: Unit When this is an interface Unit, its enclosing Unit. entryBlock ^^^^^^^^^^ .. java:field:: public EntryBlock entryBlock :outertype: Unit The entry Block. exitBlock ^^^^^^^^^ .. java:field:: public ExitBlock exitBlock :outertype: Unit The exit Block. externalShape ^^^^^^^^^^^^^ .. java:field:: public ZoneInfo[] externalShape :outertype: Unit Array of ZoneInfo holding information about the elementary parameters of this Unit. formats ^^^^^^^ .. java:field:: public TapList formats :outertype: Unit The list of format Trees of this Unit. genericArrow ^^^^^^^^^^^^ .. java:field:: protected CallArrow genericArrow :outertype: Unit For an intrinsic, a special unique generic arrow that stands for any call to this intrinsic. Returned by getCallArrow on an intrinsic. globalZonesNumber4 ^^^^^^^^^^^^^^^^^^ .. java:field:: public int[] globalZonesNumber4 :outertype: Unit The number of global zones in the externalShape of this Unit. It is also the rank (plus 1) of the last zone whose data-flow info can be plainly copied between this Unit and any of its caller Units. isCGCycle ^^^^^^^^^ .. java:field:: public boolean isCGCycle :outertype: Unit Utility temporary info built during static analyses. True iff this Unit is head (if the analysis is bottom-up) or tail (if the analysis is top-down) of a cycle in this Call Graph. This cycle detection is based on the rank's of the Units. isMadeForInline ^^^^^^^^^^^^^^^ .. java:field:: public boolean isMadeForInline :outertype: Unit True if calls to this Unit are supposed to be inlined. isTotallyDeclared ^^^^^^^^^^^^^^^^^ .. java:field:: protected boolean isTotallyDeclared :outertype: Unit True for functions whose arguments and result types are fully specified. If not, pieces of the type must be inferred. localMaps ^^^^^^^^^ .. java:field:: public MemoryMaps localMaps :outertype: Unit The memory maps built for non-global (non-COMMON) EQUIVALENCEd variables (Fortran-specific) lowerLevelUnits ^^^^^^^^^^^^^^^ .. java:field:: public TapList lowerLevelUnits :outertype: Unit List of the Units of all the subroutines defined locally, inside this Unit. maybeCheckpointed ^^^^^^^^^^^^^^^^^ .. java:field:: public boolean maybeCheckpointed :outertype: Unit Flags for no Checkpoint strategy. maybeNoCheckpointed ^^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean maybeNoCheckpointed :outertype: Unit messages ^^^^^^^^ .. java:field:: public TapList messages :outertype: Unit error and warning messages. modifiers ^^^^^^^^^ .. java:field:: public Tree modifiers :outertype: Unit Modifiers for this function, method or subroutine. multiDirDimensionMax ^^^^^^^^^^^^^^^^^^^^ .. java:field:: public ArrayDim multiDirDimensionMax :outertype: Unit An ArrayDim: [arrayDimMin:NBDirsMax]. mustHandleTBR ^^^^^^^^^^^^^ .. java:field:: public BoolVector mustHandleTBR :outertype: Unit Summary of zones and arguments that the diff of this Unit must handle. nbArrows ^^^^^^^^ .. java:field:: public int nbArrows :outertype: Unit Total number of FGArrows, including those from/to EntryBlock and ExitBlock. nbBlocks ^^^^^^^^ .. java:field:: public int nbBlocks :outertype: Unit Total number of Blocks, not including EntryBlock nor ExitBlock. newDiffCIncludes ^^^^^^^^^^^^^^^^ .. java:field:: public TapList newDiffCIncludes :outertype: Unit Used to memorize needed additional include's in differentiated C, e.g. adBinomial.h, adFixedPoint.h ... nonFlowInstructions ^^^^^^^^^^^^^^^^^^^ .. java:field:: public TapList nonFlowInstructions :outertype: Unit The list of instructions that do not depend on the flow (e.g. sub-Units definitions), and that could not be placed into normal Flow Graph Block's because they are unreachable by the control flow (e.g. because they are after an op_goto, op_exit, op_return...). orig2copiedBlocks ^^^^^^^^^^^^^^^^^ .. java:field:: public BlockStorage orig2copiedBlocks :outertype: Unit When this Unit is copied from origUnit, correspondence from the Block's of origUnit to the Block's of this Unit. Wiped out when used. origPublicSTDeclarationBlock ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public Block origPublicSTDeclarationBlock :outertype: Unit origUnit ^^^^^^^^ .. java:field:: public Unit origUnit :outertype: Unit (Hack) The "original" Unit. (e.g. in AD, the unit from which this one is copied or differentiated). otherImportedModules ^^^^^^^^^^^^^^^^^^^^ .. java:field:: public TapList otherImportedModules :outertype: Unit List of all implicitly imported modules. parametersOrModuleNameTree ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public Tree parametersOrModuleNameTree :outertype: Unit If entryBlock is null, contains parameters or module name Tree. plainDependencies ^^^^^^^^^^^^^^^^^ .. java:field:: public BoolMatrix plainDependencies :outertype: Unit Plain dependencies data-flow info: dependency of each output wrt each input. pointerEffect ^^^^^^^^^^^^^ .. java:field:: public BoolMatrix pointerEffect :outertype: Unit Pointer data-flow info: pointer destinations upon unit exit, wrt destinations upon unit entry. position ^^^^^^^^ .. java:field:: public int position :outertype: Unit Indication of the position of this Unit in its file. If -1, then getPosition will recompute it from the positions of the instructions inside. postComments ^^^^^^^^^^^^ .. java:field:: public Tree postComments :outertype: Unit The tree of comments post-attached to this Unit. postCommentsBlock ^^^^^^^^^^^^^^^^^ .. java:field:: public Tree postCommentsBlock :outertype: Unit The tree of block-comments post-attached to this Unit. preComments ^^^^^^^^^^^ .. java:field:: public Tree preComments :outertype: Unit The tree of comments pre-attached to this Unit. preCommentsBlock ^^^^^^^^^^^^^^^^ .. java:field:: public Tree preCommentsBlock :outertype: Unit The tree of block-comments pre-attached to this Unit. privacy ^^^^^^^ .. java:field:: public String privacy :outertype: Unit For C++ and oriented-object in general, indicate the privacy of this unit: public, private or protected. publicZonesNumber4 ^^^^^^^^^^^^^^^^^^ .. java:field:: public int[] publicZonesNumber4 :outertype: Unit The number of public zones of this Unit i.e. the globals plus the arguments relevantZones ^^^^^^^^^^^^^ .. java:field:: public BoolVector relevantZones :outertype: Unit BoolVector, one bit per zone (i.e. per index in the externalShape), with value 1 if this zone can be accessed by this Unit or by some Unit recursively called. This info is needed to compensate for the introduction of irrelevant (HIDDEN) zones due to the removal of the old "side-effect" mechanism. This info may be used to compress the data-flow info on this Unit, since it is guaranteed (?) that the info on non-relevant zones is necessarily neutral. sortOfDiffUnit ^^^^^^^^^^^^^^ .. java:field:: public int sortOfDiffUnit :outertype: Unit The sort of differentiated unit this is sortRk ^^^^^^ .. java:field:: protected int sortRk :outertype: Unit A temporary rank used only during sorting. tagMessagePassingSymbolHolder ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public NewSymbolHolder tagMessagePassingSymbolHolder :outertype: Unit testZoneInfos ^^^^^^^^^^^^^ .. java:field:: public int[] testZoneInfos :outertype: Unit For each control zone rank (from 0 up), the rank of the corresponding ZoneInfo. translator ^^^^^^^^^^ .. java:field:: public PublicInfo[] translator :outertype: Unit Information used to translate zone-based data between this Unit's internal representation and external, published representation. unitADDependencies ^^^^^^^^^^^^^^^^^^ .. java:field:: public BoolMatrix unitADDependencies :outertype: Unit Differentiable dependencies for this Unit. Used so far, mostly to store the AD deps matrix of intrinsics found from the user-given library files. unitInOutN ^^^^^^^^^^ .. java:field:: public BoolVector unitInOutN :outertype: Unit In-Out data-flow info: vector of zones possibly/partly not accessed. unitInOutR ^^^^^^^^^^ .. java:field:: public BoolVector unitInOutR :outertype: Unit In-Out data-flow info: vector of zones possibly/partly read and not written. unitInOutRW ^^^^^^^^^^^ .. java:field:: public BoolVector unitInOutRW :outertype: Unit In-Out data-flow info: vector of zones possibly/partly read then written. unitInOutW ^^^^^^^^^^ .. java:field:: public BoolVector unitInOutW :outertype: Unit In-Out data-flow info: vector of zones possibly/partly not read and only written. unitTBR ^^^^^^^ .. java:field:: public BoolVector unitTBR :outertype: Unit TBR info: vector of zones possibly becoming TBR when going through this Unit, in other words zones used non-linearly and therefore needed in derivatives. upperLevelUnit ^^^^^^^^^^^^^^ .. java:field:: public Unit upperLevelUnit :outertype: Unit If this Unit was defined as a local unit of an enclosing Unit, contains the enclosing Unit. Otherwise contains null. usedAsElementalResult ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean usedAsElementalResult :outertype: Unit True for procedures that F90 can use as elemental, i.e. on an array of arguments of the expected type. userHelp ^^^^^^^^ .. java:field:: public TapList> userHelp :outertype: Unit List of things (e.g. variables) requested from the user, for the current Unit. usesISO_C_BINDING ^^^^^^^^^^^^^^^^^ .. java:field:: public boolean usesISO_C_BINDING :outertype: Unit Fortran module must use ISO_C_BINDING module. zonesUsedInDeclarations ^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public BoolVector zonesUsedInDeclarations :outertype: Unit The vector of all the zones of all the variables that are used in the declarations part, e.g. as dimension declarator. Constructors ------------ Unit ^^^^ .. java:constructor:: public Unit(CallGraph callGraph, int rank, Unit upperLevelUnit, int language) :outertype: Unit Creates a new Unit and links it to its CallGraph. Methods ------- absorb ^^^^^^ .. java:method:: protected void absorb(Unit absorbedUnit) :outertype: Unit Combines the callers and callees of "absorbedUnit" into this Unit. absorbAndDeleteUnit ^^^^^^^^^^^^^^^^^^^ .. java:method:: public void absorbAndDeleteUnit(Unit absorbedUnit) :outertype: Unit Try to absorb "absorbedUnit" into this Unit, then delete "absorbedUnit". addBlock ^^^^^^^^ .. java:method:: public void addBlock(Block block) :outertype: Unit Add a block to allBlock. This will break Flow Graph numbering, therefore it will have to be re-made later. addChildrenClass ^^^^^^^^^^^^^^^^ .. java:method:: public void addChildrenClass(Unit unit) :outertype: Unit addDeadTree ^^^^^^^^^^^ .. java:method:: public void addDeadTree(Tree tree) :outertype: Unit Adds "tree" to the list of all Tree's proved dead because unreachable. addDerivedSymbolTable ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void addDerivedSymbolTable(SymbolTable symbolTable) :outertype: Unit Adds a SymbolTable into the list of all SymbolTables belonging to this Unit. This routine must be called for the upmost SymbolTable's first, so that these SymbolTables are ordered bottom-up. addFormatTree ^^^^^^^^^^^^^ .. java:method:: public void addFormatTree(Tree formatTree) :outertype: Unit Adds formatTree to the list of format Trees of this Unit. addInterfaceDecl ^^^^^^^^^^^^^^^^ .. java:method:: protected TapList addInterfaceDecl(TreeProtocol inputStream, CallGraph callGraph, SymbolTable symbolTable) throws IOException :outertype: Unit addLostComment ^^^^^^^^^^^^^^ .. java:method:: public void addLostComment(Tree tree) :outertype: Unit Adds "tree" to the list of all comments lost while building this Unit. addLowerLevelUnit ^^^^^^^^^^^^^^^^^ .. java:method:: public void addLowerLevelUnit(Unit unit) :outertype: Unit Declares "unit" as defined locally, inside this Unit. addNonFlowInstruction ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void addNonFlowInstruction(Instruction instr) :outertype: Unit addParentClass ^^^^^^^^^^^^^^ .. java:method:: public void addParentClass(Unit unit, boolean isVirtualInheritance, boolean isPublicInheritance) :outertype: Unit allBlocks ^^^^^^^^^ .. java:method:: public TapList allBlocks() :outertype: Unit :return: the DFST-ordered list of all Blocks. This list does not contain the EntryBlock nor the ExitBlock. allCallees ^^^^^^^^^^ .. java:method:: public TapList allCallees() :outertype: Unit :return: the TapList of all computation Unit's recursively called by "this" Unit. The returned list is ordered, so that each caller appears before its callees. In case of recursivity loops, no Unit appears twice. The first Unit in the list is "this" unit. The result doesn't contain non-computation Units such as modules, varFunctions, interfaces... allCalleesMulti ^^^^^^^^^^^^^^^ .. java:method:: public static TapList allCalleesMulti(TapList initialUnits) :outertype: Unit Similar to allCallees(), but starts from several initialUnits. allCalleesMultiAvoiding ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static TapList allCalleesMultiAvoiding(TapList initialUnits, TapList avoidedUnits) :outertype: Unit Similar to allCalleesMulti, but avoids going through "avoidedUnits". allCallers ^^^^^^^^^^ .. java:method:: public TapList allCallers() :outertype: Unit :return: the list of Units for which there exists a path in the CallGraph from that Unit to 'this' Unit. @return an ordered TapList of Unit's, so that each caller appears after all its callees. The given Unit is put in first position in the result. allCallersMulti ^^^^^^^^^^^^^^^ .. java:method:: public static TapList allCallersMulti(TapList initialUnits) :outertype: Unit Similar to allCallers(), but starts from several initialUnits. allocateDeclaredZones ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void allocateDeclaredZones(int[] firstZones, boolean staticMemory, TapList toAllocatedZones) :outertype: Unit Allocates the Zone numbers for the declared variables in this Unit, then (except if on a package) recursively for the sub-units declared locally. :param firstZones: the next available zone numbers, for (anyType, int, real, ptr) :param staticMemory: when true, allocate only the "static" zones of this Unit, i.e. those of the MODULE variables, the CLASS static variables, the various sort of remanent variables... :param toAllocatedZones: collects the ordered list of ZoneInfo created (in decreasing rank order). This argument is used only when staticMemory==true. Otherwise pass null. appendPostComments ^^^^^^^^^^^^^^^^^^ .. java:method:: public void appendPostComments(TapList newComments) :outertype: Unit blocksFromBitVector ^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapList blocksFromBitVector(BoolVector bv) :outertype: Unit :return: the ordered list of the Blocks that are designated by the given BoolVector "bv". There is no verification that bv corresponds to a bitvector for blocks in this Unit. bodySymbolTable ^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable bodySymbolTable() :outertype: Unit buildControlDepsOf ^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector buildControlDepsOf(Instruction instr, Block block) :outertype: Unit Builds a new BoolVector containing true for all control zones that control the given Instruction (which is in the given Block), or null if empty buildReturnTypeTree ^^^^^^^^^^^^^^^^^^^ .. java:method:: public Tree buildReturnTypeTree(Block privateDeclBlock, TapList externalTypes, ToObject toNewDeclTree, TapList publicDeclarationsInstructions) :outertype: Unit Builds the tree of the return type of this Unit. callGraph ^^^^^^^^^ .. java:method:: public CallGraph callGraph() :outertype: Unit :return: the CallGraph to which this Unit belongs. callees ^^^^^^^ .. java:method:: public TapList callees() :outertype: Unit :return: the list of all CallArrow's leaving from this Unit. callerUnitNamesThatCall ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapList callerUnitNamesThatCall() :outertype: Unit Same as callersThatCall. :return: the list of name Strings of the callers. callers ^^^^^^^ .. java:method:: public TapList callers() :outertype: Unit :return: the list of all CallArrow's arriving on this Unit. callersThatCall ^^^^^^^^^^^^^^^ .. java:method:: public TapList callersThatCall() :outertype: Unit :return: the list of all CallArrow's corresponding to a op_call of this Unit. checkMessagePassingCalls ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void checkMessagePassingCalls(CallGraph callGraph) :outertype: Unit cite ^^^^ .. java:method:: public void cite() throws IOException :outertype: Unit Prints a short reference to this Unit onto TapEnv.curOutputStream(). classTypeSpec ^^^^^^^^^^^^^ .. java:method:: public ClassTypeSpec classTypeSpec() :outertype: Unit coherence ^^^^^^^^^ .. java:method:: protected void coherence() :outertype: Unit Computes and sets a number of utility information, most of them derived from the choice about loops done during the "findOptimalLoops" step. Precisely, sets the following: - for the FlowGraph: allBlocks, nbBlocks - for each Block: rank, enclosingLoop, flowGraph, (TODO: successors, predecessors) boolean fields "isFGCycleHead" and "isFGCycleTail". - for each LoopBlock: enclosingLoops, depth, entryBlocks, exitBlocks, entryArrows, exitArrows, and cycleArrows - for each Instruction: block - for each FGArrow: rank, iter, originInLevel, destinationInLevel This function requires that the following info is available: -- topBlocks, list of top-level blocks -- entryBlock and exitBlock -- for each LoopBlock, the list of its immediately enclosed Blocks (field "inside"). collectContainedUnits ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapList collectContainedUnits(TapList collector) :outertype: Unit :return: an unordered list of all Units recursively contained in this Unit. collectImportForLater ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void collectImportForLater(Instruction useInstr, SymbolTable symbolTable) :outertype: Unit computeAllDominatorlikeInfo ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void computeAllDominatorlikeInfo() :outertype: Unit Compute usual informations on flowgraphs. Called in CallGraph.terminateTypesAndZones(). computeArrowZoneInterfaces ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void computeArrowZoneInterfaces() :outertype: Unit computeDominatorArrows ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void computeDominatorArrows() :outertype: Unit computeTestZones ^^^^^^^^^^^^^^^^ .. java:method:: public void computeTestZones() :outertype: Unit Fill this.testZonesNb, Block.testZone computeZoneInterfaces ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void computeZoneInterfaces() :outertype: Unit computeZonesUsedInDeclarations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void computeZonesUsedInDeclarations() :outertype: Unit Initializes "zonesUsedInDeclarations", the vector of all the zones of all the variables that are used in the declarations part, e.g. as dimension declarator. copyUnitBody ^^^^^^^^^^^^ .. java:method:: protected static TapList copyUnitBody(Unit origUnit, Unit copyUnit, Instruction context) :outertype: Unit Copies the contents of origUnit into copyUnit. :param context: the context in which the copyUnit will appear. E.g. when copyUnit is used to inline a call. copyUnitExceptSymbolTables ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public Unit copyUnitExceptSymbolTables(CallGraph callGraph, Unit upperLevelUnit, Unit otherEnclosingUnitOfInterface) :outertype: Unit Creates a PARTIAL copy of "this" Unit. Used by differentiation to create copied, non-differentiated Units. Copies the Flow Graph and Flow-Graph-related info.. For every allocation of an active variable, insert allocation of the differentiated variable. Does NOT create the copied SymbolTable's. deadTrees ^^^^^^^^^ .. java:method:: public TapList deadTrees() :outertype: Unit :return: the list of all Tree's proved dead because unreachable. declareAllSymbolDecls ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void declareAllSymbolDecls() :outertype: Unit dump ^^^^ .. java:method:: public void dump(int indent) throws IOException :outertype: Unit Prints in detail the contents of this Unit, onto TapEnv.curOutputStream(). :param indent: the amount of indentation to be used for this printing. dumpDataFlow ^^^^^^^^^^^^ .. java:method:: public void dumpDataFlow(boolean dumpPointers, boolean dumpInOut, boolean dumpDeps, boolean dumpInside) throws IOException :outertype: Unit Prints a human-readable description of all the data-flow info found on this Unit. dumpExternalZones ^^^^^^^^^^^^^^^^^ .. java:method:: public void dumpExternalZones() throws IOException :outertype: Unit encloses ^^^^^^^^ .. java:method:: public boolean encloses(Unit enclosed) :outertype: Unit :return: true if this Unit contains the "enclosed" Unit. A Unit does not enclose itself. enclosingUnits ^^^^^^^^^^^^^^ .. java:method:: public TapList enclosingUnits() :outertype: Unit :return: the list of all Units enclosing this one, from the inside out. entryBlock ^^^^^^^^^^ .. java:method:: public EntryBlock entryBlock() :outertype: Unit :return: the entry block. exitBlock ^^^^^^^^^ .. java:method:: public ExitBlock exitBlock() :outertype: Unit :return: the exit Block. exportFunctionTypeSpec ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void exportFunctionTypeSpec() :outertype: Unit Refine the FunctionTypeSpec of this Unit, using the types found in the function's definition, but removing from these types the "Hint" information, and any other bit of info that refers to the inside of this Unit and should not be used outside. exportOneArgumentType ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void exportOneArgumentType(String argName, WrapperTypeSpec typeSpec) :outertype: Unit Same as exportFunctionTypeSpec(), but only for the argument named "argName", with the given "typeSpec". externalSymbolTable ^^^^^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable externalSymbolTable() :outertype: Unit :return: the enclosing SymbolTable of this Unit. fixImplicits ^^^^^^^^^^^^ .. java:method:: public void fixImplicits() :outertype: Unit For each variable declared, but incompletely (e.g. there was a dimension T(100), but nothing else on T), uses the implicit type mechanism to terminate the typing of the variable in the SymbolTable. focusToKind ^^^^^^^^^^^ .. java:method:: public BoolVector focusToKind(BoolVector vectorAllKind, int kind) :outertype: Unit Returns a translation of the given "vectorAllKind", which is based on the ALLKIND zones numbering, into its subset dealing only with "kind" zones, and using the "kind" zones numbering. focusToKind ^^^^^^^^^^^ .. java:method:: public BoolMatrix focusToKind(BoolMatrix matrixAllKind, int kind) :outertype: Unit Same as focusToKind(BoolVector), but on a BoolMatrix focusToKind ^^^^^^^^^^^ .. java:method:: public TapIntList focusToKind(TapIntList allKindZones, int kind) :outertype: Unit Same as focusToKind(BoolVector), but on a TapIntList of allKind zones. :return: those in the given ALLKIND zones that are actually of the required "kind", as a new list of "kind" zones. formalArgumentsNb ^^^^^^^^^^^^^^^^^ .. java:method:: public int formalArgumentsNb() :outertype: Unit :return: the number of formal arguments of the function associated to this Unit, as declared in the SymbolTable. formats ^^^^^^^ .. java:method:: public TapList formats() :outertype: Unit :return: the list of format Trees of this Unit. fortranStuff ^^^^^^^^^^^^ .. java:method:: public FortranStuff fortranStuff() :outertype: Unit Special for treatment of Fortran specific info. fragmentInOutCkp ^^^^^^^^^^^^^^^^ .. java:method:: public TapPair fragmentInOutCkp(Block ckpBlock) :outertype: Unit Returns the "possibly read" and "possibly written" info about one given checkpointed code fragment, here represented by its "main" Block "ckpBlock" fromInclude ^^^^^^^^^^^ .. java:method:: public Instruction fromInclude() :outertype: Unit functionDeclHostSymbolTable ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable functionDeclHostSymbolTable() :outertype: Unit Returns the SymbolTable that contains the main FunctionDecl for this (function) Unit. functionTypeSpec ^^^^^^^^^^^^^^^^ .. java:method:: public FunctionTypeSpec functionTypeSpec() :outertype: Unit :return: the function type of this Unit. generateHeaderParamsList ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapList generateHeaderParamsList(SymbolTable locationSymbolTable) :outertype: Unit Generates the ordered list of Tree's for the parameters of this Unit. :param locationSymbolTable: the SymbolTable of the future location of the generated parameter list. getArrow ^^^^^^^^ .. java:method:: public FGArrow getArrow(int rank) :outertype: Unit :return: the Flow-Graph's arrow of given "rank". getElementalIntrinsicTypeConverter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected Tree getElementalIntrinsicTypeConverter(Tree[] args) :outertype: Unit :return: the argument that deals with type size in the given array of arguments of a called intrinsic. getForwardDeclaration ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public Instruction getForwardDeclaration() :outertype: Unit :return: For C, for an EXTERNAL Unit, the C-style forward declaration instruction. getFrontierOfParallelRegion ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapTriplet, TapList, TapList> getFrontierOfParallelRegion(Block regionBlock) :outertype: Unit :param regionBlock: Block that ends with the parallel region pragma getImportedDecl ^^^^^^^^^^^^^^^ .. java:method:: public SymbolDecl getImportedDecl(String name, int kind) :outertype: Unit :return: null if no declaration is found. getNameFromBindC ^^^^^^^^^^^^^^^^ .. java:method:: public String getNameFromBindC() :outertype: Unit getOptionalParameterDeclsNumber ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected int getOptionalParameterDeclsNumber() :outertype: Unit getOrigUnitOfInterface ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public Unit getOrigUnitOfInterface(CallGraph callGraph) :outertype: Unit :return: the original standard Unit of which this Unit is an interface. getPosition ^^^^^^^^^^^ .. java:method:: public int getPosition() :outertype: Unit :return: the position of this Unit in its textual file. getSetNewParallelControls ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static TapList getSetNewParallelControls(TapList oldParallelControls, BlockStorage blockCorrespondence, BlockStorage> parallelControlsCorrepondence) :outertype: Unit Transposes a given list of parallel controls which applies to an existing Unit into a new "mirror" list of parallel controls that applies to a new unit deduced from the existing one, following the correspondence "blockCorrespondence" from existing Unit's Blocks to new Unit's Blocks, and the already built new lists of parallel controls "parallelControlsCorrepondence". getUnitOfInterface ^^^^^^^^^^^^^^^^^^ .. java:method:: public Unit getUnitOfInterface() :outertype: Unit :return: the STANDARD Unit (when it exists) corresponding to this INTERFACE Unit. This code is not very satisfying, because the getFunctionDecl should be made more specific by using the INTERFACE's functionTypeSpec(). getUpperLevelClassUnit ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public Unit getUpperLevelClassUnit() :outertype: Unit :return: the closest upper level class unit of this unit. globalZonesNumber ^^^^^^^^^^^^^^^^^ .. java:method:: public int globalZonesNumber(int whichKind) :outertype: Unit hasArrayNotation ^^^^^^^^^^^^^^^^ .. java:method:: public boolean hasArrayNotation() :outertype: Unit :return: true if we allow for array notation ("vector" notation) in this Unit. hasDirective ^^^^^^^^^^^^ .. java:method:: public Directive hasDirective(int kind) :outertype: Unit :return: one Directive of kind "kind" in the list of AD directives attached to this Unit. hasGlobalArgs ^^^^^^^^^^^^^ .. java:method:: protected boolean hasGlobalArgs() :outertype: Unit :return: true when this Unit has global arguments that are neither the returned value nor in the list of formal arguments, and that may be used (R or W) by this Unit. hasParamElemsInfo ^^^^^^^^^^^^^^^^^ .. java:method:: public boolean hasParamElemsInfo() :outertype: Unit :return: true when this Unit contains info on its elementary parameters. hasPredefinedDerivatives ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean hasPredefinedDerivatives() :outertype: Unit :return: true if this unit has predefined derivatives, e.g. from an external specification library. hasSource ^^^^^^^^^ .. java:method:: public boolean hasSource() :outertype: Unit :return: true if this Unit knows its source code, i.e. Flow Graph, etc... hasTooManyZones ^^^^^^^^^^^^^^^ .. java:method:: public final boolean hasTooManyZones() :outertype: Unit headTree ^^^^^^^^ .. java:method:: public Tree headTree() :outertype: Unit :return: the header of the current procedure Unit, in the form of a tree with top operator "call". importAllSymbolTables ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void importAllSymbolTables() :outertype: Unit importInheritedClassesSymbolTables ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void importInheritedClassesSymbolTables() :outertype: Unit importedModules ^^^^^^^^^^^^^^^ .. java:method:: public TapList importedModules() :outertype: Unit :return: the list of all directly imported modules. importsSymbolTable ^^^^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable importsSymbolTable() :outertype: Unit :return: the imported context SymbolTable of this Unit. inStdCIncludeFile ^^^^^^^^^^^^^^^^^ .. java:method:: public boolean inStdCIncludeFile() :outertype: Unit :return: true if this Unit comes from a C include file. isAContext ^^^^^^^^^^ .. java:method:: public boolean isAContext() :outertype: Unit :return: true when this Unit is (in particular) differentiated as a context to call diff code. isAFunction ^^^^^^^^^^^ .. java:method:: public boolean isAFunction() :outertype: Unit :return: true if this Unit is a function, i.e. return type is not 'void'. isC ^^^ .. java:method:: public boolean isC() :outertype: Unit isCPlusPlus ^^^^^^^^^^^ .. java:method:: public boolean isCPlusPlus() :outertype: Unit isCalledFromOtherLanguage ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isCalledFromOtherLanguage() :outertype: Unit isCexactly ^^^^^^^^^^ .. java:method:: public boolean isCexactly() :outertype: Unit :return: True if the programming language is C. isClass ^^^^^^^ .. java:method:: public boolean isClass() :outertype: Unit :return: True if this is a class. isConstructor ^^^^^^^^^^^^^ .. java:method:: public boolean isConstructor() :outertype: Unit :return: True if this is an constructor Unit. isDiffPackage ^^^^^^^^^^^^^ .. java:method:: public Boolean isDiffPackage() :outertype: Unit :return: Boolean(true) if this Unit is a package (of the source CallGraph) for which there will be a differentiated package Unit. Also returns true if this Unit is this corresponding differentiated package Unit (of the differentiated Call Graph). This is set to true when the new module contains something new in addition to the contents of the primal, such as the declaration of some differentiated objects. Otherwise, this is also set to true when TapEnv.get().stripPrimalModules is false. isElemental ^^^^^^^^^^^ .. java:method:: public boolean isElemental() :outertype: Unit :return: true for procedures that F90 can use as elemental, i.e. on an array of arguments of the expected type. isExternal ^^^^^^^^^^ .. java:method:: public boolean isExternal() :outertype: Unit :return: True if this is an external Unit. isFortran ^^^^^^^^^ .. java:method:: public boolean isFortran() :outertype: Unit :return: True if the programming language is any FORTRAN. isFortran2003 ^^^^^^^^^^^^^ .. java:method:: public boolean isFortran2003() :outertype: Unit :return: True if the programming language is FORTRAN2003 or upper. isFortran9x ^^^^^^^^^^^ .. java:method:: public boolean isFortran9x() :outertype: Unit :return: True if the programming language is FORTRAN90 or upper. isInterface ^^^^^^^^^^^ .. java:method:: public boolean isInterface() :outertype: Unit :return: True if this is an (unsolved) interface Unit. isIntrinsic ^^^^^^^^^^^ .. java:method:: public boolean isIntrinsic() :outertype: Unit :return: True if this is an intrinsic Unit. isIntrinsicNotElemental ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isIntrinsicNotElemental() :outertype: Unit isModule ^^^^^^^^ .. java:method:: public boolean isModule() :outertype: Unit :return: True if this is a module. isOutside ^^^^^^^^^ .. java:method:: public boolean isOutside() :outertype: Unit :return: True if this is an external, or an intrinsic, or an outside to be determined. isOutsideTBD ^^^^^^^^^^^^ .. java:method:: public boolean isOutsideTBD() :outertype: Unit :return: True if this is an outside Unit, maybe external, maybe intrinsic. isPackage ^^^^^^^^^ .. java:method:: public boolean isPackage() :outertype: Unit :return: True if this is a package of sub-Units. isPredefinedModuleOrTranslationUnit ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isPredefinedModuleOrTranslationUnit() :outertype: Unit :return: true if this is the MPI module. isPrivate ^^^^^^^^^ .. java:method:: protected boolean isPrivate() :outertype: Unit isProcedure ^^^^^^^^^^^ .. java:method:: public boolean isProcedure() :outertype: Unit :return: True if this is a procedure Unit. isProcedureWithCode ^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isProcedureWithCode() :outertype: Unit :return: True if this is a procedure Unit with its code exposed. isRenamed ^^^^^^^^^ .. java:method:: public boolean isRenamed() :outertype: Unit :return: True if this is a renamed Unit. isStandard ^^^^^^^^^^ .. java:method:: public boolean isStandard() :outertype: Unit :return: True if this is a standard Unit. isTopInFile ^^^^^^^^^^^ .. java:method:: public boolean isTopInFile() :outertype: Unit :return: True if this is a top-level unit, i.e. immediately inside a file (aka Translation Unit). isTranslationUnit ^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isTranslationUnit() :outertype: Unit :return: True if this is a "Translation Unit" (i.e. the Unit for a file). isUndefined ^^^^^^^^^^^ .. java:method:: public boolean isUndefined() :outertype: Unit :return: True if this is an undefined module. isUseAssociatedIntrinsic ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isUseAssociatedIntrinsic(FunctionDecl intrinsicDecl) :outertype: Unit :return: true si intrinsicDecl est declare'e dans un des modules importe' pb: on ne peut pas passer par les importedSymbolTable car les intrinsic n'y sont pas: elles sont rajoutees au typeCheck des declarations du module qui est fait apres la copie des symbolTable importees TODO dans ce qui suit on ne tient pas compte des restrictions faites par les only ou renamed il faudrait affiner ... isVarFunction ^^^^^^^^^^^^^ .. java:method:: public boolean isVarFunction() :outertype: Unit :return: True if this is a Unit for a variable that holds a function. language ^^^^^^^^ .. java:method:: public int language() :outertype: Unit :return: the programming language. language ^^^^^^^^ .. java:method:: public static int language(Unit unit) :outertype: Unit lostComments ^^^^^^^^^^^^ .. java:method:: public TapList lostComments() :outertype: Unit :return: the list of all comments lost while building this Unit. makeExternal ^^^^^^^^^^^^ .. java:method:: public static Unit makeExternal(String funcName, CallGraph callGraph, int language, boolean isPrivate) :outertype: Unit Constructor for external Units. makeExternalOrIntrinsic ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static Unit makeExternalOrIntrinsic(String funcName, CallGraph callGraph, int language) :outertype: Unit Constructor for Units that are still dubious between External and Intrinsic. makeFlowGraph ^^^^^^^^^^^^^ .. java:method:: public void makeFlowGraph(EntryBlock entryBlock, TapList givenAllBlocks, ExitBlock exitBlock, boolean finalGraph) :outertype: Unit Sets the Flow Graph contents of this Unit. Takes a raw description of a Flow Graph, i.e. entryBlock, allBlocks, and exitBlock, condenses, simplifies, and normalizes it, and then puts the result as the new Flow Graph contents of this Unit. Assumes that all given Blocks are linked by the correct FGArrow's. Normalization includes Block fusion when possible, loop nesting choice, detection of unreachable Blocks, and coherence enforcement. When this function completes, the Unit has its "allBlocks" and "topBlocks" computed, plus all the various fields related to the loop nesting in contained BasicBlock's, LoopBlock's, HeaderBlock's, FGArrow's, etc. :param entryBlock: The EntryBlock of the given raw Flow Graph :param givenAllBlocks: All the inside blocks of the given raw Flow Graph, unordered, EntryBlock and ExitBlock excluded :param exitBlock: The ExitBlock of the given raw Flow Graph :param finalGraph: true when this graph is not going to be analyzed any more, and is rather the final result of AD. In this case condensation will be a little more aggressive. makeTransferMatrix ^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolMatrix makeTransferMatrix(int whichKind) :outertype: Unit :return: and builds BoolMatrix "transferMatrix", which is used to translate public BoolMatrix'es to and from private ZoneMatrix'es, for infos that are travelling to and from the head of this unit. makeVarFunction ^^^^^^^^^^^^^^^ .. java:method:: public static Unit makeVarFunction(String funcName, Unit callingUnit) :outertype: Unit :return: an empty unit designed to represent a function which is only a variable of type "function" inside another unit. middleNormalBlock ^^^^^^^^^^^^^^^^^ .. java:method:: public Block middleNormalBlock() :outertype: Unit :return: null if no suitable middle block found. mustDifferentiateJoint ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean mustDifferentiateJoint() :outertype: Unit mustDifferentiateSplit ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean mustDifferentiateSplit() :outertype: Unit name ^^^^ .. java:method:: public String name() :outertype: Unit :return: name of this Unit. For a translation Unit, it is the full path name of the corresponding file. nestingDepth ^^^^^^^^^^^^ .. java:method:: public int nestingDepth() :outertype: Unit :return: 0 for the topmost Unit's otherName ^^^^^^^^^ .. java:method:: public Unit otherName() :outertype: Unit (Hack) Name of another unit (if any) that "corresponds" to this Unit. Used for two-way source-code correspondence e.g. for HTML display. otherReturnVar ^^^^^^^^^^^^^^ .. java:method:: public VariableDecl otherReturnVar() :outertype: Unit The alternate return variable name, if different from the function's name. paramElemPublicInfo ^^^^^^^^^^^^^^^^^^^ .. java:method:: public PublicInfo paramElemPublicInfo(int i) :outertype: Unit :return: the ZoneInfo of the i-th elementary parameter of this Unit. paramElemZoneInfo ^^^^^^^^^^^^^^^^^ .. java:method:: public ZoneInfo paramElemZoneInfo(int i) :outertype: Unit :return: the ZoneInfo of the i-th elementary parameter of this Unit. paramElemsNb ^^^^^^^^^^^^ .. java:method:: public int paramElemsNb() :outertype: Unit :return: the number of elementary parameters of this Unit. preprocess ^^^^^^^^^^ .. java:method:: protected void preprocess() :outertype: Unit privateSymbolTable ^^^^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable privateSymbolTable() :outertype: Unit :return: the SymbolTable of this Unit's top private symbols. protectedSymbolTable ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable protectedSymbolTable() :outertype: Unit :return: the SymbolTable of this Unit's top protected symbols. publicSymbolTable ^^^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable publicSymbolTable() :outertype: Unit :return: the SymbolTable of this Unit's formal parameters or public symbolDecls. publicZonesNumber ^^^^^^^^^^^^^^^^^ .. java:method:: public int publicZonesNumber(int whichKind) :outertype: Unit rank ^^^^ .. java:method:: public int rank() :outertype: Unit :return: The rank of this Unit, for access in UnitStorage's, Positive number. removePhantomPackages ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public static TapList removePhantomPackages(TapList diffUnits) :outertype: Unit returnIndices ^^^^^^^^^^^^^ .. java:method:: public TapIntList returnIndices(int kind) :outertype: Unit :return: the list of the "kind" zones of the result of this Unit sameLanguage ^^^^^^^^^^^^ .. java:method:: public boolean sameLanguage(int lang) :outertype: Unit setAllocDealloc ^^^^^^^^^^^^^^^ .. java:method:: public void setAllocDealloc() :outertype: Unit setCalledFromOtherLanguage ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setCalledFromOtherLanguage() :outertype: Unit setClass ^^^^^^^^ .. java:method:: public void setClass() :outertype: Unit Declare this is a class. setClassTypeSpec ^^^^^^^^^^^^^^^^ .. java:method:: public void setClassTypeSpec(ClassTypeSpec type) :outertype: Unit setConstructor ^^^^^^^^^^^^^^ .. java:method:: public void setConstructor() :outertype: Unit Declare this is an constructor Unit. setDeleted ^^^^^^^^^^ .. java:method:: public void setDeleted() :outertype: Unit setDestructor ^^^^^^^^^^^^^ .. java:method:: public void setDestructor() :outertype: Unit Declare this is an destructor Unit. setEntryBlock ^^^^^^^^^^^^^ .. java:method:: public void setEntryBlock(EntryBlock eb) :outertype: Unit Sets the entry block. setExitBlock ^^^^^^^^^^^^ .. java:method:: public void setExitBlock(ExitBlock eb) :outertype: Unit Sets the exit Block. setExternal ^^^^^^^^^^^ .. java:method:: public void setExternal() :outertype: Unit Declare this is an external Unit. setExternalSymbolTable ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setExternalSymbolTable(SymbolTable symbolTable) :outertype: Unit Sets the enclosing SymbolTable of this Unit. setForwardDeclaration ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setForwardDeclaration(Instruction instr) :outertype: Unit For C, for an EXTERNAL Unit, set the C-style forward declaration instruction. setFragmentInOutCkp ^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setFragmentInOutCkp(Block ckpBlock, TapPair info) :outertype: Unit setFromInclude ^^^^^^^^^^^^^^ .. java:method:: public void setFromInclude(Instruction fromInc) :outertype: Unit setFunctionTypeSpec ^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setFunctionTypeSpec(FunctionTypeSpec functionTypeSpec) :outertype: Unit Sets the function type of this Unit. setHasArrayNotation ^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setHasArrayNotation() :outertype: Unit Allow for array notation ("vector" notation) in this Unit. setImportsSymbolTable ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setImportsSymbolTable(SymbolTable symbolTable) :outertype: Unit Sets the imported context SymbolTable of this Unit. setInStdCIncludeFile ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setInStdCIncludeFile() :outertype: Unit Declares that this Unit comes from a C include file. setInitConstructorBlock ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setInitConstructorBlock(InitConstructorBlock ib) :outertype: Unit Sets the entry block. setInterface ^^^^^^^^^^^^ .. java:method:: public void setInterface() :outertype: Unit Declare this is an interface Unit. setInterfaceDeclaration ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setInterfaceDeclaration(Instruction instr) :outertype: Unit setIntrinsic ^^^^^^^^^^^^ .. java:method:: public void setIntrinsic() :outertype: Unit Declare this is an intrinsic Unit. setIsDiffPackage ^^^^^^^^^^^^^^^^ .. java:method:: public void setIsDiffPackage(boolean isDiff) :outertype: Unit setKind ^^^^^^^ .. java:method:: public void setKind(Unit otherUnit) :outertype: Unit Sets the kind of this Unit. setKind ^^^^^^^ .. java:method:: public void setKind(int kind) :outertype: Unit setLanguage ^^^^^^^^^^^ .. java:method:: public void setLanguage(int lang) :outertype: Unit Sets the programming language. setLanguageAndUp ^^^^^^^^^^^^^^^^ .. java:method:: public void setLanguageAndUp(int lang) :outertype: Unit Sets the programming language, and recursively up on each enclosing Unit. setLostComments ^^^^^^^^^^^^^^^ .. java:method:: public void setLostComments(TapList lostComments) :outertype: Unit Sets the list of all comments lost while building this Unit. setModule ^^^^^^^^^ .. java:method:: public void setModule() :outertype: Unit Declare this is a module. setName ^^^^^^^ .. java:method:: public void setName(String name) :outertype: Unit Set unit's name. :param name: unit name. setOtherName ^^^^^^^^^^^^ .. java:method:: public void setOtherName(Unit otherUnit) :outertype: Unit setOtherReturnVar ^^^^^^^^^^^^^^^^^ .. java:method:: public void setOtherReturnVar(VariableDecl otherReturnVar) :outertype: Unit setPredefinedModuleOrTranslationUnit ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setPredefinedModuleOrTranslationUnit() :outertype: Unit Declares that this is the MPI module. setPrivateSymbolTable ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setPrivateSymbolTable(SymbolTable symbolTable) :outertype: Unit Sets the SymbolTable of this Unit's top private symbols. setProtectedSymbolTable ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setProtectedSymbolTable(SymbolTable symbolTable) :outertype: Unit Sets the SymbolTable of this Unit's top protected symbols. setPublicSymbolTable ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setPublicSymbolTable(SymbolTable symbolTable) :outertype: Unit Sets the SymbolTable of this Unit's formal parameters or public symbolDecls. setRank ^^^^^^^ .. java:method:: public void setRank(int rank) :outertype: Unit setTranslationUnit ^^^^^^^^^^^^^^^^^^ .. java:method:: public void setTranslationUnit(String fileName) :outertype: Unit Declare this is a "Translation Unit" (i.e. the Unit for a file). setTranslationUnitSymbolTable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setTranslationUnitSymbolTable(SymbolTable symbolTable) :outertype: Unit setUndefined ^^^^^^^^^^^^ .. java:method:: public void setUndefined() :outertype: Unit setUpperLevelUnit ^^^^^^^^^^^^^^^^^ .. java:method:: public void setUpperLevelUnit(Unit upUnit) :outertype: Unit setVarFunction ^^^^^^^^^^^^^^ .. java:method:: public void setVarFunction() :outertype: Unit Declare this is a Unit for a variable that holds a function. shortName ^^^^^^^^^ .. java:method:: protected String shortName() :outertype: Unit tapenade web server does not show full path name. :return: name of this Unit without directory. subClassOf ^^^^^^^^^^ .. java:method:: protected boolean subClassOf(Unit parentUnit) :outertype: Unit symbolTablesBottomUp ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapList symbolTablesBottomUp() :outertype: Unit :return: the list of all the SymbolTable's belonging to this Unit. The list contains all SymbolTable's created for this Unit or for one of its Blocks, ordered with the deepest SymbolTable's first. takesArgumentByValue ^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean takesArgumentByValue(int parameterRank, int callerLanguage) :outertype: Unit :param parameterRank: rank of this parameter, from 1 to nbArgs :return: True if this unit, when called by another unit of language "callerLanguage", gets the parameter of rank parameterRank by value. testZoneOfControllerBlock ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public int testZoneOfControllerBlock(Block block) :outertype: Unit When this block is a controller (e.g. ends with a control statement), returns the zone attached to this control, otherwise returns -1 testZoneOfControllerWhere ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public int testZoneOfControllerWhere(Instruction instr) :outertype: Unit This instr is assumed to be a where, and therefore is a control. Returns the zone attached to this control toString ^^^^^^^^ .. java:method:: @Override public String toString() :outertype: Unit topBlocks ^^^^^^^^^ .. java:method:: public TapList topBlocks() :outertype: Unit :return: the DFST-ordered list of all top-level Blocks. i.e. the Blocks that are not enclosed in any loop. This list does not contain the EntryBlock nor the ExitBlock. transferMatrix ^^^^^^^^^^^^^^ .. java:method:: public BoolMatrix transferMatrix(int whichKind) :outertype: Unit :return: the transfer matrix between the public, external numbering of zones and the private, internal numbering specialized for type "whichKind". transferTransposed ^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolMatrix transferTransposed(BoolMatrix matrix, int whichKind) :outertype: Unit Computes the same as the product of this Unit's transferMatrix of kind "whichKind" times the transpose of the given "matrix", but without ever using the Unit's transferMatrix because it is so large that we don't want to build it. If the transferMatrix was computed, this should be equivalent to transferMatrix(whichKind).timesTransposed(matrix) translateDeclaredToPublicZones ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapIntList translateDeclaredToPublicZones(TapIntList declaredZones) :outertype: Unit Translate a TapIntList of declared zones indices for "this" Unit into the TapIntList of corresponding published zone numbers for this Unit. zones which are local to this Unit are not published, and are therefore discarded. translateToCallerZones ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public TapIntList translateToCallerZones(TapIntList publicZones, Unit origUnit) :outertype: Unit Translate the published zones from the given TapIntList "publicZones", which are expressed with respect to "this" Unit, into the corresponding published zones expressed with respect to Unit "origUnit". If one such zone is simply unknown in origUnit, then discard it. translationUnit ^^^^^^^^^^^^^^^ .. java:method:: public Unit translationUnit() :outertype: Unit Returns the enclosing file Unit (aka Translation Unit). translationUnitSymbolTable ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public SymbolTable translationUnitSymbolTable() :outertype: Unit turnExternal ^^^^^^^^^^^^ .. java:method:: public void turnExternal() :outertype: Unit Turns a Unit which was created as a OUTSIDE_TBD, into an EXTERNAL. turnIntrinsic ^^^^^^^^^^^^^ .. java:method:: public void turnIntrinsic() :outertype: Unit Turns a Unit which was created as a OUTSIDE_TBD or STANDARD, into an INTRINSIC. typeCheck ^^^^^^^^^ .. java:method:: public void typeCheck() :outertype: Unit TypeChecks this Unit. TypeChecks each Instruction of this Unit with respect to its enclosing Block's SymbolTable. Supposes all declarations are already in the SymbolTable, even when they were found later in the code, because all the declarations are inserted into the SymbolTable during a previous phase (cf FlowGraphBuilder). Adds implicit or error recovery declarations for undeclared variables, and creates Unit's for undeclared routines called. typeCheckInterface ^^^^^^^^^^^^^^^^^^ .. java:method:: protected void typeCheckInterface() :outertype: Unit TypeChecks this interface. Checks coherence between interface and complete declaration if found. typeCheckNameEqOptionalArguments ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected WrapperTypeSpec[] typeCheckNameEqOptionalArguments(SymbolTable symbolTable, Tree[] actualArgs, WrapperTypeSpec[] actualTypes, WrapperTypeSpec[] nameEqTypes, int rankOfFirstNameEq, Tree newCallTree, Tree optionalTree, ToBool callUsesNameEq) :outertype: Unit typeCheckOptionalArguments ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void typeCheckOptionalArguments(WrapperTypeSpec[] actualTypes, Tree newCallTree, Tree optionalTree, ToBool callUsesNameEq) :outertype: Unit unfocusFromKind ^^^^^^^^^^^^^^^ .. java:method:: public BoolVector unfocusFromKind(BoolVector vectorKind, int kind) :outertype: Unit Reciprocal of focusToKind(). Fills the other zones with false unitInOutCertainlyR ^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector unitInOutCertainlyR() :outertype: Unit :return: the vector of zones that are certainly completely read by this Unit. unitInOutCertainlyW ^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector unitInOutCertainlyW() :outertype: Unit :return: the vector of zones that are certainly completely written by this Unit. unitInOutN ^^^^^^^^^^ .. java:method:: public BoolVector unitInOutN() :outertype: Unit In-Out data-flow info: vector of zones possibly/partly not accessed. unitInOutPossiblyNotW ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector unitInOutPossiblyNotW() :outertype: Unit :return: the vector of zones that are possibly not written by this Unit. unitInOutPossiblyR ^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector unitInOutPossiblyR() :outertype: Unit :return: the vector of zones that are possibly read by this Unit. unitInOutPossiblyRorW ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector unitInOutPossiblyRorW() :outertype: Unit :return: the vector of zones that are possibly read or written by this Unit. unitInOutPossiblyW ^^^^^^^^^^^^^^^^^^ .. java:method:: public BoolVector unitInOutPossiblyW() :outertype: Unit :return: the vector of zones that are possibly written by this Unit. unitInOutR ^^^^^^^^^^ .. java:method:: public BoolVector unitInOutR() :outertype: Unit In-Out data-flow info: vector of zones possibly/partly read and not written. unitInOutRW ^^^^^^^^^^^ .. java:method:: public BoolVector unitInOutRW() :outertype: Unit In-Out data-flow info: vector of zones possibly/partly read then written. unitInOutW ^^^^^^^^^^ .. java:method:: public BoolVector unitInOutW() :outertype: Unit In-Out data-flow info: vector of zones possibly/partly not read only written. unitTBR ^^^^^^^ .. java:method:: public BoolVector unitTBR() :outertype: Unit TBR info: vector of zones possibly becoming TBR when going through this Unit, in other words zones used non-linearly and therefore needed in derivatives. updateNestsOfBlocks ^^^^^^^^^^^^^^^^^^^ .. java:method:: protected void updateNestsOfBlocks(Block block, TapList blocks) :outertype: Unit Inside the list of Blocks that holds this level of the nest of loops, i.e. the nested level that contains "block", replaces "block" by "blocks". upperLevelUnit ^^^^^^^^^^^^^^ .. java:method:: public Unit upperLevelUnit() :outertype: Unit :return: the Unit enclosing this one, if exists. null otherwise. wasDeleted ^^^^^^^^^^ .. java:method:: public boolean wasDeleted() :outertype: Unit zonesOfResult ^^^^^^^^^^^^^ .. java:method:: public TapIntList zonesOfResult() :outertype: Unit Computes the list of zones of the result of this (function) Unit. :return: the zones of the result of this (function) Unit, null if no result.