AlignmentBoundary¶
-
public final class
AlignmentBoundary
¶ One boundary in an alignment Map. Contains the current offset, and the list of variables that start and stop at that offset. Also contains information regarding the memory fragment that follows this boundary and stops at next boundary. This information consists of the WrapperTypeSpec in this memory fragment, and holds a place for the zones that will be later defined for this fragment.
Fields¶
accessTree¶
active¶
-
protected boolean
active
¶ True when the zone starting at this boundary is active. This field is used only for the degenerate case of MemMaps created during differentiation, and that only remember activity.
endVars¶
-
public TapList<VariableDecl>
endVars
¶ The list of the VariableDecl’s of the variables that terminate here (their last cell was at the previous offset).
nextType¶
-
protected WrapperTypeSpec
nextType
¶ (RESTRICTED) The type of whatever starts here and extends till the next boundary.
startVars¶
-
public TapList<ZoneInfoAccessElements>
startVars
¶ The list of the TapTriplet VariableDecl, SymbolTable, Tree of the variables that start here.
type¶
-
public WrapperTypeSpec
type
¶ The WrapperTypeSpec of objects in the next memory fragment (can be array or elements type, unclear…).
Constructors¶
Methods¶
addEndVar¶
-
public void
addEndVar
(VariableDecl variableDecl, SymbolTable fromSymbolTable)¶ Add a variable name that ends here.
addStartVar¶
-
public void
addStartVar
(VariableDecl variableDecl, SymbolTable fromSymbolTable, Tree accessTree)¶ Add a variable name that starts here.
buildNextType¶
-
public WrapperTypeSpec
buildNextType
(int nbBytes)¶
commonVariableDecl¶
-
public VariableDecl
commonVariableDecl
()¶
isBefore¶
-
public boolean
isBefore
(int offset2, boolean infiniteOffset2)¶ - Returns
true iff this AlignmentBoundary must appear strictly before location defined by “offset2” and “infiniteOffset2”
isBefore¶
-
public boolean
isBefore
(AlignmentBoundary otherBoundary)¶ - Returns
true iff this AlignmentBoundary must appear strictly before the given “otherBoundary”
isEqual¶
-
public boolean
isEqual
(int offset2, boolean infiniteOffset2)¶ - Returns
true iff this AlignmentBoundary has location defined by “offset2” and “infiniteOffset2”
isEqual¶
-
public boolean
isEqual
(AlignmentBoundary otherBoundary)¶ - Returns
true iff this AlignmentBoundary defines the same location as the given “otherBoundary”
le¶
-
protected static boolean
le
(int offset1, boolean infiniteOffset1, int offset2, boolean infiniteOffset2)¶ Comparison between 2 AlignmentBoundary’s.
- Returns
true iff offset1 is smaller than or equal to offset2, i.e. must appear before or with offset2 in the list of AlignmentBoundaries.
lt¶
-
protected static boolean
lt
(int offset1, boolean infiniteOffset1, int offset2, boolean infiniteOffset2)¶ Comparison between 2 AlignmentBoundary’s.
- Returns
true iff offset1 is strictly smaller than offset2, i.e. must appear before offset2 in the list of AlignmentBoundaries.
removeEndVar¶
-
public void
removeEndVar
(VariableDecl variableDecl)¶ Remove the given variableDecl from the variables that end here
removeStartVar¶
-
public void
removeStartVar
(VariableDecl variableDecl)¶ Remove the given variableDecl from the variables that start here
setCommonVariableDecl¶
-
public void
setCommonVariableDecl
(VariableDecl variableDecl)¶
startVarDecls¶
-
public TapList<VariableDecl>
startVarDecls
()¶