diff options
author | Alon Zakai <azakai@google.com> | 2020-06-17 08:06:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-17 08:06:17 -0700 |
commit | 251a68b603080c86cd417db4f02801510376b279 (patch) | |
tree | 3114ab97cb05d86102f1db8a7713928a9d6658dd /src/support/bits.cpp | |
parent | 139d0203d520ca589070ad5d5c2d8c08e7d96afe (diff) | |
download | binaryen-251a68b603080c86cd417db4f02801510376b279.tar.gz binaryen-251a68b603080c86cd417db4f02801510376b279.tar.bz2 binaryen-251a68b603080c86cd417db4f02801510376b279.zip |
Asyncify: Instrument indirect calls from functions in add-list or only-list (#2913)
When doing manual tuning of calls using asyncify lists, we want it to
be possible to write out all the functions that can be on the stack when
pausing, and for that to work. This did not quite work right with the
ignore-indirect option: that would ignore all indirect calls all the
time, so that if foo() calls bar() indirectly, that indirect call was
not instrumented (we didn't check for a pause around it), even if
both foo() and bar() were listed. There was no way to make that
work (except for not ignoring indirect calls at all).
This PR makes the add-list and only-lists fully instrument the functions
mentioned in them: both themselves, and indirect calls from them.
(Note that direct calls need no special handling - we can just add
the direct call target to the add-list or only-list.)
This may add some overhead to existing users, but only in a function
that is instrumented anyhow, and also indirect calls are slow anyhow,
so it's probably fine. And it is simpler to do it this way instead of
adding another list for indirect call handling.
Diffstat (limited to 'src/support/bits.cpp')
0 files changed, 0 insertions, 0 deletions