[all-commits] [llvm/llvm-project] 59029b: [RS4GC] Handle uses of extractelement for conversi...

annamthomas via All-commits all-commits at lists.llvm.org
Fri Mar 6 13:28:58 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 59029b9eef23c72d904f9a6b182c5cd4402a69c5
      https://github.com/llvm/llvm-project/commit/59029b9eef23c72d904f9a6b182c5cd4402a69c5
  Author: Anna Thomas <anna at azul.com>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
    M llvm/test/Transforms/RewriteStatepointsForGC/scalar-base-vector.ll

  Log Message:
  -----------
  [RS4GC] Handle uses of extractelement for conversion from vector to scalar base

As mentioned in the comments, extractelement is special
since we actually want a scalar base for that element we extracted from
the vector (i.e. not a vector base).
This same logic should apply to uses of the extractelement such as phis
and selects which have the same BDV as the extractelement.
Howeber, for these uses we conservatively mark the BDV state as
conflict, since setting the EE's new base BDV does not always dominate
these uses.

Added testcase showcases the problem where the BDV identification chokes
on the incorrect cast from vector to scalar for the phi use of
extractelement.

Tests-Run: make check, internal fuzzer testing

Reviewers: reames, skatkov, dantrushin
Reviewed-By: dantrushin

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




More information about the All-commits mailing list