[all-commits] [llvm/llvm-project] ef884e: [rs4gc] don't force a conflict for a canonical bro...

Philip Reames via All-commits all-commits at lists.llvm.org
Tue Mar 16 12:59:27 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ef884e155da7a46225f3441faa45d6d9e4249f8d
      https://github.com/llvm/llvm-project/commit/ef884e155da7a46225f3441faa45d6d9e4249f8d
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-16 (Tue, 16 Mar 2021)

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

  Log Message:
  -----------
  [rs4gc] don't force a conflict for a canonical broadcast

A broadcast is a shufflevector where only one input is used. Because of the way we handle constants (undef is a constant), the canonical shuffle sees a meet of (some value) and (nullptr). Given this, every broadcast gets treated as a conflict and a new base pointer computation is added.

The other way to tackle this would be to change constant handling specifically for undefs, but this seems easier.

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




More information about the All-commits mailing list