Open moralismercatus opened 9 years ago
I'm not entirely sure this is a problem.
If the test case generated in a helper function impacts the program flow, then the subsequent flow will change the trace log that the trace graph uses, and the trace will not be rejected.
Normally, I'd say that even helper calls constitute a "single instruction," and that is sufficient for control flow, but SSE seems to be an exception. Take the case of comparing two strings.
Now, not using SSE, the control flow would be represented in the TBs required to carry out the comparison. With SSE, I'm not sure that this control flow information is present. In fact, when I turn on filter-traces, it appears that it's not present.
Case in point: ops_sse.h helper function calls.
The trace graph builds its graph via TB pc values. Since calls to helper functions are external to TBs, any paths therein are excluded, and the trace is subsequently seen as redundant and rejected.