[all-commits] [llvm/llvm-project] 3cf24d: [LV] Complete load groups and release store groups...

annamthomas via All-commits all-commits at lists.llvm.org
Tue Aug 8 15:10:49 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3cf24dbbdde01386edc69919bbdaad6be2a822be
      https://github.com/llvm/llvm-project/commit/3cf24dbbdde01386edc69919bbdaad6be2a822be
  Author: Anna Thomas <anna at azul.com>
  Date:   2023-08-08 (Tue, 08 Aug 2023)

  Changed paths:
    M llvm/lib/Analysis/VectorUtils.cpp
    M llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-hoist-load-across-store.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-sink-store-across-load.ll
    A llvm/test/Transforms/LoopVectorize/interleaved-accesses-max-dependences.ll
    A llvm/test/Transforms/LoopVectorize/interleaved-accesses-use-after-free.ll

  Log Message:
  -----------
  [LV] Complete load groups and release store groups. Try 2.

This is a complete fix for CompleteLoadGroups introduced in
D154309. We need to check for dependency between A and every member of
the load Group of B.
This patch also fixes another miscompile seen when we incorrectly sink stores
below a depending load (see testcase in
interleaved-accesses-sink-store-across-load.ll). This is fixed by
releasing store groups correctly.

This change was previously reverted (e85fd3cbdd68) due to Asan failure with
use-after-free error. A testcase is added and the bug is fixed in this
version of the patch.

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




More information about the All-commits mailing list