> I am not sure to understand how you will differentiate the above
> if (a > 0)
> b = a;
> else
> b = 0;
>
> from
> if (a > 0) {
> b = a;
> launch_all_missiles();
> } else
> b = 0;
Because the first paragraph is equivalent to "b = max(0, a);"
which has relatively simple semantics, but the second paragraph is not.
As I pointed out to the list 2 days ago, if the x86* code is:
mov $0, r_b
cmp $0, r_a
cmovg r_a, r_b # conditional move if > 0; r_a to r_b
then it is somewhat easy to convince VEX to set state(b) = state(a)
without complaint (when condition code bits indicate > 0.)
If the compiled code uses explicit branching, then probably it's hard.
Quite a few analysis tools (covering either software or hardware!)
have [have had] difficulty with re-convergent fan out.
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users