[all-commits] [llvm/llvm-project] da0ca5: [WebAssembly] Define local sp if `llvm.stacksave` ...

Yuta Saito via All-commits all-commits at lists.llvm.org
Tue Oct 3 14:51:48 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: da0ca5dee489aa46ca7f10237aa0dfa01f9b43ea
      https://github.com/llvm/llvm-project/commit/da0ca5dee489aa46ca7f10237aa0dfa01f9b43ea
  Author: Yuta Saito <ysaito22 at apple.com>
  Date:   2023-10-03 (Tue, 03 Oct 2023)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
    M llvm/test/CodeGen/WebAssembly/userstack.ll

  Log Message:
  -----------
  [WebAssembly] Define local sp if `llvm.stacksave` is used (#68133)

Usually `llvm.stacksave/stackrestore` are used together with `alloca`
but they can appear without it (e.g. `alloca` can be optimized away).
WebAssembly's function local physical user sp register, which is
referenced by `llvm.stacksave` is created while frame lowering and
replaced with virtual register.
However the sp register was not created when `llvm.stacksave` is used
without `alloca`, and it led MIR verification failure about
use-before-def of sp virtual register.

Resolves https://github.com/llvm/llvm-project/issues/62235




More information about the All-commits mailing list