[all-commits] [llvm/llvm-project] 3e0c51: [OpenMP] Simplify all stores in the device code

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Tue Dec 28 22:21:59 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3e0c512ce6cec6d7b83b87c49697adf5a67e4196
      https://github.com/llvm/llvm-project/commit/3e0c512ce6cec6d7b83b87c49697adf5a67e4196
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2021-12-29 (Wed, 29 Dec 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/custom_state_machines.ll
    M llvm/test/Transforms/OpenMP/spmdization.ll
    M llvm/test/Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll

  Log Message:
  -----------
  [OpenMP] Simplify all stores in the device code

Similar to loads, we want to be aggressive when it comes to store
simplification. Not everything in LLVM handles dead stores well when
address space casts are involved, we can simply ask the Attributor to do
it for us though.

Reviewed By: tianshilei1992

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


  Commit: 5602c866c062622905899ee151f0dc868c846e7a
      https://github.com/llvm/llvm-project/commit/5602c866c062622905899ee151f0dc868c846e7a
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2021-12-29 (Wed, 29 Dec 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/heap_to_stack.ll
    M llvm/test/Transforms/Attributor/heap_to_stack_gpu.ll
    M llvm/test/Transforms/Attributor/memory_locations.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll

  Log Message:
  -----------
  [Attributor] Look through allocated heap memory

AAPointerInfo, and thereby other places, can look already through
internal global and stack memory. This patch enables them to look
through heap memory returned by functions with a `noalias` return.

In the future we can look through `noalias` arguments as well but that
will require AAIsDead to learn that such memory can be inspected by the
caller later on. We also need teach AAPointerInfo about dominance to
actually deal with memory that might not be `null` or `undef`
initialized. D106397 is a first step in that direction already.

Reviewed By: kuter

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


Compare: https://github.com/llvm/llvm-project/compare/16da21400458...5602c866c062


More information about the All-commits mailing list