[PATCH] D91722: [DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands

Wenlei He via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 26 08:16:27 PDT 2021


wenlei added a comment.

In D91722#2781418 <https://reviews.llvm.org/D91722#2781418>, @StephenTozer wrote:

> In D91722#2781128 <https://reviews.llvm.org/D91722#2781128>, @wenlei wrote:
>
>> We're seeing a pathological case with 36ec97f76ac0d8be76fb16ac521f55126766267d <https://reviews.llvm.org/rG36ec97f76ac0d8be76fb16ac521f55126766267d> (3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands).
>
> I didn't encounter any such cases while testing this patch, but it's certainly possible for it to occur. Personally, I think the best approach for this is to impose a limit on the number of args that can be added to a DIArgList by salvaging - it's clear that it is not feasible to salvage everywhere we possibly can. I think that a max of 32 is probably a reasonable amount, but if you have a reproducer for this issue I can do some performance testing myself to more accurately determine a sensible limit.
>
> I do believe that InstCombine also has a problem with massively inflating the number of debug intrinsics in a function; the slowdown factor you're seeing is probably the product of these two factors.

The case we hit is from an internal codebase. Thanks for the fix in D103162 <https://reviews.llvm.org/D103162>. I will try 16 and 32 as the limit and report back there.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91722/new/

https://reviews.llvm.org/D91722



More information about the llvm-commits mailing list