avrora.sim.util
Class ProgramProfiler

java.lang.Object
  extended byavrora.sim.util.ProgramProfiler
All Implemented Interfaces:
Simulator.Probe

public class ProgramProfiler
extends java.lang.Object
implements Simulator.Probe

The ProgramProfiler class implements a probe that can be used to profile pieces of the program or the whole program. It maintains a simple array of long that stores the count for every instruction.

See Also:
Counter

Field Summary
 long[] icount
          The icount field stores the invocation count for each instruction in the program.
 Program program
          The program field stores a reference to the program being profiled.
 
Constructor Summary
ProgramProfiler(Program p)
          The constructor for the program profiler constructs the required internal state to store the invocation counts of each instruction.
 
Method Summary
 void fireAfter(Instr i, int address, State state)
          The fireAfter() method is called after the probed instruction executes.
 void fireBefore(Instr i, int address, State state)
          The fireBefore() method is called before the probed instruction executes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

program

public final Program program
The program field stores a reference to the program being profiled.


icount

public final long[] icount
The icount field stores the invocation count for each instruction in the program. It is indexed by byte addresses. Thus icount[addr] corresponds to the invocation for the instruction at program.getInstr(addr).

Constructor Detail

ProgramProfiler

public ProgramProfiler(Program p)
The constructor for the program profiler constructs the required internal state to store the invocation counts of each instruction.

Parameters:
p - the program to profile
Method Detail

fireBefore

public void fireBefore(Instr i,
                       int address,
                       State state)
The fireBefore() method is called before the probed instruction executes. In the implementation of the program profiler, it simply increments the count of the instruction at the specified address.

Specified by:
fireBefore in interface Simulator.Probe
Parameters:
i - the instruction being probed
address - the address at which this instruction resides
state - the state of the simulation

fireAfter

public void fireAfter(Instr i,
                      int address,
                      State state)
The fireAfter() method is called after the probed instruction executes. In the implementation of the profiler, it does nothing.

Specified by:
fireAfter in interface Simulator.Probe
Parameters:
i - the instruction being probed
address - the address at which this instruction resides
state - the state of the simulation