-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Commit 2b5e239
Auto merge of #144225 - purplesyringa:unwinding-intrinsics, r=nikic
Don't special-case llvm.* as nounwind
Certain LLVM intrinsics, such as `llvm.wasm.throw`, can unwind. Marking them as nounwind causes us to skip cleanup of locals and optimize out `catch_unwind` under inlining or when `llvm.wasm.throw` is used directly by user code.
The motivation for forcibly marking llvm.* as nounwind is no longer present: most intrinsics are linked as `extern "C"` or other non-unwinding ABIs, so we won't codegen `invoke` for them anyway.
Closes #132416.
`@rustbot` label +T-compiler +A-panicFile tree
3 files changed
+25
-10
lines changed- compiler/rustc_codegen_ssa/src
- library/stdarch/crates/core_arch/src/wasm32
- tests/codegen-llvm
3 files changed
+25
-10
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
511 | 511 |
| |
512 | 512 |
| |
513 | 513 |
| |
514 | - | ||
515 | - | ||
516 | - | ||
517 | - | ||
518 | - | ||
519 | - | ||
520 | - | ||
521 | - | ||
522 | - | ||
523 | 514 |
| |
524 | 515 |
| |
525 | 516 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
191 | 191 |
| |
192 | 192 |
| |
193 | 193 |
| |
194 | + | ||
195 | + | ||
196 | + | ||
197 | + | ||
198 | + | ||
199 | + | ||
200 | + | ||
201 | + | ||
202 | + | ||
203 | + | ||
194 | 204 |
| |
195 | 205 |
| |
196 | 206 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2 | 2 |
| |
3 | 3 |
| |
4 | 4 |
| |
5 | - | ||
5 | + | ||
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
| |||
57 | 57 |
| |
58 | 58 |
| |
59 | 59 |
| |
60 | + | ||
61 | + | ||
62 | + | ||
63 | + | ||
64 | + | ||
65 | + | ||
66 | + | ||
67 | + | ||
68 | + | ||
69 | + | ||
70 | + | ||
71 | + | ||
72 | + | ||
73 | + |
0 commit comments