Events should be able to have constraints attached to them - a motivating example is deciding which branch is taken.
A constraint will essentially be expressing that a particular LLVM IR value was found to be truthy or falsy (so that a branch was triggered).
Once we have constraints, some analysis on these can then be done (like computing the set of all constraints that need to be true at a particular event).
Events should be able to have constraints attached to them - a motivating example is deciding which branch is taken.
A constraint will essentially be expressing that a particular LLVM IR value was found to be truthy or falsy (so that a branch was triggered).
Once we have constraints, some analysis on these can then be done (like computing the set of all constraints that need to be true at a particular event).