[PATCH] D86183: [NFC][DAGCombine] Remove dead node when it is created by getNegatedExpression

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 20 05:13:52 PDT 2020


spatel added a comment.

In D86183#2227988 <https://reviews.llvm.org/D86183#2227988>, @qiucf wrote:

> The original test case is too big to get something useful. I happened to grab a basic block from it. It's not small enough to be a test, but it would be much easier to analyze: https://reviews.llvm.org/P8230

The test shows that we are not actually infinite looping; we are exponentially increasing compile time with each additional set of FMA combines.

If I limit the live code in the test by changing the final store from "store float %288, float* %80, align 4" and time it:

  store float %233, float* %80, align 4 --> "time llc" --> user 0m30.640s
  store float %229, float* %80, align 4 --> "time llc" --> user 0m19.956s
  store float %224, float* %80, align 4 --> "time llc" --> user 0m10.881s
  store float %217, float* %80, align 4 --> "time llc" --> user 0m5.750s

I don't know if that changes the solution or the potential test. Maybe we could add or check some debug statement to track the number of nodes created?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86183



More information about the llvm-commits mailing list