Abstract:
A method for generating a profile of a target program executed by a target data processing apparatus comprises performing at least one profile updating operation. Each profile updating operation includes identifying based on at least one waypoint marker indicating an outcome of a corresponding waypoint instruction of a target program, a next block of instructions executed by the target data processing apparatus during execution of the target program; determining whether a target entry for the next block of instructions is present in a profile cache; when the target entry is present updating the profile of the target program according to zero, one or more profile updating actions specified by the target entry. When the target entry is absent, any profile updating actions can be determined based on an instruction-by-instruction representation of the target program. This approach helps to speed up instruction-based summaries from program flow trace.
Abstract:
Trace circuitry 22, 6 forms trace objects 34 representing a sequence of executed program instructions and comprising a start address indicator indicating a start address of a sequence of executed program instructions, a branch outcome indicator indicating a sequence of branch outcomes within the sequence of executed program instructions starting from the start address and a count indicator indicating a count of times the sequence of branch outcomes was detected. The trace circuitry may be on-chip 22 or off-chip 6. A trace object may include an indicator of a start address of a next sequence of program instructions to be followed following the sequence of program instructions represented by the trace object concerned.