SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [LegalizeVectorTypes] Create correct memoperands in SplitVecRes_INSERT_SUBVECTOR. (details)
  2. [AMDGPU] Always expand ext/insertelement with divergent idx (details)
  3. [AArch64] Provide Darwin variants of most calling conventions (details)
  4. [analyzer] Fix a null FunctionDecl dereference bug after D75432 (details)
  5. [LLD] Make scoped timers thread safe (details)
  6. [AArch64] Fix GlobalISel tests on non-darwin platforms (details)
  7. Make Value::getPointerAlignment() return an Align, not a MaybeAlign. (details)
  8. [AArch64] Fix unwind info generated by outliner. (details)
  9. [analyzer] Make buildbots happy (details)
  10. [clang-format][docfix] Update predefined styles in docs (details)
  11. Add CanonicalizeFreezeInLoops pass (details)
  12. [gn build] Port d9a4a244138 (details)
  13. add a test for D77524 (details)
  14. [Darwin] Remove obsolete OS version checks (details)
  15. Fix typo in CMake error message "LLVM_LIBC_ENABLE_PROJECTS"->"LLVM_ENABLE_PROJECTS" (NFC) (details)
  16. Revert "[mlir][gpu] Refactor ConvertGpuLaunchFuncToCudaCalls pass." (details)
Commit 17bd86bc9bf0e696fb914ae5befb68ea9a847c82 by craig.topper
[LegalizeVectorTypes] Create correct memoperands in SplitVecRes_INSERT_SUBVECTOR.

Previously this code just used a default constructed
MachinePointerInfo. But we know the accesses are to a fixed stack
object or at least somewhere on the stack.

While there fix the alignment passed to the full vector load/stores.

I don't think this function is currently exercised in tree so I
don't know how to test it. I just noticed it when I removed
non-constant index support in this function.

Differential Revision: https://reviews.llvm.org/D80058
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 4eecf171645e064ff251ea3f706d3252b54da2f8 by Stanislav.Mekhanoshin
[AMDGPU] Always expand ext/insertelement with divergent idx

Even though series of cmd/cndmask can produce quite a lot of
code that is still better than a loop. In case of doubles we
would even produce two loops.

Differential Revision: https://reviews.llvm.org/D80032
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-si-pregfx9.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/scratch-simple.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-si-gfx9.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
Commit 161122ea1c61bbd2de22b86e5c5299e8f4b066ef by francisvm
[AArch64] Provide Darwin variants of most calling conventions

With the new SVE stack layout, we now need to provide a Darwin variant
for all the calling conventions based on the main AAPCS CSR save order.

This also changes APCS_SwiftError to have a Darwin and a non-Darwin
version, assuming it could be used on other platforms these days, and
restricts the AArch64_CXX_TLS calling convention to Darwin.

Differential Revision: https://reviews.llvm.org/D73805
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-with-debug-info.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-s128-div.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-callingconv-ios.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call-weak.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.h
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-exceptions.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/integration-shuffle-vector.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-rem.mir
The file was modifiedllvm/test/CodeGen/AArch64/shadow-call-stack.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64CallingConvention.td
The file was addedllvm/test/CodeGen/AArch64/arm64-darwin-cc.ll
Commit 1d393eac8f6907074138612e18d5d1da803b4ad0 by dkszelethus
[analyzer] Fix a null FunctionDecl dereference bug after D75432
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was modifiedclang/test/Analysis/malloc.c
Commit 3508c1d8fbe9b053d32330b6995c88c57a82e33f by rnk
[LLD] Make scoped timers thread safe

Summary:
This is a pre-requisite to parallelizing PDB symbol and type merging.
Currently this timer usage would not be thread safe.

Reviewers: aganea, MaskRay

Subscribers: jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80298
The file was modifiedlld/Common/Timer.cpp
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/include/lld/Common/Timer.h
Commit 770ba4f0516e9af7279767ae90e283c3755c0c97 by francisvm
[AArch64] Fix GlobalISel tests on non-darwin platforms

http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-debian/builds/6998
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-with-debug-info.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-rem.mir
Commit f26bdb539e8acef23e2a0370408521a6458001ee by efriedma
Make Value::getPointerAlignment() return an Align, not a MaybeAlign.

If we don't know anything about the alignment of a pointer, Align(1) is
still correct: all pointers are at least 1-byte aligned.

Included in this patch is a bugfix for an issue discovered during this
cleanup: pointers with "dereferenceable" attributes/metadata were
assumed to be aligned according to the type of the pointer.  This
wasn't intentional, as far as I can tell, so Loads.cpp was fixed to
stop making this assumption. Frontends may need to be updated.  I
updated clang's handling of C++ references, and added a release note for
this.

Differential Revision: https://reviews.llvm.org/D80072
The file was modifiedllvm/lib/Analysis/Loads.cpp
The file was modifiedllvm/test/Transforms/InstCombine/masked_intrinsics.ll
The file was modifiedllvm/include/llvm/IR/Value.h
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/InstCombine/call-guard.ll
The file was modifiedllvm/test/Transforms/LICM/hoist-deref-load.ll
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/lib/IR/Value.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll
The file was modifiedpolly/test/ScopInfo/invariant_load_dereferenceable.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/load-pre-licm.ll
The file was modifiedllvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
The file was modifiedllvm/unittests/IR/FunctionTest.cpp
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/pre-load.ll
The file was modifiedllvm/test/Transforms/TailCallElim/reorder_load.ll
The file was modifiedllvm/lib/CodeGen/ExpandMemCmp.cpp
Commit b4f9b34701b4d81c9c93028168ad83176f70e3af by efriedma
[AArch64] Fix unwind info generated by outliner.

The offsets were wrong. The result is now the same as what the compiler
would generate for a function that spills lr normally.

Differential Revision: https://reviews.llvm.org/D80238
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-calls.mir
Commit 48a8c7dcbfb90e917920e90fa2b3ec402e72f4cd by dkszelethus
[analyzer] Make buildbots happy
The file was modifiedclang/test/Analysis/malloc.c
Commit 51dbda54384827533dcfcb712f918cee7acc3185 by Jake.Merdich
[clang-format][docfix] Update predefined styles in docs

Summary:
The predefined styles that clang-format supports are listed in two
places, and neither is up-to-date. GNU style isn't mentioned at all!

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D80309
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/docs/LibFormat.rst
Commit d9a4a244138c4ec7dcc1b316e2ca57c9c833bf6c by aqjune
Add CanonicalizeFreezeInLoops pass

Summary:
If an induction variable is frozen and used, SCEV yields imprecise result
because it doesn't say anything about frozen variables.

Due to this reason, performance degradation happened after
https://reviews.llvm.org/D76483 is merged, causing
SCEV yield imprecise result and preventing LSR to optimize a loop.

The suggested solution here is to add a pass which canonicalizes frozen variables
inside a loop. To be specific, it pushes freezes out of the loop by freezing
the initial value and step values instead & dropping nsw/nuw flags from instructions used by freeze.
This solution was also mentioned at https://reviews.llvm.org/D70623 .

Reviewers: spatel, efriedma, lebedev.ri, fhahn, jdoerfert

Reviewed By: fhahn

Subscribers: nikic, mgorny, hiraditya, javed.absar, llvm-commits, sanwou01, nlopes

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77523
The file was addedllvm/include/llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/func_from_mcf_r.ll
The file was addedllvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/onephi.ll
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/phis.ll
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/nonsteps-preserve-flags.ll
The file was modifiedllvm/lib/Transforms/Utils/CMakeLists.txt
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/lib/Transforms/Utils/Utils.cpp
Commit ca85d5a848b8b619e185740864464639f690fd95 by llvmgnsyncbot
[gn build] Port d9a4a244138
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Commit 58f7c938a12fb4f332b58594a64d96e7945c3246 by aqjune
add a test for D77524
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/aarch64.ll
Commit b3ca4f34311b87345cf87bfdd0343045eed22f5c by julian.lettner
[Darwin] Remove obsolete OS version checks

The oldest supported deployment target currently is 10.7 [1].  We can
remove a few outdated checks.

[1] https://github.com/llvm/llvm-project/blob/3db893b3712a5cc98ac0dbc88e08df70069be216/compiler-rt/cmake/config-ix.cmake#L397

Reviewed By: delcypher

Differential Revision: https://reviews.llvm.org/D79958
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.h
Commit c32d695b099109118dbd50dd697fffe23cd9a529 by joker.eph
Fix typo in CMake error message "LLVM_LIBC_ENABLE_PROJECTS"->"LLVM_ENABLE_PROJECTS" (NFC)
The file was modifiedlibc/CMakeLists.txt
Commit 5c3ebd77259d8438663a3abe334a80a7ddf5caef by joker.eph
Revert "[mlir][gpu] Refactor ConvertGpuLaunchFuncToCudaCalls pass."

This reverts commit cdb6f05e2d5f0132956020e6b4990af0206c066f.

The build is broken with:

  You have called ADD_LIBRARY for library obj.MLIRGPUtoCUDATransforms without any source files. This typically indicates a problem with your CMakeLists.txt file
The file was addedmlir/lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp
The file was modifiedmlir/include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h
The file was modifiedmlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
The file was addedmlir/test/Conversion/GPUToCUDA/lower-launch-func-to-cuda.mlir
The file was modifiedmlir/include/mlir/InitAllPasses.h
The file was removedmlir/test/Conversion/GPUCommon/lower-launch-func-to-gpu-runtime-calls.mlir
The file was removedmlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h
The file was removedmlir/lib/Conversion/GPUCommon/CMakeLists.txt
The file was modifiedmlir/tools/mlir-cuda-runner/cuda-runtime-wrappers.cpp
The file was removedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
The file was modifiedmlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/lib/Conversion/CMakeLists.txt