SuccessChanges

Summary

  1. GlobalISel: Move extension scalar narrowing to separate function (details)
  2. GlobalISel: Don't ignore requested ext narrowing type (details)
  3. AMDGPU/GlobalISel: Improve lowering of G_SEXT_INREG (details)
  4. AMDGPU: Update more tests to use modern buffer intrinsics (details)
  5. Don't run powerpc lit test case on other platforms. (details)
  6. AMDGPU: Remove outdated comment (details)
  7. [lldb/test] Exted test for CMTime data formatter (details)
  8. [libc++] Fix Windows DLL build for string. (details)
  9. [OpenMP][Tool] Fix memory leak and double-allocation (details)
  10. Address redirect issue on Windows. (details)
  11. [ELF] -r: don't create .interp (details)
  12. [Hexagon] Update autogenerated intrinsic info in clang (details)
  13. Resubmit: [JumpThreading] Thread jumps through two basic blocks (details)
  14. [GVN] add GVN parameters parsing to new pass manager (details)
  15. [Hexagon] Add ELF flags for Hexagon v66 to ELFYAML.cpp (details)
  16. [clangd] Add workaround for GCC5 host compilers. NFC. (details)
  17. [NFC] Remove unnecessary link components. (details)
  18. scudo: Add initial memory tagging support. (details)
Commit be31a7b7eec8ed7c033f3087dd88e8fd685c3ded by arsenm2
GlobalISel: Move extension scalar narrowing to separate function
Also rename a few things. Handling a different requested type will
require this to become much more complex.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit a66d2817ca9e1dd72674627b18aec80d077910f0 by arsenm2
GlobalISel: Don't ignore requested ext narrowing type
This was assuming the narrow target was the source type. Respect the
requested type when these don't match by using intermediate merges. This
avoids producing very wide, illegal shift expansions.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-anyext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-sext-zext-128.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-zext.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit e12b840abfcde8ec02062fa7600348ad4623d049 by arsenm2
AMDGPU/GlobalISel: Improve lowering of G_SEXT_INREG
Clamping the scalar is much better than lowering with superwide shifts
for types > s64.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sext-inreg.mir
Commit 8945b23af590286d3a48e72d59348eb218bb7fbd by arsenm2
AMDGPU: Update more tests to use modern buffer intrinsics
The file was modifiedllvm/test/Transforms/StructurizeCFG/rebuild-ssa-infinite-loop.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
Commit ff1e3cad71e69a35b05610691552950232ab1dbe by wanyu9511
Don't run powerpc lit test case on other platforms.
Only run this test on powerpc tragets, because other platforms might not
have powerpc registered.
The file was modifiedllvm/test/tools/llc/aix-pic-setting.ll
Commit f5d98543b89ea5095f6bd185b2a32b75e1a0f09a by arsenm2
AMDGPU: Remove outdated comment
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp
Commit 5f8e4121882b61d289237bb27636c76a030a9627 by Jonas Devlieghere
[lldb/test] Exted test for CMTime data formatter
Cover more cases handled by the formatter.
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/cmtime/TestDataFormatterCMTime.py
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/cmtime/main.m
Commit 59919c4d6b6370da7133bbca0d31844e21646bb1 by eric
[libc++] Fix Windows DLL build for string.
We need to mark string::npos with _LIBCPP_FUNC_VIS on the first in-class
declaration, otherwise it might get ignored
The file was modifiedlibcxx/include/string
Commit 39f746d8def66ef8f5c4d3f1eb4c4cee4baac988 by protze
[OpenMP][Tool] Fix memory leak and double-allocation
Fix the memory leak pointed out in https://reviews.llvm.org/D70412. And
a second one due to double-allocation.
Reviewed by: Hahnfeld
Differential revision: https://reviews.llvm.org/D72779
The file was modifiedopenmp/tools/archer/ompt-tsan.cpp
Commit d0b02aecacc626d245a0e1ef5fe6276d6d3f9ed4 by wanyu9511
Address redirect issue on Windows.
The file was modifiedllvm/test/tools/llc/aix-pic-setting.ll
Commit 2d7a8cf90478cd845ffb39763b0e95b7715322d2 by maskray
[ELF] -r: don't create .interp
`{clang,gcc} -nostdlib -r a.c` passes --dynamic-linker to the linker,
and the expected behavior is to ignore it.
If .interp is kept in the relocatable object file, a final link will get
PT_INTERP even if --dynamic-linker is not specified. glibc ld.so expects
to see PT_DYNAMIC and the executable will likely fail to run.
Ignore --dynamic-linker in -r mode as well as -shared.
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/test/ELF/dynamic-linker.s
Commit 6f3effbbf054e75039030d389752608efd5a0221 by kparzysz
[Hexagon] Update autogenerated intrinsic info in clang
In addition to that, use target features to validate intrinsic
availability on a given target.
The file was modifiedclang/include/clang/Basic/BuiltinsHexagon.def
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/Sema/builtins-hvx-v60.c
The file was modifiedclang/lib/Basic/Targets/Hexagon.cpp
The file was modifiedclang/test/Sema/builtins-hexagon-v55.c
The file was modifiedclang/test/Sema/builtins-hvx-v62.c
The file was modifiedclang/test/Sema/builtins-hexagon-v60.c
The file was addedclang/include/clang/Basic/BuiltinsHexagonDep.def
The file was modifiedclang/test/CodeGen/hexagon-brev-ld-ptr-incdec.c
The file was modifiedclang/test/CodeGen/builtins-hexagon-circ.c
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/Sema/builtins-hvx-none.c
The file was modifiedclang/test/Sema/builtins-hexagon-v62.c
The file was modifiedclang/test/CodeGen/hexagon-brev-store-elm.c
Commit 53b68e676faf208b4a8f817e9bd4ddd522cc6006 by kazu
Resubmit: [JumpThreading] Thread jumps through two basic blocks
This reverts commit 2d258ed931cdf47a7d1dcf08ad963b5452a8670f.  This
revision fixes the Windows build and adds a testcase for it, namely
thread-two-bbs3.ll.  My original patch improperly copied EH pads on
Windows.  This patch disregards jump threading opportunities having to
do with EH pads.
[JumpThreading] Thread jumps through two basic blocks
Summary: This patch teaches JumpThreading.cpp to thread through two
basic blocks like:
  bb3:
   %var = phi i32* [ null, %bb1 ], [ @a, %bb2 ]
   %tobool = icmp eq i32 %cond, 0
   br i1 %tobool, label %bb4, label ...
  bb4:
   %cmp = icmp eq i32* %var, null
   br i1 %cmp, label bb5, label bb6
by duplicating basic blocks like bb3 above.  Once we duplicate bb3 as
bb3.dup and redirect edge bb2->bb3 to bb2->bb3.dup, we have:
  bb3:
   %var = phi i32* [ @a, %bb2 ]
   %tobool = icmp eq i32 %cond, 0
   br i1 %tobool, label %bb4, label ...
  bb3.dup:
   %var = phi i32* [ null, %bb1 ]
   %tobool = icmp eq i32 %cond, 0
   br i1 %tobool, label %bb4, label ...
  bb4:
   %cmp = icmp eq i32* %var, null
   br i1 %cmp, label bb5, label bb6
Then the existing code in JumpThreading.cpp can thread edge bb3.dup->bb4
through bb4 and eventually create bb3.dup->bb5.
Reviewers: wmi
Subscribers: hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70247
The file was modifiedllvm/include/llvm/Transforms/Scalar/JumpThreading.h
The file was addedllvm/test/Transforms/JumpThreading/thread-two-bbs2.ll
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was addedllvm/test/Transforms/JumpThreading/thread-two-bbs3.ll
The file was addedllvm/test/Transforms/JumpThreading/thread-two-bbs1.ll
Commit 1f2dad1fd575ff24cfb2c5323c10e1014b516df0 by fedor.sergeev
[GVN] add GVN parameters parsing to new pass manager
Introduce parsing, add a few instances of parameter use into GVN-PRE
tests.
Reviewers: skatkov, asbirlea Reviewed By: skatkov
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72752
The file was modifiedllvm/test/Transforms/GVN/PRE/local-pre.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/pre-single-pred.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/pre-load.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Transforms/GVN/PRE/pre-gep-load.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/load-pre-align.ll
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/test/Transforms/GVN/PRE/pre-basic-add.ll
Commit ecf0766cf14191fb44386a097e78325c7f555d81 by kparzysz
[Hexagon] Add ELF flags for Hexagon v66 to ELFYAML.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
Commit 40514a7d7a3b745ba43c2d014e54a0d78d65d957 by michael.hliao
[clangd] Add workaround for GCC5 host compilers. NFC.
The file was modifiedclang-tools-extra/clangd/Hover.cpp
Commit fc4e43ad618b6a00840f0fd0c84d32922dfd3cd2 by wanyu9511
[NFC] Remove unnecessary link components.
Remove unused link components in unittest according to post commit
comments.
The file was modifiedllvm/unittests/Target/PowerPC/CMakeLists.txt
Commit c299d1981deaf822dfaa06c791f3158bd6801e20 by peter
scudo: Add initial memory tagging support.
When the hardware and operating system support the ARM Memory Tagging
Extension, tag primary allocation granules with a random tag. The
granules either side of the allocation are tagged with tag 0, which is
normally excluded from the set of tags that may be selected randomly.
Memory is also retagged with a random tag when it is freed, and we
opportunistically reuse the new tag when the block is reused to reduce
overhead. This causes linear buffer overflows to be caught
deterministically and non-linear buffer overflows and use-after-free to
be caught probabilistically.
This feature is currently only enabled for the Android allocator and
depends on an experimental Linux kernel branch available here:
https://github.com/pcc/linux/tree/android-experimental-mte
All code that depends on the kernel branch is hidden behind a macro,
ANDROID_EXPERIMENTAL_MTE. This is the same macro that is used by the
Android platform and may only be defined in non-production
configurations. When the userspace interface is finalized the code will
be updated to use the stable interface and all #ifdef
ANDROID_EXPERIMENTAL_MTE will be removed.
Differential Revision: https://reviews.llvm.org/D70762
The file was modifiedcompiler-rt/lib/scudo/standalone/common.h
The file was addedcompiler-rt/lib/scudo/standalone/memtag.h
The file was modifiedcompiler-rt/lib/scudo/standalone/allocator_config.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/combined_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h
The file was modifiedcompiler-rt/lib/scudo/standalone/wrappers_c.inc
The file was modifiedcompiler-rt/lib/scudo/standalone/combined.h
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h