summaryrefslogtreecommitdiff
path: root/src/support/bits.cpp
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2020-06-17 08:06:17 -0700
committerGitHub <noreply@github.com>2020-06-17 08:06:17 -0700
commit251a68b603080c86cd417db4f02801510376b279 (patch)
tree3114ab97cb05d86102f1db8a7713928a9d6658dd /src/support/bits.cpp
parent139d0203d520ca589070ad5d5c2d8c08e7d96afe (diff)
downloadbinaryen-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