The intel PIN manual (section Memory Reference Trace) says:
We also use
INS_InsertPredicatedCall
instead ofINS_InsertCall
to avoid generating references to instructions that are predicated when the predicate is false see here.
_
When the instruction has a predicate and the predicate is false, the analysis function is not called see here.
If I want to analyze all instructions that are actually executed, which of the two shall I pick?
I assume INS_InsertPredicatedCall
but I am not sure because I have seen INS_InsertCall
more often. But why would somebody use it, i.e., why would somebody want to analyze instructions
that are predicated when the predicate is false
? Maybe a minimal example of how the two functions lead to different results would be helpful here...