diff options
author | Heejin Ahn <aheejin@gmail.com> | 2025-07-22 15:34:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-22 15:34:23 -0700 |
commit | b13bca7387a7aad6eaf3fa1c55bd06fe091f65ed (patch) | |
tree | 000969e848f5b891a91c9655854ede35e1fa6d42 /llvm/lib/CodeGen/StackProtector.cpp | |
parent | 5ecb58058d4578dd96e41fd038cf9d985a77d7aa (diff) | |
download | llvm-b13bca7387a7aad6eaf3fa1c55bd06fe091f65ed.zip llvm-b13bca7387a7aad6eaf3fa1c55bd06fe091f65ed.tar.gz llvm-b13bca7387a7aad6eaf3fa1c55bd06fe091f65ed.tar.bz2 |
[WebAssembly] Unstackify registers with no uses in ExplicitLocals (#149626)
There are cases we end up removing some intructions that use stackified
registers after RegStackify. For example,
```wasm
bb.0:
%0 = ... ;; %0 is stackified
br_if %bb.1, %0
bb.1:
```
In this code, br_if will be removed in CFGSort, so we should unstackify
%0 so that it can be correctly dropped in ExplicitLocals.
Rather than handling this in case-by-case basis, this PR just
unstackifies all stackifies register with no uses in the beginning of
ExplicitLocals, so that they can be correctly dropped.
Fixes #149097.
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
0 files changed, 0 insertions, 0 deletions