[all-commits] [llvm/llvm-project] f14f2a: [LV] Fix predication for branches with matching tr...

Florian Hahn via All-commits all-commits at lists.llvm.org
Wed Jan 22 18:35:19 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f14f2a856802e086662d919e2ead641718b27555
      https://github.com/llvm/llvm-project/commit/f14f2a856802e086662d919e2ead641718b27555
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-01-22 (Wed, 22 Jan 2020)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    A llvm/test/Transforms/LoopVectorize/pr44488-predication.ll

  Log Message:
  -----------
  [LV] Fix predication for branches with matching true and false succs.

Currently due to the edge caching, we create wrong predicates for
branches with matching true and false successors. We will cache the
condition for the edge from the true successor, and then lookup the same
edge (src and dst are the same) for the edge to the false successor.

If both successors match, the condition should always be true. At the
moment, we cannot really create constant VPValues, but we can just
create a true condition as X | !X. Later passes will clean that up.

Fixes PR44488.

Reviewers: rengolin, hsaito, fhahn, Ayal, dorit, gilr

Reviewed By: Ayal

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




More information about the All-commits mailing list