[all-commits] [llvm/llvm-project] 49da20: Revert 30e8f80fd5a4 "[DebugInfo] Don't create mult...

Hans via All-commits all-commits at lists.llvm.org
Tue Dec 10 10:20:41 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 49da20ddb4319f3f469499e341a1bc3101adcdcf
      https://github.com/llvm/llvm-project/commit/49da20ddb4319f3f469499e341a1bc3101adcdcf
  Author: Hans Wennborg <hans at chromium.org>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:
    M llvm/lib/CodeGen/MachineSink.cpp
    M llvm/test/DebugInfo/MIR/X86/machinesink.mir

  Log Message:
  -----------
  Revert 30e8f80fd5a4 "[DebugInfo] Don't create multiple DBG_VALUEs when sinking"

This caused non-determinism in the compiler, see command on the Phabricator
code review.

> This patch addresses a performance problem reported in PR43855, and
> present in the reapplication in in 001574938e5. It turns out that
> MachineSink will (often) move instructions to the first block that
> post-dominates the current block, and then try to sink further. This
> means if we have a lot of conditionals, we can needlessly create large
> numbers of DBG_VALUEs, one in each block the sunk instruction passes
> through.
>
> To fix this, rather than immediately sinking DBG_VALUEs, record them in
> a pass structure. When sinking is complete and instructions won't be
> sunk any further, new DBG_VALUEs are added, avoiding lots of
> intermediate DBG_VALUE $noregs being created.
>
> Differential revision: https://reviews.llvm.org/D70676




More information about the All-commits mailing list