The emitter that targets Wizard for instrumentation could emit a Wasm module that specifies where a probe should be attached to a program by placing the pattern matching rule in the name of a function export.
All exported functions are these pattern matching rules, e.g.:
Wizard will read this in and run the pattern matching rules to find all places in the program to call func 0.
This means that the predicate needs to be split out to have static predication in the export name and dynamic predication in the func 0 instructions!
The
emitter
that targets Wizard for instrumentation could emit a Wasm module that specifies where a probe should be attached to a program by placing the pattern matching rule in the name of a functionexport
. All exported functions are these pattern matching rules, e.g.:Wizard will read this in and run the pattern matching rules to find all places in the program to call func 0. This means that the predicate needs to be split out to have static predication in the
export
name and dynamic predication in thefunc 0
instructions!