[all-commits] [llvm/llvm-project] 0f40d7: LAA cannot vectorize lib calls like modf/modff

Paschalis Mpeis via All-commits all-commits at lists.llvm.org
Thu Apr 11 01:52:31 PDT 2024


  Branch: refs/heads/users/paschalis-mpeis/laa-vectorize-modf
  Home:   https://github.com/llvm/llvm-project
  Commit: 0f40d7c68220ffdd6f552971fb92e19ed16910e3
      https://github.com/llvm/llvm-project/commit/0f40d7c68220ffdd6f552971fb92e19ed16910e3
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    A clang/test/CodeGen/aarch64-veclib-function-calls-linear-ptrs.c

  Log Message:
  -----------
  LAA cannot vectorize lib calls like modf/modff

Functions like modf/modff are math lib calls that set memory write-only
attribute. Given that a target has vectorized mappings, LAA should allow
vectorization.


  Commit: a637417464e4d2106f7423614809feda0418e428
      https://github.com/llvm/llvm-project/commit/a637417464e4d2106f7423614809feda0418e428
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/aarch64-veclib-function-calls-linear-ptrs.c
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp

  Log Message:
  -----------
  [LV][LAA] Vectorize math lib calls with mem write-only attribute

Teach LAA to consider safe specific math lib calls which are known to
have set the memory write-only attribute. Those attributes are set to
calls by inferNonMandatoryLibFuncAttrs, in BuildLibCalls.cpp, and the
current ones are modf/modff and frexp/frexpf.

This happens only when the calls are found through TLI to have
vectorized counterparts.


  Commit: 7641877bc9f0477e6a1368945a6319dd733fb054
      https://github.com/llvm/llvm-project/commit/7641877bc9f0477e6a1368945a6319dd733fb054
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp

  Log Message:
  -----------
  Add check for the 'memory(argmem: write)' attribute.


  Commit: bbcd110e7583c649c24fc076211a2bd77b4ad8e5
      https://github.com/llvm/llvm-project/commit/bbcd110e7583c649c24fc076211a2bd77b4ad8e5
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/aarch64-veclib-function-calls-linear-ptrs.c
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp

  Log Message:
  -----------
  Addressing reviewers


  Commit: e9a035383c73df5400aa18c035e3949588e9ffc3
      https://github.com/llvm/llvm-project/commit/e9a035383c73df5400aa18c035e3949588e9ffc3
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/aarch64-veclib-function-calls-linear-ptrs.c

  Log Message:
  -----------
  Rebased and updated test after PR #80296 merged to main


  Commit: 00a39d5faec4cc8c2df3ab757c5ebc1beee5a66a
      https://github.com/llvm/llvm-project/commit/00a39d5faec4cc8c2df3ab757c5ebc1beee5a66a
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    R clang/test/CodeGen/aarch64-veclib-function-calls-linear-ptrs.c
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    A llvm/test/Analysis/LoopAccessAnalysis/attr-mem-write-only.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/veclib-function-calls-linear-ptrs.ll

  Log Message:
  -----------
  Added LAA and LV tests

Removed C test.
Code rebased on top of patch that enables mappings for modf/modff
(among others).


Compare: https://github.com/llvm/llvm-project/compare/513ba7ad5ee6...00a39d5faec4

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list