[all-commits] [llvm/llvm-project] 9c978c: [coroutines] Use DILocation from new storage for h...

Wei Wang via All-commits all-commits at lists.llvm.org
Tue Jan 2 09:54:30 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9c978c94187511326627c34fb04c57f853c488fc
      https://github.com/llvm/llvm-project/commit/9c978c94187511326627c34fb04c57f853c488fc
  Author: Wei Wang <apollo.mobility at gmail.com>
  Date:   2024-01-02 (Tue, 02 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    A llvm/test/Transforms/Coroutines/coro-debug-frame-variable-O1.ll
    M llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll

  Log Message:
  -----------
  [coroutines] Use DILocation from new storage for hoisted dbg.declare (#75402)

Make the hoisted dbg.declare inherent the DILocation scope from the new
storage.

After hoisting, the dbg.declare is moved into the block that defines the
new storage. This could create an inconsistency in the debug location
scope hierarchy where the scope of hoisted dbg.declare (i.e.
DILexicalBlock) is enclosed with the scope of the block (i.e.
DISubprogram). This confuses LiveDebugValues pass to think that the
hoisted dbg.declare is killed in that block and does not generate
DBG_VALUE in other blocks. Debugger won't be able to track its value
anymore.

We do this for unoptimized binary only.




More information about the All-commits mailing list