Changes

Summary

  1. Add Johannes to CODE_OWNERS for openmp offloading (details)
  2. [unrollruntime] Pull out a helper function for readability and eventual reuse [nfc] (details)
  3. [NFC][InstCombine] Add tests for mul reduction w/ i1 element type (PR51259) (details)
  4. [InstCombine] `vector_reduce_mul(?ext(<n x i1>))` --> `zext(vector_reduce_and(<n x i1>))` (PR51259) (details)
  5. [test] [lldb] Use filename instead of index in test (details)
  6. [DFAJumpThreading] Mark DT as preserved in LegacyPM (details)
  7. [DFAJumpThreading] Remove unnecessary includes (NFC) (details)
  8. [mlir] Async: clone constants into async.execute functions and parallel compute functions (details)
  9. [DFAJumpThreading] Use insert return value (NFC) (details)
  10. [libc] Add differential and performance targets for sqrtf (details)
  11. [DFAJumpThreading] Use SmallPtrSet for Visited (NFC) (details)
  12. [nfc] [lldb] Support moving support files instead of copy (details)
  13. [clang][darwin] Add support for the -mtargetos= option to the driver (details)
  14. [unroll] Move multiple exit costing into consumer pass [NFC] (details)
  15. [SLP][X86] Add fmuladd test coverage (details)
  16. [NFC][InstCombine] Add tests for umin reduction w/ i1 element type (PR51259) (details)
  17. [InstCombine] `vector_reduce_umin(?ext(<n x i1>))` --> `?ext(vector_reduce_and(<n x i1>))` (PR51259) (details)
  18. [NFC][InstCombine] Add tests for umax reduction w/ i1 element type (PR51259) (details)
  19. [InstCombine] `vector_reduce_umax(?ext(<n x i1>))` --> `?ext(vector_reduce_or(<n x i1>))` (PR51259) (details)
  20. [AArch64] Regenerate fp16 tests. (details)
  21. [ValueTracking] Fix computeConstantRange to use "may" instead of "always" semantics for llvm.assume (details)
  22. Revert "[unroll] Move multiple exit costing into consumer pass [NFC]" (details)
  23. [sanitizer] Fix __sanitizer_syscall_post_epoll_wait (details)
  24. [sanitizer] Add callbacks for epoll_pwait2 (details)
Commit 0c3dafd9edeb4cf81a5b46cd9d245cc1ae8d0eaf by jonathanchesterfield
Add Johannes to CODE_OWNERS for openmp offloading

Agreed on llvm-dev in May 2021
The file was modifiedllvm/CODE_OWNERS.TXT
Commit 9016beaa243026de307079b42ab4a7e022c6b14c by listmail
[unrollruntime] Pull out a helper function for readability and eventual reuse [nfc]
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
Commit 8baea415706fba58d9e33e63d3b48262332f12dc by lebedev.ri
[NFC][InstCombine] Add tests for mul reduction w/ i1 element type (PR51259)
The file was addedllvm/test/Transforms/InstCombine/reduction-mul-sext-zext-i1.ll
Commit 469793efa7b518e3b5a5bd68ed5e39a9f9f4121f by lebedev.ri
[InstCombine] `vector_reduce_mul(?ext(<n x i1>))` --> `zext(vector_reduce_and(<n x i1>))` (PR51259)

Alive2 agrees:
https://alive2.llvm.org/ce/z/PDansB (self)
https://alive2.llvm.org/ce/z/55D-Xc (zext)
https://alive2.llvm.org/ce/z/LxG3-r (sext)

We already handle `vector_reduce_and(<n x i1>)`,
so let's just combine into the already-handled pattern
and let the existing fold do the rest.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/reduction-mul-sext-zext-i1.ll
Commit ea9706626ce3f83b8433849049cc3c64b6b7297c by jan.kratochvil
[test] [lldb] Use filename instead of index in test

In some environments this test could fail if start.S has its own DWARF
CompileUnit or similar are included before the DWARF CompileUnit for the
file.

This change makes the test independent of the index of the compile unit,
instead checking the filename.

Reviewed By: herhut, jankratochvil

Differential Revision: https://reviews.llvm.org/D107300
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/dwarf5-lazy-dwo.c
Commit e97524cba2825ed412cd57a95a82c12ab439e171 by nikita.ppv
[DFAJumpThreading] Mark DT as preserved in LegacyPM

It is marked as preserved in NewPM, but not LegacyPM.
The file was modifiedllvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
Commit 84602f98c6d2df38275d36fd0009406defe3b627 by nikita.ppv
[DFAJumpThreading] Remove unnecessary includes (NFC)

This file uses neither unordered_map nor unordered_set.
The file was modifiedllvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
Commit b537c5b4147b6966fda8d80ed291f6b1f3857b16 by ezhulenev
[mlir] Async: clone constants into async.execute functions and parallel compute functions

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D107007
The file was modifiedmlir/lib/Dialect/Async/Transforms/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
The file was modifiedmlir/test/Dialect/Async/async-to-async-runtime.mlir
The file was addedmlir/lib/Dialect/Async/Transforms/PassDetail.cpp
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
The file was modifiedmlir/lib/Dialect/Async/Transforms/PassDetail.h
The file was addedmlir/test/Dialect/Async/async-parallel-for-compute-fn.mlir
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-to-llvm.mlir
Commit 3f7aea1a376d2def716113874cd382010f63897f by nikita.ppv
[DFAJumpThreading] Use insert return value (NFC)

Rather than find + insert. Also use range based for loop.
The file was modifiedllvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
Commit 2ab18d57d77633b6071c639c223b178754b36b4d by hedingarcia
[libc] Add differential and performance targets for sqrtf

Comparing the runtime of the sqrt functions from LLVM libc with the system libc:
|function       |perf - LLVM libc          |perf - MSVCRT
|sqrtf - Windows|44.05 sec (44051715500 ns)| 417.84 sec (417843359900 ns) = 6.96 mins

|function       |perf - LLVM libc          |perf - glibc
|sqrtf - Linux  |30.48 sec (30479458632 ns)|43.72 sec (43716901527 ns)

By running the differential test:
|function       |diff
|sqrtf - Windows|0 differing results
|sqrtf - Linux  |0 differing results

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D107229
The file was addedlibc/test/src/math/differential_testing/sqrtf_diff.cpp
The file was modifiedlibc/test/src/math/differential_testing/CMakeLists.txt
The file was addedlibc/test/src/math/differential_testing/sqrtf_perf.cpp
Commit 380b8a603c6e8997819726b15a76b8f6c94aa21a by nikita.ppv
[DFAJumpThreading] Use SmallPtrSet for Visited (NFC)

This set is only used for contains checks, so there is no need to
use std::set.
The file was modifiedllvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
Commit 437e37dd553917ef890821d5045f898f065e4d47 by jan.kratochvil
[nfc] [lldb] Support moving support files instead of copy

Split from D100299.

Reviewed By: jankratochvil

Differential Revision: https://reviews.llvm.org/D107165
The file was modifiedlldb/source/Symbol/CompileUnit.cpp
The file was modifiedlldb/include/lldb/Symbol/CompileUnit.h
Commit f575f371822f6a07483b21701165492224a846bb by Alex Lorenz
[clang][darwin] Add support for the -mtargetos= option to the driver

The new -mtargetos= option is a replacement for the existing, OS-specific options
like -miphoneos-version-min=. This allows us to introduce support for new darwin OSes
easier as they won't require the use of a new option. The older options will be
deprecated and the use of the new option will be encouraged instead.

Differential Revision: https://reviews.llvm.org/D106316
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
The file was addedclang/test/Driver/mtargetos-darwin.c
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
Commit 76940577e4bf9c63a8a4ebd32b556bd7feb8cad3 by listmail
[unroll] Move multiple exit costing into consumer pass [NFC]

This aligns the multiple exit costing with all the other cost decisions.  Note that UnrollAndJam, which is the only other caller of the original home of this code, unconditionally bails out of multiple exit loops.
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
Commit 317d70ea91841dfe503fddfe94b4a03b829917c6 by llvm-dev
[SLP][X86] Add fmuladd test coverage
The file was addedllvm/test/Transforms/SLPVectorizer/X86/fmuladd.ll
Commit 7888cfe7ef4f6e584022fbb23128b8b621ea69e4 by lebedev.ri
[NFC][InstCombine] Add tests for umin reduction w/ i1 element type (PR51259)
The file was addedllvm/test/Transforms/InstCombine/reduction-umin-sext-zext-i1.ll
Commit 0c137980565701bae7565d0aca999d3fa711822e by lebedev.ri
[InstCombine] `vector_reduce_umin(?ext(<n x i1>))` --> `?ext(vector_reduce_and(<n x i1>))` (PR51259)

Alive2 agrees:
https://alive2.llvm.org/ce/z/XxUScW (self)
https://alive2.llvm.org/ce/z/3usTF- (zext)
https://alive2.llvm.org/ce/z/GVxwQz (sext)

We already handle `vector_reduce_and(<n x i1>)`,
so let's just combine into the already-handled pattern
and let the existing fold do the rest.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/reduction-umin-sext-zext-i1.ll
Commit 9d179ee3313bf18858ecc8a6dfc6b0f680573cfd by lebedev.ri
[NFC][InstCombine] Add tests for umax reduction w/ i1 element type (PR51259)
The file was addedllvm/test/Transforms/InstCombine/reduction-umax-sext-zext-i1.ll
Commit b9b7162b8bdc97ba5b4219fe3447fadc48b4a107 by lebedev.ri
[InstCombine] `vector_reduce_umax(?ext(<n x i1>))` --> `?ext(vector_reduce_or(<n x i1>))` (PR51259)

Alive2 agrees:
https://alive2.llvm.org/ce/z/NbBaeT (self)
https://alive2.llvm.org/ce/z/iEaig4 (zext)
https://alive2.llvm.org/ce/z/meGb3y (sext)

We already handle `vector_reduce_and(<n x i1>)`,
so let's just combine into the already-handled pattern
and let the existing fold do the rest.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/reduction-umax-sext-zext-i1.ll
Commit 739efad3f6e36282b7d3a4c76802424473249b41 by efriedma
[AArch64] Regenerate fp16 tests.
The file was modifiedllvm/test/CodeGen/AArch64/fp16-v8-instructions.ll
The file was modifiedllvm/test/CodeGen/AArch64/fp16-v16-instructions.ll
Commit b58eda39eb1fcb7df942c8569d031a342fa1308d by nikita.ppv
[ValueTracking] Fix computeConstantRange to use "may" instead of "always" semantics for llvm.assume

ValueTracking should allow for value ranges that may satisfy
llvm.assume, instead of restricting the ranges only to values that
will always satisfy the condition.

Differential Revision: https://reviews.llvm.org/D107298
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
Commit c7770574f9b1c7b8548bf0596ed2008aa5cc5ca4 by nikita.ppv
Revert "[unroll] Move multiple exit costing into consumer pass [NFC]"

This reverts commit 76940577e4bf9c63a8a4ebd32b556bd7feb8cad3.

This causes Transforms/LoopUnroll/ARM/multi-blocks.ll to fail.
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
Commit f6f724c02e8ac8b675e3eabeae6b910995eba41b by Vitaly Buka
[sanitizer] Fix __sanitizer_syscall_post_epoll_wait

Syscall return number of initialized events which
needs to be used for unposoning.

Differential Revision: https://reviews.llvm.org/D107207
The file was modifiedcompiler-rt/test/msan/Linux/syscalls.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc
Commit ecc2c9ba4547b31e0b87b2086368fcb0a20532ac by Vitaly Buka
[sanitizer] Add callbacks for epoll_pwait2

Depends on D107207.

Differential Revision: https://reviews.llvm.org/D107209
The file was modifiedcompiler-rt/test/msan/Linux/syscalls.cpp
The file was modifiedcompiler-rt/include/sanitizer/linux_syscall_hooks.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc