SuccessChanges

Summary

  1. [MLIR] Add idempotent trait folding (details)
  2. [llc] Use -filetype=null to disable MIR printing (details)
  3. [AMDGPU] Add new llvm.amdgcn.fma.legacy intrinsic (details)
  4. [libc++] Move the oss-fuzz script to libc++ (details)
  5. [libc++] Move the oss-fuzz script to libcxx/utils/ci (details)
  6. [MemProf] Memory profiling runtime support (details)
  7. [llvm-objdump] Implement --prefix option (details)
  8. [libc++] Avoid relying on `realpath` being installed on the system (details)
  9. [GlobalISel] Add translation support for vector reduction intrinsics. (details)
  10. [AArch64][GlobalISel] Add basic legalizer rules for supported add/fadd reductions. (details)
  11. [AArch64][GlobalISel] Regbankselect reductions to use FPR bank for scalars. (details)
  12. [MemProf] Don't build memprof if sanitizer not being built (details)
  13. [AMDGPU][HIP] Switch default DWARF version to 5 (details)
  14. [Indvars][NFCI] Simplify assertion. (details)
  15. [libcxx] [test] Fix string type handling in a few fairly trivial class.path tests (details)
  16. [gn build] (manually) port 3d4bba302d246 (details)
  17. [gn build] Port 3d4bba302d2 (details)
  18. [test] Pin null-function.ll to legacy PM (details)
Commit 7dff6b818b1cdd52fbc99f6256760d6eb02a7622 by lyandy
[MLIR] Add idempotent trait folding

This trait simply adds a fold of f(f(x)) = f(x) when an operation is labelled as idempotent

Reviewed By: rriddle, andyly

Differential Revision: https://reviews.llvm.org/D89421
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/lib/IR/Operation.cpp
The file was modifiedmlir/test/mlir-tblgen/trait.mlir
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
Commit 0c1381d79567f58655561bd39f5efb1d468c930a by jay.foad
[llc] Use -filetype=null to disable MIR printing

If you use -stop-after or similar options, llc will normally print MIR.
This patch checks for -filetype=null as a special case to disable MIR
printing. As the comment says, "The Null output is intended for use for
performance analysis ...", and I found this useful for timing a subset
of the passes that llc runs without the significant overhead of printing
MIR just to send it to /dev/null.

Differential Revision: https://reviews.llvm.org/D89476
The file was modifiedllvm/lib/CodeGen/LLVMTargetMachine.cpp
The file was addedllvm/test/tools/llc/filetype-null-stop-after.ll
Commit 1417abe54c28854094230f6d3b743d5578f95dff by jay.foad
[AMDGPU] Add new llvm.amdgcn.fma.legacy intrinsic

Differential Revision: https://reviews.llvm.org/D89558
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
The file was addedllvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/fma_legacy.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was addedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.fma.legacy.ll
Commit e1612c38665e136279ff460e79e93fd7b37a4559 by Louis Dionne
[libc++] Move the oss-fuzz script to libc++

Instead of having this script be part of the OSS-Fuzz repository, I think
it makes more sense to have it alongside the rest of the fuzzing targets
in libc++.
The file was addedlibcxx/test/libcxx/fuzzing/oss-fuzz.sh
Commit 880fc4d581b091dbb68703c3e55c2ca2f94192c2 by Louis Dionne
[libc++] Move the oss-fuzz script to libcxx/utils/ci
The file was removedlibcxx/test/libcxx/fuzzing/oss-fuzz.sh
The file was addedlibcxx/utils/ci/oss-fuzz.sh
Commit 3d4bba302d2460b9ac6463ef920c301f1f40fb41 by tejohnson
[MemProf] Memory profiling runtime support

See RFC for background:
http://lists.llvm.org/pipermail/llvm-dev/2020-June/142744.html

Follow on companion to the clang/llvm instrumentation support in D85948
and committed earlier.

This patch adds the compiler-rt runtime support for the memory
profiling.

Note that much of this support was cloned from asan (and then greatly
simplified and renamed). For example the interactions with the
sanitizer_common allocators, error handling, interception, etc.

The bulk of the memory profiling specific code can be found in the
MemInfoBlock, MemInfoBlockCache, and related classes defined and used
in memprof_allocator.cpp.

For now, the memory profile is dumped to text (stderr by default, but
honors the sanitizer_common log_path flag). It is dumped in either a
default verbose format, or an optional terse format.

This patch also adds a set of tests for the core functionality.

Differential Revision: https://reviews.llvm.org/D87120
The file was addedcompiler-rt/test/memprof/TestCases/malloc_hook.cpp
The file was addedcompiler-rt/lib/memprof/memprof_allocator.h
The file was addedcompiler-rt/lib/memprof/memprof_shadow_setup.cpp
The file was addedcompiler-rt/lib/memprof/memprof_flags.h
The file was addedcompiler-rt/lib/memprof/memprof_interceptors_memintrinsics.h
The file was addedcompiler-rt/lib/memprof/memprof_thread.h
The file was modifiedcompiler-rt/test/lit.common.cfg.py
The file was addedcompiler-rt/test/memprof/TestCases/mem_info_cache_entries.cpp
The file was addedcompiler-rt/lib/memprof/memprof_rtl.cpp
The file was addedcompiler-rt/test/memprof/TestCases/test_malloc_load_store.c
The file was addedcompiler-rt/lib/memprof/memprof_flags.cpp
The file was addedcompiler-rt/test/memprof/lit.site.cfg.py.in
The file was addedcompiler-rt/test/memprof/lit.cfg.py
The file was modifiedcompiler-rt/lib/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/memprof_thread.cpp
The file was addedcompiler-rt/test/memprof/TestCases/default_options.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
The file was addedcompiler-rt/lib/memprof/memprof_interceptors.cpp
The file was modifiedcompiler-rt/test/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/memprof_linux.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp
The file was addedcompiler-rt/test/memprof/TestCases/free_hook_realloc.cpp
The file was addedcompiler-rt/test/memprof/TestCases/print_miss_rate.cpp
The file was addedcompiler-rt/lib/memprof/memprof_init_version.h
The file was modifiedcompiler-rt/test/lit.common.configured.in
The file was addedcompiler-rt/test/memprof/TestCases/test_terse.cpp
The file was addedcompiler-rt/lib/memprof/memprof_interceptors_memintrinsics.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_report.h
The file was addedcompiler-rt/test/memprof/TestCases/atexit_stats.cpp
The file was addedcompiler-rt/lib/memprof/memprof_interceptors.h
The file was addedcompiler-rt/lib/memprof/memprof.syms.extra
The file was addedcompiler-rt/lib/memprof/memprof_mapping.h
The file was addedcompiler-rt/lib/memprof/memprof_stats.h
The file was addedcompiler-rt/test/memprof/TestCases/log_path_test.cpp
The file was addedcompiler-rt/test/memprof/TestCases/stress_dtls.c
The file was addedcompiler-rt/lib/memprof/memprof_interface_internal.h
The file was addedcompiler-rt/lib/memprof/memprof_malloc_linux.cpp
The file was addedcompiler-rt/lib/memprof/memprof_preinit.cpp
The file was addedcompiler-rt/lib/memprof/weak_symbols.txt
The file was addedcompiler-rt/test/memprof/TestCases/malloc-size-too-big.cpp
The file was modifiedcompiler-rt/CMakeLists.txt
The file was addedcompiler-rt/test/memprof/TestCases/realloc.cpp
The file was addedcompiler-rt/test/memprof/TestCases/test_memintrin.cpp
The file was addedcompiler-rt/lib/memprof/memprof_internal.h
The file was modifiedcompiler-rt/include/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/README.txt
The file was addedcompiler-rt/lib/memprof/memprof_stack.h
The file was addedcompiler-rt/include/sanitizer/memprof_interface.h
The file was addedcompiler-rt/lib/memprof/memprof_descriptions.h
The file was addedcompiler-rt/lib/memprof/memprof_new_delete.cpp
The file was addedcompiler-rt/lib/memprof/memprof_descriptions.cpp
The file was addedcompiler-rt/test/memprof/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/memprof_posix.cpp
The file was addedcompiler-rt/test/memprof/TestCases/unaligned_loads_and_stores.cpp
The file was addedcompiler-rt/test/memprof/TestCases/memprof_options-help.cpp
The file was addedcompiler-rt/lib/memprof/CMakeLists.txt
The file was addedcompiler-rt/lib/memprof/memprof_allocator.cpp
The file was addedcompiler-rt/lib/memprof/memprof_stats.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_flags.inc
The file was addedcompiler-rt/test/memprof/TestCases/interface_test.cpp
The file was addedcompiler-rt/test/memprof/TestCases/dump_process_map.cpp
The file was modifiedcompiler-rt/cmake/config-ix.cmake
The file was addedcompiler-rt/lib/memprof/memprof_stack.cpp
The file was addedcompiler-rt/test/memprof/TestCases/test_new_load_store.cpp
The file was addedcompiler-rt/lib/memprof/memprof_flags.inc
Commit e95f9a23fad52ffa3a5b6466c7dcdf910d099956 by rengolin
[llvm-objdump] Implement --prefix option

The prefix given to --prefix will be added to GNU absolute paths when
used with --source option (source interleaved with the disassembly).

This matches GNU's objdump behavior.

GNU and C++17 rules for absolute paths are different.

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

Fixes PR46368.

Differential Revision: https://reviews.llvm.org/D85024
The file was modifiedllvm/docs/CommandGuide/llvm-objdump.rst
The file was modifiedllvm/docs/llvm-objdump.1
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
The file was addedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix-non-windows.test
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.h
The file was addedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix-windows.test
The file was addedllvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test
Commit 2408fc2a1e85c0e9e9c6e8b1dd00d2507dda38f4 by Louis Dionne
[libc++] Avoid relying on `realpath` being installed on the system

It doesn't appear to be a standard utility.
The file was modifiedlibcxx/utils/ci/apple-install-libcxx.sh
Commit 6042c25b0a7a9d812ace6ffe164628af9a1e1259 by Amara Emerson
[GlobalISel] Add translation support for vector reduction intrinsics.

In order to prevent the ExpandReductions pass from expanding some intrinsics
before they get to codegen, I had to add a -disable-expand-reductions flag
for testing purposes.

Differential Revision: https://reviews.llvm.org/D89028
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-reductions.ll
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
Commit 9190411fcf65188ea8cb032253302dd4ce4baede by Amara Emerson
[AArch64][GlobalISel] Add basic legalizer rules for supported add/fadd reductions.

NEON is pretty limited in it's reduction support. As a first step add some
basic rules for the legal types we can select.

Differential Revision: https://reviews.llvm.org/D89070
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-fadd.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-add.mir
Commit 32f77eea2d0f0660647e4222332ccf5c6dfc98e6 by Amara Emerson
[AArch64][GlobalISel] Regbankselect reductions to use FPR bank for scalars.

Differential Revision: https://reviews.llvm.org/D89075
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/regbankselect-reductions.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
Commit 3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b by tejohnson
[MemProf] Don't build memprof if sanitizer not being built

This should fix a couple of debian bot failures:
http://lab.llvm.org:8011/#builders/14/builds/380
http://lab.llvm.org:8011/#builders/109/builds/533

They disable building of the sanitizer, which memprof relies on. So
disable building of memprof in that case.
The file was modifiedcompiler-rt/lib/CMakeLists.txt
Commit c4d10e7e9bb47b77fad43d8ddcfa328298f36c88 by scott.linder
[AMDGPU][HIP] Switch default DWARF version to 5

Another attempt at this, see D59008 for previous attempt.

Reviewed By: kzhuravl, t-tye

Differential Revision: https://reviews.llvm.org/D89484
The file was modifiedclang/lib/Driver/ToolChains/HIP.h
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.h
The file was modifiedclang/test/Driver/amdgpu-toolchain.c
The file was modifiedclang/test/Driver/hip-toolchain-dwarf.hip
Commit b740899c500ba6a707711b74bfdacf104e8a8067 by benny.kra
[Indvars][NFCI] Simplify assertion.

This should be semantically identical. Also avoids unused variable
warnings in Release builds.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 3784bdf2176f38cc30134fab776efb43506c0c54 by martin
[libcxx] [test] Fix string type handling in a few fairly trivial class.path tests

Use string() for convenience for testing where possible, but keep using
native() for move tests where we want to check that no allocations are
made, constructing a reference fs::path::string_type instead.

Use the right value_type in a few places.

Make the synop test check for the right types and for the expected
preferred separator.

Differential Revision: https://reviews.llvm.org/D89537
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/synop.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp
Commit 98e134f5d01afbcdf74a7ee0af8fe3bed0201e54 by thakis
[gn build] (manually) port 3d4bba302d246
The file was modifiedllvm/utils/gn/secondary/compiler-rt/test/BUILD.gn
Commit 1c54a91d11aeb5f8d5d9f299509c6bda8d993f14 by llvmgnsyncbot
[gn build] Port 3d4bba302d2
The file was modifiedllvm/utils/gn/secondary/compiler-rt/include/BUILD.gn
Commit 53b69820f420ad896780d22fd241581a779b7c2b by aeubanks
[test] Pin null-function.ll to legacy PM

The NPM prints CGSCCs in a different way.
The file was modifiedllvm/test/Transforms/Inline/null-function.ll