[PATCH] D71175: [DebugInfo][SelectionDAG] Change order while transferring SDDbgValue to another node

Kristina Bessonova via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 11 08:49:36 PST 2019


krisb added a comment.

@aprantl, @djtodoro thanks! I reduced the test a bit more.

@jmorse, thanks for pointing on this!

I found a couple of dozens of cases building clang where this patch causes SelectionDAG::transferDbgValues() to move processed debug value past another debug value of the same variable and I'm going to investigate them in details but it can take some time.

For now, I think we could conservatively let such debug values be on their places not changing their order (although it doesn't seem necessarily correct) and add corresponding TODO or FIXME note for further investigation.

It looks easy to check if a debug value gets moved past any others of the same variable: just to iterate over SDDbgValues and to find one that in-between From and To by their order. But there is one issue I faced that seems weird to me. I'd expect that a node should get an order that is greater than orders of its operands, but after DAGCombiner it's not true. I found lots of cases where a node has an order less than its operands. Do you know is it expected behavior?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71175





More information about the llvm-commits mailing list