[all-commits] [llvm/llvm-project] 4f5da3: [NewGVN] Track simplification dependencies for phi...

Florian Hahn via All-commits all-commits at lists.llvm.org
Fri Apr 23 01:49:36 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4f5da356ff35a218f23f0b0c4d08aee90da7de6e
      https://github.com/llvm/llvm-project/commit/4f5da356ff35a218f23f0b0c4d08aee90da7de6e
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-23 (Fri, 23 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/NewGVN.cpp
    A llvm/test/Transforms/NewGVN/phi-of-ops-simplification-dependencies.ll

  Log Message:
  -----------
  [NewGVN] Track simplification dependencies for phi-of-ops.

If we are using a simplified value, we need to add an extra
dependency this value , because changes to the class of the
simplified value may require us to invalidate any decision based on
that value.

This is done by adding such values as additional users, however the
current code does not excludes temporary instructions.

At the moment, this means that we miss those dependencies for
phi-of-ops, because they are temporary instructions at this point. We
instead need to add the extra dependencies to the root instruction of
the phi-of-ops.

This patch pushes the responsibility of adding extra users to the
callers of createExpression & performSymbolicEvaluation. At those
points, it is clearer which real instruction to pick.

Alternatively we could either pass the 'real' instruction as additional
argument or use another map, but I think the approach in the patch makes
things a bit easier to follow.

Fixes PR35074.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D99987




More information about the All-commits mailing list