public class HotSpot extends Object
HotSpot is defined as being an interesting Instruction, and all the Instructions before it, that has a total stack usage of 0.
If the interesting Instruction has a positive or zero stack usage, HotSpot is defined as being that single Instruction.
NOTE: We might change this definition to be exactly zero stack usage
For invocation, this would be
Constructor and Description |
---|
HotSpot(InstructionList il,
Instruction ins)
Create new hotspot for a single Instruction.
|
HotSpot(InstructionList il,
Instruction start,
Instruction end)
Create new hotspot.
|
Modifier and Type | Method and Description |
---|---|
InstructionList |
getArgumentList()
Get the InstructionList that represents arguments of this hotspot.
|
Instruction |
getHotSpotInstruction()
Get the Instruction, that was used to trigger creation of this HotSpot.
|
InstructionList |
getInstructionList()
Get the InstructionList that represents this hotspot.
|
String |
getName()
Gets the name of this HotSpot.
|
public HotSpot(InstructionList il, Instruction ins)
il
- InstructionList that contains hotspotins
- An Instruction, that makes up this hotspotpublic HotSpot(InstructionList il, Instruction start, Instruction end)
il
- InstructionList that contains hotspot.start
- First instruction of the hotspotend
- Last instruction of the hotspotpublic InstructionList getInstructionList()
public InstructionList getArgumentList()
InstructionList returned is a view to underlying list. All the modifications made to view, is reflected back to underlying list.
public Instruction getHotSpotInstruction()
getInstructionList().get(il.size() - 1);
public String getName()
For example, for
invokevirtual java.io.PrintStream.println(Ljava/lang/String;)V
void java.io.PrintStream.println(java.lang.String)
is
returned
For field accesses, name of the hotspot is
class-name.field-name
For the rest of the hotspots, an empty String is returned.
Copyright © 2017. All rights reserved.