MemMap¶
-
public final class
MemMap¶ A map for a set of variables that share a common location in memory, e.g. through a Fortran COMMON or EQUIVALENCE declaration, a BIND(C), …
Fields¶
boundaries¶
-
public TapList<AlignmentBoundary>
boundaries¶ The (hatted) sequence of boundaries that partition this shared location
Methods¶
absorb¶
-
public void
absorb(MemMap otherMap, int shift, MemoryMaps otherMaps, MemoryMaps thisMaps)¶ Merge “otherMap” into this MemMap. Update the mapAccesses accordingly.
allocateZones¶
-
public void
allocateZones(ZoneAllocator zoneAllocator, Unit declarationUnit)¶ Use the given zoneAllocator to allocate zones for all variables in this MemMap. TODO: Also accumulate into callGraph, for each Unit, the waiting lists of ZoneInfo of this MemMap that the Unit may see (through its ImportsSymbolTable)
getLastOffset¶
insertVariableAt¶
-
public void
insertVariableAt(int offset, int varSize, VariableDecl variableDecl, SymbolTable declSymbolTable, MemoryMaps thisMaps)¶ Insert “variableDecl”, of size “varSize”, at the given starting “offset” into this MemMap. Update the mapAccesses accordingly.
isActiveRegion¶
-
public boolean
isActiveRegion(int startOffset, int endOffset, boolean infiniteEndOffset)¶ - Returns
true if at least a part of the region from startOffset to endOffset/infiniteEndOffset(excluded) is marked as active
removeVariableFrom¶
-
public void
removeVariableFrom(VariableDecl varDecl, MemoryMaps thisMaps)¶ Remove the given VariableDecl from this MemMap, possibly leaving a hole with no variable.
setActiveRegion¶
-
public void
setActiveRegion(int startOffset, int endOffset, boolean infiniteEndOffset)¶ Set boundaries in this MemMap to represent region from startOffset to endOffset/infiniteEndOffset, if these boundaries are not already present. Sets to true the “active” field of all boundaries from startOffset to endOffset(excluded).
touchesSymbolTable¶
-
protected boolean
touchesSymbolTable(SymbolTable targetSymbolTable)¶ - Returns
true iff this MemMap concerns at least one variable which is declared by the scope “targetSymbolTable”