TapEnvForThread¶
-
public final class
TapEnvForThread
¶ Contains all settings needed by Tapenade at some point, (except those specific to AD that go into adEnv), and that are specific for each individual thread.
Fields¶
adActivityAnalyzer¶
-
protected ADActivityAnalyzer
adActivityAnalyzer
¶ The activity analyzer, finding variables that must have a derivative.
adTbrAnalyzer¶
-
protected ADTBRAnalyzer
adTbrAnalyzer
¶ The TBR analyzer, finding variables that must be stored and then retrieved during an adjoint differentiation.
assocAddressDiffSuffix¶
assocAddressDiffTypesUnits¶
assocAddressValueSuffix¶
associationByAddress¶
-
protected boolean
associationByAddress
¶ When true, place differentiated values using association-by-address instead of association-by-name.
combineDeclMessagesSwitch¶
-
protected boolean
combineDeclMessagesSwitch
¶ When false, messages DD05 (Cannot combine successive declarations…) are inhibited. Because repeated inclusion of C standard include files cause spurious DD05 messages.
complexStep¶
-
public boolean
complexStep
¶ When true, fortran REAL’s are turned into COMPLEX’es to enable the complex-step method
curOutputStream¶
-
public OutputStream
curOutputStream
¶ The current output stream used by print().
currentDirectory¶
currentIncludeInstruction¶
-
protected Instruction
currentIncludeInstruction
¶ The include Instruction that contained the current Instruction.
currentTranslationUnitSymbolTable¶
-
protected SymbolTable
currentTranslationUnitSymbolTable
¶
danglingMessages¶
-
protected TapList<PositionAndMessage>
danglingMessages
¶ The list of all messages that could not be related to such or such Unit.
debugADMM¶
-
protected boolean
debugADMM
¶ label all calls to ADMM primitives with a unique label for debugging
debugActivity¶
-
protected boolean
debugActivity
¶ When true, deactivates filterVariedUsefulWithDeps() and mergeUsefulnessIntoVariedness() so that when the normal mode eventually finds no activity at all, this mode still runs top-down activity analysis through the code. This may help find where the activity chain is broken.
debugAdMode¶
-
protected int
debugAdMode
¶ Debug mode of differentiated programs. NO_DEBUG:no debug ; TGT_DEBUG:debug tangent ; ADJ_DEBUG:debug adjoint.
debugPassives¶
-
public boolean
debugPassives
¶ When true, in debug tangent mode, tries also to test that the passives are not varied.
defaultCheckpointCalls¶
-
public boolean
defaultCheckpointCalls
¶ The default checkpointing decision on call sites.
depsAnalyzer¶
-
protected DepsAnalyzer
depsAnalyzer
¶ The data-dependency analyzer, finding dependencies of outputs wrt inputs of procedures.
diffFileSuffix¶
diffKind¶
-
protected int
diffKind
¶ The kind of zones that are currently differentiated. Usually, it is REALKIND, but in a very special mode, it can be ALLKIND.
diffLivenessAnalyzer¶
-
protected DiffLivenessAnalyzer
diffLivenessAnalyzer
¶ The differentiable liveness analyzer, finding original code that is eventually useful or not for the derivative computations.
diffReplica¶
-
public int
diffReplica
¶ Number of replicates of diff variables, as requested by “-replicateDiff” option.
differentiatedIncludeNames¶
doOpenMPZ3¶
-
protected boolean
doOpenMPZ3
¶ When true, run special analyses for OpenMP clauses using Z3 model checker.
doRecompute¶
-
public boolean
doRecompute
¶ When true, cheap instructions may be repeated to further reduce the adjoint mode stack.
doTBR¶
-
public boolean
doTBR
¶ When true, TBR analysis is run to further reduce the adjoint mode stack.
dontSaveUnused¶
-
public boolean
dontSaveUnused
¶ When true, only used variables are pushed on the adjoint mode stack.
doubleDoubleRealSize¶
-
public int
doubleDoubleRealSize
¶ Size of a long double precision float for this system.
dumpCallGraph¶
-
public boolean
dumpCallGraph
¶ True if user wants a compact dump of the source Call Graph.
dumpDataFlow¶
-
public boolean
dumpDataFlow
¶ True if user wants a dump of the Data Flow results on the source.
dumpDeps¶
-
public boolean
dumpDeps
¶ True if user wants a dump of dependency info matrices in the data-flow of the Call Graph.
dumpDiffFlowGraphs¶
-
public boolean
dumpDiffFlowGraphs
¶ True if user wants a dump of the differentiated code’s Flow-Graphs.
dumpDiffSymbolTables¶
-
public boolean
dumpDiffSymbolTables
¶ True if user wants a dump of the differentiated code’s Symbol Tables.
dumpInOut¶
-
public boolean
dumpInOut
¶ True if user wants a dump of In-Out info in the data-flow of the Call Graph.
dumpOutputStream¶
-
public OutputStream
dumpOutputStream
¶ The OutputStream for traces (milestones, differentiation debug traces…).
dumpPointers¶
-
public boolean
dumpPointers
¶ True if user wants a dump of pointer info in the data-flow of the Call Graph.
dumpSymbolTables¶
-
public boolean
dumpSymbolTables
¶ True if user wants a dump of the source Symbol Tables.
dumpZones¶
-
public boolean
dumpZones
¶ True if user wants a dump of the zones numbers used in the dump.
duplicableUnitNames¶
expandAllIncludeFile¶
-
public boolean
expandAllIncludeFile
¶ When true, expand all includes in the generated files.
fixInterface¶
-
public boolean
fixInterface
¶ When true, forbids modifications of the dependent and independent of root Units.
fixedNbdirsString¶
fixedNbdirsTree¶
fixedNbdirsmaxString¶
fixedNbdirsmaxTree¶
fortran90LineLength¶
fppCommand¶
inOutAnalyzer¶
-
protected InOutAnalyzer
inOutAnalyzer
¶ The In-Out analyzer, finding variables read and/or written by procedures.
includeFileStack¶
inlinedFunctions¶
-
public InlinedFunctions
inlinedFunctions
¶ List of inlinedFunctions (cf libraries/GeneralLibReader).
mergeDiffInstructions¶
-
public boolean
mergeDiffInstructions
¶ When true, diff instructions are merged when profitable.
mixedLangInfos¶
-
protected TapList<MixedLanguageInfos>
mixedLangInfos
¶
multiDirDiffMode¶
-
public boolean
multiDirDiffMode
¶ True if the coming differentiation will be multi-directional.
multiFuncSuffix¶
multithreadAnalyzer¶
-
protected MultithreadAnalyzer
multithreadAnalyzer
¶ The OpenMP clauses analyzer, finding the OpenMP status of variables (shared, private…)
mustAdjoint¶
-
public boolean
mustAdjoint
¶ True if the coming differentiation will feature some adjoint diff.
mustContext¶
-
public boolean
mustContext
¶ When true, code outside the differentiation root is also regenerated, to prepare the context to call the diff code.
mustTangent¶
-
public boolean
mustTangent
¶ True if the coming differentiation will feature some tangent diff.
newSHdisambiguator¶
-
public int
newSHdisambiguator
¶ This integer will be incremented each time we create a new temporary symbol (tmp, arg, result, dumm, dummyarraydiff…) and then attached to the new symbol name to make it unique so that it can be recognized, e.g. with sed.
noComment¶
-
public boolean
noComment
¶ About handling of comments by the preprocessors (e.g. cpp, fpp…) Default false implies preprocessor called with “-C”, thus keeping comments.
noisize¶
-
public boolean
noisize
¶ In the differentiated code, do not create “ISIZEOF” constants that the user must then define, but rather use the Fortran90 dynamic SIZE() function.
noisize77¶
-
public boolean
noisize77
¶ Like noisize, but use the dynamic SIZE() function even when not in Fortran90.
numberPushPops¶
-
public boolean
numberPushPops
¶ When true, place a common numeric mark on matching Push/POP’s.
oldContext¶
-
public boolean
oldContext
¶ TEMPORARY: Option to run the old context system (before option “-context” existed), that adds memory allocation and pointer computations of the adjoint variables into the copied “_CD” and “_CB” procedures.
optionsString¶
outputStreamStack¶
-
public TapList<OutputStream>
outputStreamStack
¶
pointerAnalyzer¶
-
protected PointerAnalyzer
pointerAnalyzer
¶ The pointer destination anlayzer (points-to analysis).
preprocessFileSuffix¶
refineADMM¶
-
public boolean
refineADMM
¶ When true, refine application of the ADMM mechanism i.e. Register/Unregister/Rebase by restricting it to those that really need it (according to a static data-flow analysis).
Only Rebase pointers that may point to chunks that may be reallocated
Only Register/Unregister chunks that may be pointed to by TBR pointers.
removeDeadControl¶
-
public boolean
removeDeadControl
¶ When true, original control instructions that are eventuallynot needed for derivatives are sliced away.
removeDeadPrimal¶
-
public boolean
removeDeadPrimal
¶ When true, primal code that is eventually not needed for derivatives is sliced away.
reqExplicitAnalyzer¶
-
protected ReqExplicit
reqExplicitAnalyzer
¶ The pointer activity analyzer, finds pointers for which a derivative must be defined. Also finds allocations, de-allocations, and pointer operations that must be transposed for the derivative counterpart.
resultRK¶
-
protected int
resultRK
¶ Used during instruction splitting: Static ints to increment the number at the end of the intermediate var names such as “result”, “arg”.
seenSymbolTables¶
-
public TapList<TapPair<SymbolTable, String>>
seenSymbolTables
¶ A-List of SymbolTables already shown on dump. A-List of TapPair’s (SymbolTable,String to refer to it).
spareDiffReinitializations¶
-
protected boolean
spareDiffReinitializations
¶ When true, reinitialization of derivative of passive variables is postponed.
spareNoDiffArgs¶
-
public boolean
spareNoDiffArgs
¶ When true, non-active procedure arguments are not differentiated.
splitDiffExpressions¶
-
public boolean
splitDiffExpressions
¶ When true, diff expressions are split to eliminate common subexpressions.
srcUnitsToTraceInTreeGen¶
standaloneDiff¶
-
public boolean
standaloneDiff
¶ When true, the differentiated code incorporates enough of the primal code to be standalone.
staticTape¶
-
public boolean
staticTape
¶ When true, try to use local static storage when possible instead of PUSH/POP.
stdLibraryDirectory¶
stripDiffTypes¶
-
public boolean
stripDiffTypes
¶ When true, differentiated types are simplified by stripping passive components.
stripPrimalCode¶
-
public boolean
stripPrimalCode
¶ When true, useless primal code (procedures…) is stripped from differentiated files.
stripPrimalEvenIfImportsActive¶
-
public boolean
stripPrimalEvenIfImportsActive
¶ (Requested by one user, but dangerous) When true, the fact that a unit IMPORTS an active module is not a sufficient reason to keep its primal version in the diff code (as a _NODIFF unit).
stripPrimalModules¶
-
public boolean
stripPrimalModules
¶ When false, all modules are differentiated (previous default, for compatibility and test) when true, only active modules are differentiated.
traceADDeps¶
traceActivity¶
traceBlockRk¶
-
public int
traceBlockRk
¶ Rank of one Block in the selected Unit, on which traces should focus.
traceCallArrowDestinationName¶
traceCallArrowOriginName¶
traceCurAnalysis¶
-
public boolean
traceCurAnalysis
¶ When true, we trace analysis on-the-fly on the curUnit.
traceDeps¶
traceDiffLiveness¶
traceDifferentiationUnitNames¶
traceFlowGraphBuild¶
traceInOut¶
traceInline¶
traceInlineAnalysis¶
-
protected boolean
traceInlineAnalysis
¶ True when we want to trace inline analysis on-the-fly on the current Unit.
traceInputIL¶
-
public boolean
traceInputIL
¶ When true, the tree operators coming from the input IL will be shown.
traceMultithread¶
traceOutputStream¶
-
public final OutputStream
traceOutputStream
¶ The OutputStream for traces (milestones, differentiation debug traces…).
traceParser¶
-
public boolean
traceParser
¶ When true, Tapenade prints the system command(s) used to parse the input files into IL.
tracePointer¶
traceReqExplicit¶
traceTBR¶
traceTreeGenUnitNames¶
traceTypeCheck¶
traceTypeCheckAnalysis¶
-
protected boolean
traceTypeCheckAnalysis
¶ True when we want to trace typeCheck analysis on-the-fly on the current Unit.