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

Florian Hahn via All-commits all-commits at lists.llvm.org
Thu Feb 6 04:43:21 PST 2020


  Branch: refs/heads/release/10.x
  Home:   https://github.com/llvm/llvm-project
  Commit: c0c5ab30179897944cf44efac1c743e5344924db
      https://github.com/llvm/llvm-project/commit/c0c5ab30179897944cf44efac1c743e5344924db
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-02-06 (Thu, 06 Feb 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

(cherry picked from commit f14f2a856802e086662d919e2ead641718b27555)




More information about the All-commits mailing list