.. java:import:: fr.inria.tapenade.analysis ActivityPattern FunctionDecl ============ .. java:package:: fr.inria.tapenade.representation :noindex: .. java:type:: public final class FunctionDecl extends SymbolDecl The specific SymbolTable entry for a function definition. Fields ------ declarator ^^^^^^^^^^ .. java:field:: public Tree declarator :outertype: FunctionDecl C external declaration. definitionSymbolTable ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public SymbolTable definitionSymbolTable :outertype: FunctionDecl symbolTable containing the principal FunctionDecl of this function. null corresponds to the rootSymbolTable. formalArgRank ^^^^^^^^^^^^^ .. java:field:: public int formalArgRank :outertype: FunctionDecl for a formal parameter, its rank in the parameters list. From 1 up (special 0 for result). initFunctionDecls ^^^^^^^^^^^^^^^^^ .. java:field:: public FunctionDecl[] initFunctionDecls :outertype: FunctionDecl When this is a "pointer-to-function" variable, holding a pointer to a function, holds the function it is given upon initialization. Constructors ------------ FunctionDecl ^^^^^^^^^^^^ .. java:constructor:: public FunctionDecl() :outertype: FunctionDecl FunctionDecl ^^^^^^^^^^^^ .. java:constructor:: public FunctionDecl(Tree identTree, Unit unit) :outertype: FunctionDecl FunctionDecl ^^^^^^^^^^^^ .. java:constructor:: public FunctionDecl(Tree identTree, Unit unit, SymbolTable symbolTable) :outertype: FunctionDecl FunctionDecl ^^^^^^^^^^^^ .. java:constructor:: public FunctionDecl(Tree identTree, Unit unit, SymbolTable symbolTable, String className) :outertype: FunctionDecl Methods ------- accumulateZones ^^^^^^^^^^^^^^^ .. java:method:: @Override public void accumulateZones(TapList intTree) :outertype: FunctionDecl argumentsTypesSpec ^^^^^^^^^^^^^^^^^^ .. java:method:: public WrapperTypeSpec[] argumentsTypesSpec() :outertype: FunctionDecl declarationMatchesCall ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean declarationMatchesCall(TypeSpec callResultType, TypeSpec[] callArgTypes) :outertype: FunctionDecl :return: true if this declaration of a function matches (i.e. can be called with) the types of the given actual arguments callArgTypes (and optionally matches the expected type of the result callResultType, although we are not sure it is reasonable to type-check on the result type?). deleteUnitIfDifferent ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void deleteUnitIfDifferent(Unit otherUnit, CallGraph callGraph) :outertype: FunctionDecl eraseDiffSymbolHolder ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected void eraseDiffSymbolHolder(int diffSort) :outertype: FunctionDecl formalArgRankOrResultZero ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public int formalArgRankOrResultZero() :outertype: FunctionDecl functionTypeSpec ^^^^^^^^^^^^^^^^ .. java:method:: public FunctionTypeSpec functionTypeSpec() :outertype: FunctionDecl getDiffSymbolHolder ^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public NewSymbolHolder getDiffSymbolHolder(int diffSort, ActivityPattern pattern, int replica) :outertype: FunctionDecl :return: the NewSymbolHolder that has been stored by setDiffSymbolHolder() as the differentiated symbol of this SymbolDecl, for the given diffSort and for the given pattern. hasDiffSymbolHolders ^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean hasDiffSymbolHolders() :outertype: FunctionDecl isElemental ^^^^^^^^^^^ .. java:method:: public boolean isElemental() :outertype: FunctionDecl isExternal ^^^^^^^^^^ .. java:method:: @Override public boolean isExternal() :outertype: FunctionDecl isInterface ^^^^^^^^^^^ .. java:method:: public boolean isInterface() :outertype: FunctionDecl isIntrinsic ^^^^^^^^^^^ .. java:method:: public boolean isIntrinsic() :outertype: FunctionDecl isIntrinsicNotElemental ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isIntrinsicNotElemental() :outertype: FunctionDecl isModule ^^^^^^^^ .. java:method:: public boolean isModule() :outertype: FunctionDecl isRenamed ^^^^^^^^^ .. java:method:: public boolean isRenamed() :outertype: FunctionDecl isStandard ^^^^^^^^^^ .. java:method:: public boolean isStandard() :outertype: FunctionDecl isTarget ^^^^^^^^ .. java:method:: @Override public boolean isTarget(WrapperTypeSpec modelTypeSpec) :outertype: FunctionDecl isVarFunction ^^^^^^^^^^^^^ .. java:method:: public boolean isVarFunction() :outertype: FunctionDecl replaceDiffSymbolHolder ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override protected void replaceDiffSymbolHolder(NewSymbolHolder oldNSH, NewSymbolHolder newNSH) :outertype: FunctionDecl For every NewSymbolHolder that is stored in this SymbolDecl (in provision of the moment when this Symboldecl will receive its finalname), replace it with newNSH if it was oldNSH. This is used when oldNSH is absorbed by newNSH. returnTypeSpec ^^^^^^^^^^^^^^ .. java:method:: public WrapperTypeSpec returnTypeSpec() :outertype: FunctionDecl sameTypes ^^^^^^^^^ .. java:method:: public boolean sameTypes(WrapperTypeSpec otherReturnType, WrapperTypeSpec[] otherArgumentsTypes) :outertype: FunctionDecl setDiffSymbolHolder ^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public void setDiffSymbolHolder(int diffSort, ActivityPattern pattern, int replica, NewSymbolHolder nSH) :outertype: FunctionDecl Puts the NewSymbolHolder "nSH" as the differentiated symbol of this FunctionDecl, for the given diffSort and for the given ActivityPattern. "diffSort" is here because there may be different coexisting derivative symbols for a given original symbol, for example F_FWD, F_BWD, F_B for a given function F. "pattern" is used here only for functions, that may have several different coexisting derivatives, one per calling ActivityPattern. "replica" is not used, it is only for VariableDecl's. setUnit ^^^^^^^ .. java:method:: public void setUnit(Unit unit) :outertype: FunctionDecl Set the Unit declared by this FunctionDecl. setZones ^^^^^^^^ .. java:method:: @Override public void setZones(TapList intTree) :outertype: FunctionDecl shareUnitFrom ^^^^^^^^^^^^^ .. java:method:: public void shareUnitFrom(FunctionDecl otherFunctionDecl) :outertype: FunctionDecl Really share the hat-to-Unit that comes from otherFunctionDecl. toString ^^^^^^^^ .. java:method:: @Override public String toString() :outertype: FunctionDecl type ^^^^ .. java:method:: @Override public WrapperTypeSpec type() :outertype: FunctionDecl unit ^^^^ .. java:method:: public Unit unit() :outertype: FunctionDecl :return: the Unit declared by this FunctionDecl. zones ^^^^^ .. java:method:: @Override public TapList zones() :outertype: FunctionDecl