[all-commits] [llvm/llvm-project] d871f4: [WebAssembly] Use DebugValueManager only when subp...

Heejin Ahn via All-commits all-commits at lists.llvm.org
Sat Jan 13 14:56:06 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d871f40deb7a7e6286b6d6b4476f6d30e444075e
      https://github.com/llvm/llvm-project/commit/d871f40deb7a7e6286b6d6b4476f6d30e444075e
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2024-01-13 (Sat, 13 Jan 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp
    M llvm/test/CodeGen/WebAssembly/cfg-stackify-dbg-skip.ll
    M llvm/test/DebugInfo/WebAssembly/dbg-value-move-clone.mir
    M llvm/test/DebugInfo/WebAssembly/dbg-value-reg-stackify.mir

  Log Message:
  -----------
  [WebAssembly] Use DebugValueManager only when subprogram exists (#77978)

We previously scanned the whole BB for `DBG_VALUE` instruction even when
the program doesn't have debug info, i.e., the function doesn't have a
subprogram associated with it, which can make compilation unnecessarily
slow. This disables `DebugValueManager` when a `DISubprogram` doesn't
exist for a function.

This only reduces unnecessary work in non-debug mode and does not change
output, so it's hard to add a test to test this behavior.

Test changes were necessary because their `DISubprogram`s were not
correctly linked with the functions, so with this PR the compiler
incorrectly assumed the functions didn't have a subprogram and the tests
started to fail.

Fixes https://github.com/emscripten-core/emscripten/issues/21048.




More information about the All-commits mailing list