public abstract class ReflectionGetCallerClassNode extends MacroNode implements Canonicalizable, Lowerable
MacroNode.MacroParamsNode.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Ternary<T extends Node>, Canonicalizable.Unary<T extends Node>MemoryKill.NoLocation| Modifier and Type | Field and Description |
|---|---|
static NodeClass<ReflectionGetCallerClassNode> |
TYPE |
arguments, bci, callerMethod, invokeKind, returnStamp, stateAfter, targetMethodnextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Modifier | Constructor and Description |
|---|---|
protected |
ReflectionGetCallerClassNode(NodeClass<? extends ReflectionGetCallerClassNode> c,
MacroNode.MacroParams p) |
| Modifier and Type | Method and Description |
|---|---|
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
protected abstract boolean |
ignoredBySecurityStackWalk(MetaAccessProvider metaAccess,
ResolvedJavaMethod method) |
protected abstract boolean |
isCallerSensitive(ResolvedJavaMethod method) |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
afterClone, bci, createInvoke, getArguments, getContextMethod, getInvokeKind, getKilledLocationIdentity, getLocationIdentity, getTargetMethod, hasSideEffect, inferStamp, replaceWithInvoke, setStateAfter, stateAfter, toArgumentArray, verifyStampasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceapplyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitasNodeassertArgumentCount, getArgument, getArgumentCount, lowerReplacement, setBciasFixedNodeOrNull, updateInliningLogAfterClone, updateInliningLogAfterRegisterstatesasFixedNodeasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillpublic static final NodeClass<ReflectionGetCallerClassNode> TYPE
protected ReflectionGetCallerClassNode(NodeClass<? extends ReflectionGetCallerClassNode> c, MacroNode.MacroParams p)
public Node canonical(CanonicalizerTool tool)
Canonicalizablenull will delete the current node and replace it with null at
all usages. Note that it is not necessary to delete floating nodes that have no more usages
this way - they will be deleted automatically.canonical in interface Canonicalizabletool - provides access to runtime interfaces like MetaAccessProviderpublic void lower(LoweringTool tool)
Lowerablelower in interface Lowerablelower in interface MacroInvokableprotected abstract boolean isCallerSensitive(ResolvedJavaMethod method)
protected abstract boolean ignoredBySecurityStackWalk(MetaAccessProvider metaAccess,
ResolvedJavaMethod method)