summaryrefslogtreecommitdiff
path: root/src/shell-interface.h
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-11-07 00:43:29 +0100
committerGitHub <noreply@github.com>2023-11-06 15:43:29 -0800
commitba2ebea5fbd4fef2c95e234198cb3edec68eb8f5 (patch)
treeb0f6612d7270b4b3f9bd0d36ab3b33b715ee3f90 /src/shell-interface.h
parente3d27166370da202bef6c012014604beac41d43f (diff)
downloadbinaryen-ba2ebea5fbd4fef2c95e234198cb3edec68eb8f5.tar.gz
binaryen-ba2ebea5fbd4fef2c95e234198cb3edec68eb8f5.tar.bz2
binaryen-ba2ebea5fbd4fef2c95e234198cb3edec68eb8f5.zip
Update CFGWalker to generate consolidated exit blocks (#6079)
Previously CFGWalker designated a particular block as the "exit" block, but it was just the block that happened to appear at the end of the function that returned values by implicitly flowing them out. That exit block was not tied in any way to other blocks that might end in returns, so analyses that needed to perform some action at the end of the function would have had to perform that action at the end of the designated exit block but also separately at any return instruction. Update CFGWalker to make the exit block a synthetic empty block that is a successor of all other blocks tthat implicitly or explicitly return from the function in case there are multiple such blocks, or to make the exit block the single returning block if there is only one. This means that analyses will only perform their end-of-function actions at the end of the exit block rather than additionally at every return instruction.
Diffstat (limited to 'src/shell-interface.h')
0 files changed, 0 insertions, 0 deletions