[all-commits] [llvm/llvm-project] 263bc7: [LoadStoreVectorizer] Only upgrade align for alloca

Björn Pettersson via All-commits all-commits at lists.llvm.org
Fri Jun 9 06:34:24 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 263bc7f905c7f354cb80403c0b2754cf8880d1b7
      https://github.com/llvm/llvm-project/commit/263bc7f905c7f354cb80403c0b2754cf8880d1b7
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2023-06-09 (Fri, 09 Jun 2023)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
    M llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/adjust-alloca-alignment.ll
    A llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/dont-adjust-globalobj-alignment.ll

  Log Message:
  -----------
  [LoadStoreVectorizer] Only upgrade align for alloca

In commit 2be0abb7fe72ed453 (D149893) the load store vectorized was
reimplemented. One thing that can happen with the new LSV is that
it can increase the align of alloca and global objects. However,
the code comments indicate that the intention only was to increase
alignment of alloca.
Now we will use stripPointerCasts to analyse if the load/store really
is accessing an alloca (same as getOrEnforceKnownAlignment is using).
And then we only try to change the align if we find an alloca
instruction. This way the code will match better with code comments,
and we won't change alignment of non-stack variables to use the
"StackAdjustedAlignment".

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


  Commit: 8813c1087e5e548f64905c057a2e7e1f48a5cce5
      https://github.com/llvm/llvm-project/commit/8813c1087e5e548f64905c057a2e7e1f48a5cce5
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2023-06-09 (Fri, 09 Jun 2023)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/X86/schedule_budget.ll

  Log Message:
  -----------
  [SLP] Update X86/schedule_budget.ll test case to show budget impact

The comments and the checks in
  test/Transforms/SLPVectorizer/X86/schedule_budget.ll
did not match. After commit 352c46e70716061e99 the vectorization
has happened also with the reduced budget.

This patch is supposed to restore the original intention with the
test case (the one described in the comments). We want to see
that a restricted budget may reduce the amount of vectorization (i.e.
verifying that the -slp-schedule-budget option makes a difference),
while a higher budget still result in vectorization.

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


Compare: https://github.com/llvm/llvm-project/compare/5acac7db6e71...8813c1087e5e


More information about the All-commits mailing list