harpoon.Analysis.Maps
Interface AllocationInformation.AllocationProperties
- All Known Implementing Classes:
- AllocationInformationMap.AllocationPropertiesImpl, ChainedAllocationProperties, MyAP
- Enclosing interface:
- AllocationInformation<HCE extends HCodeElement>
public static interface AllocationInformation.AllocationProperties
AllocationProperties
contains tests for the various
possibly properties of an allocation site. "Atomic" allocations
(of objects not containing interior pointers) can be done, as well
as stack allocation, thread-local allocation, and pre-thread-start
thread-local allocation. If none of these properties are true,
the object must be allocated in a global heap.
hasInteriorPointers
boolean hasInteriorPointers()
- Returns:
true
if the object allocated at this
site has interior pointers; that is, it is not a primitive
array, and some field in the allocated object is not primitive.
canBeStackAllocated
boolean canBeStackAllocated()
- Returns:
true
if the object can be allocated on
the stack; that is, the lifetime of the object does not
exceed the execution of the method containing the allocation.
canBeThreadAllocated
boolean canBeThreadAllocated()
- Returns:
true
if the object can be allocated on
a thread-local heap; that is, the lifetime of the object does
not exceed the lifetime of the thread object specified
by the allocationHeap
method.
makeHeap
boolean makeHeap()
- Returns:
true
if a thread-local heap should be
associated with this object --- typically this means that
the allocation site is a thread creation. If this is
true
and canBeThreadAllocated()
is also true
, then the new object will be
itself allocated on the created heap; otherwise the
new object will be globally allocated.
allocationHeap
Temp allocationHeap()
- Returns:
- a
Temp
which at the allocation site
contains a reference to either the thread object of a
thread-local allocation, or to another object whose lifetime
is correlated with that of the (not-yet-created) thread object.
Returns null
if the allocation should use the
heap associated with the "current" thread.
If this returns non-null
, then
makeHeap()
should return false
and
canBeThreadAllocated()
should return true
.
actualClass
HClass actualClass()
- Returns:
- the
HClass
representing the
"actual" or instantiated class of the object for which
memory is being allocated (as opposed to the declared
class).
noSync
boolean noSync()
setDynamicWBFlag
boolean setDynamicWBFlag()
- Returns:
true
if the dynamic write barrier
flag needs to be set when the object is allocated--this
typically means that one or more write barriers associated
with stores into the object created at this allocation site
have been optimistically removed.
getLabelOfPtrToMemoryChunk
Label getLabelOfPtrToMemoryChunk()
- Returns:
- a
Label
for a pointer that points (at
runtime) to a preallocated memory chunk to be used for
this allocation site. Returns null
if we
cannot preallocate this allocation site.
getUniqueID
int getUniqueID()
- Returns:
- an unique integer ID for the allocation site.
Useful for instrumentation purposes.