diff options
author | Heejin Ahn <aheejin@gmail.com> | 2019-03-13 00:37:31 +0000 |
---|---|---|
committer | Heejin Ahn <aheejin@gmail.com> | 2019-03-13 00:37:31 +0000 |
commit | 8b49b6bed6e922b6f5474db0f3841b31cf77f3cd (patch) | |
tree | aec72514d6ad9d25f955b33f52687bb93e1221bb /lldb/packages/Python/lldbsuite/test/python_api | |
parent | 72db2abcc794feccfb482d4ae9e500c91c8bcb45 (diff) | |
download | bcm5719-llvm-8b49b6bed6e922b6f5474db0f3841b31cf77f3cd.tar.gz bcm5719-llvm-8b49b6bed6e922b6f5474db0f3841b31cf77f3cd.zip |
[WebAssembly] Place 'try' and 'catch' correctly wrt EH_LABELs
Summary:
After instruction selection phase, possibly-throwing calls, which were
previously invoke, are wrapped in `EH_LABEL` instructions. For example:
```
EH_LABEL <mcsymbol .Ltmp0>
CALL_VOID @foo ...
EH_LABEL <mcsymbol .Ltmp1>
```
`EH_LABEL` is placed also in the beginning of EH pads:
```
bb.1 (landing-pad):
EH_LABEL <mcsymbol .Ltmp2>
...
```
And we'd like to maintian this relationship, so when we place a `try`,
```
TRY ...
EH_LABEL <mcsymbol .Ltmp0>
CALL_VOID @foo ...
EH_LABEL <mcsymbol .Ltmp1>
```
When we place a `catch`,
```
bb.1 (landing-pad):
EH_LABEL <mcsymbol .Ltmp2>
%0:except_ref = CATCH ...
...
```
Previously we didn't treat EH_LABELs specially, so `try` was placed
right before a call, and `catch` was placed in the beginning of an EH
pad.
Reviewers: dschuff
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D58914
llvm-svn: 355996
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api')
0 files changed, 0 insertions, 0 deletions