-
Notifications
You must be signed in to change notification settings - Fork 57
Description
The implicit_return mode information included in format 0/1/2 packets (specifically, the irdepth field) does not produce correct trace decoding in many cases.
Reporting the current stack depth is helpful for decoding recursive functions, but provides no information about the number of functions successfully executed previously. The decoder does not need to know the current stack depth - it needs to know the total number of function returns that were not explicitly reported.
This is a longstanding bug in the E-trace 2.0 spec. Regrettably, implicit return was not validated end to end (encode and decode) before ratification.
Spec update, including revised decoder pseudo-code that includes implicit return as well as branch predictor and jump target cache support for the 1st time here: #253