[all-commits] [llvm/llvm-project] bc1148: [PATCH] D73727: [SLP] drop poison-generating flags...

RotateRight via All-commits all-commits at lists.llvm.org
Fri Jan 31 06:57:12 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: bc1148e7bcb0448d765aff9078d480ff1905ea1b
      https://github.com/llvm/llvm-project/commit/bc1148e7bcb0448d765aff9078d480ff1905ea1b
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-01-31 (Fri, 31 Jan 2020)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal.ll
    M llvm/test/Transforms/SLPVectorizer/X86/remark_horcost.ll
    M llvm/test/Transforms/SLPVectorizer/X86/scheduling.ll

  Log Message:
  -----------
  [PATCH] D73727: [SLP] drop poison-generating flags for shuffle reduction ops (PR44536)

We may calculate reassociable math ops in arbitrary order when creating a shuffle reduction,
so there's no guarantee that things like 'nsw' hold on those intermediate values. Drop all
poison-generating flags for safety.

This change is limited to shuffle reductions because I don't think we have a problem in the
general case (where we intersect flags of each scalar op that goes into a vector op), but if
there's evidence of other cases being wrong, we can extend this fix to cover those cases.

https://bugs.llvm.org/show_bug.cgi?id=44536

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




More information about the All-commits mailing list