SuccessChanges

Summary

  1. [buildbot-clangd-ubuntu-clang] deployed new docker image (details)
  2. [MLIR] Enable tensorcore integration tests (details)
Commit e80b3b9a559501293a2da7aeddd565c00f0c34a6 by kuhnel
[buildbot-clangd-ubuntu-clang] deployed new docker image

This is just the deployment for the container updated in
cf3881f300f973e6dcc12d2c25dff626290642aa
The file was modifiedbuildbot/google/terraform/main.tf (diff)
The file was modifiedbuildbot/google/docker/buildbot-clangd-ubuntu-clang/VERSION (diff)
Commit c24b5268477630cb2efd8bf2f7fb3945343e7d03 by thomasraoux
[MLIR] Enable tensorcore integration tests

Differential Revision: https://reviews.llvm.org/D103266
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. LibcBenchmark.h - add missing implicit cmath header dependency. NFCI. (details)
  2. Fix uninitialized variable warnings. NFCI. (details)
  3. SmallVector.h - remove unused MathExtras.h header. NFCI. (details)
  4. BPFISelDAGToDAG.cpp - don't dereference a dyn_cast<> result. NFCI. (details)
  5. PatternMatch.h - wrap WrapFlags tests inside brackets to stop static analysis warning about & vs && usage. NFCI. (details)
  6. Fix implicit fall through compiler warning. NFCI. (details)
  7. BreadthFirstIterator.h - fix uninitialized variable warning in default constructor. NFCI. (details)
  8. SimplifyCFG.cpp - remove dead early-return code added at rGcc63203908da. NFCI. (details)
  9. [CodeGen] Add missing includes (NFC) (details)
  10. [TargetLowering] Move methods out of line (NFC) (details)
  11. [Clang][OpenMP] Add static version of getSingleClause<ClauseT>. NFC. (details)
  12. AssumeBundleQueries.cpp - don't dereference a dyn_cast<> result. NFCI. (details)
  13. X86Operand.h - fix uninitialized variable warnings in constructor. NFCI. (details)
  14. [LexicalScopesTest] Add missing IRBuilder.h include (NFC) (details)
  15. [TargetLowering] Use IRBuilderBase instead of IRBuilder<> (NFC) (details)
  16. X86MachObjectWriter.cpp - silence null deference warnings. NFCI. (details)
  17. [Clang][OpenMP] Refactor checking for mutually exclusive clauses. NFC. (details)
  18. Revert "[LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass" (details)
  19. [X86][SSE] combineVectorTruncation - simplify PSHUFB-is-better logic. NFCI. (details)
  20. [X86][SSE] LowerFP_TO_INT - remove dead code. NFCI. (details)
  21. [RISCV] Replace && with ||. Spotted by coverity. (details)
  22. [CostModel][X86] Improve AVX512 FDIV costs (details)
  23. [AArch64] Extra tests for vector shift. NFC (details)
  24. [ARM] MVE tests for vmull from a splat. NFC (details)
  25. [CostModel][X86] Add 512-bit bswap cost tests (details)
  26. [CostModel][X86] Add 512-bit bswap costs (details)
  27. [dfsan] Use the sanitizer allocator to reduce memory cost (details)
  28. [lld/mac] Use fewer magic numbers in magic $ld$ handling code (details)
  29. [lld/mac] Rename DylibFile::dylibName to DylibFile::installName (details)
  30. [lld/mac] Implement support for searching dylibs with @executable_path/ in install name (details)
  31. [lld/mac] Implement support for searching dylibs with @loader_path/ in install name (details)
  32. [yaml2obj] Initial the support of yaml2obj for 32-bit XCOFF. (details)
  33. Fixed the build failure of yaml2obj in XCOFFEmitter.cpp: (details)
  34. [AMDGPU][Libomptarget] Rework logic for locating kernarg pools (details)
  35. [OpenCL] Fix missing addrspace on implicit move assignment operator (details)
  36. [mlir][linalg] Cleanup LinalgOp usage in comprehensive bufferization. (details)
  37. [AMDGPU] Fix MC tests for v_fmaak_f16 and v_fmamk_f16 (details)
  38. [LV] Mark increment of main vector loop induction variable as NUW. (details)
  39. [Clang] Support a user-defined __dso_handle (details)
  40. [SimpleLoopBoundSplit] Split Bound of Loop which has conditional branch with IV (details)
  41. ASTConcept.h - remove unused <string> include. NFCI. (details)
  42. [PhaseOrdering] Update tests after 23c2f2e6b24d. (details)
  43. [NFC] Fix semantic discrepancy for MVT::LAST_VALUETYPE (details)
  44. [clang] NFC: test for undefined behaviour in RawComment::getFormattedText() (details)
  45. [lld/mac] Implement support for searching dylibs with @rpath/ in install name (details)
  46. [llvm] Add interface to order inlining (details)
  47. [OpenCL] Add const attribute to ctz() builtins (details)
  48. [AMDGPU][Libomptarget] Remove atlc global (details)
  49. [mlir] Add offset/stride helper functions to OffsetSizeAndStrideOpInterface (details)
  50. [Matrix] Add -matrix-allow-contract=false to tests. (details)
  51. [LV] Update more target-specific tests after 23c2f2e6b24d. (details)
  52. [mlir][linalg] Add padding helper functions to PadTensorOp (details)
  53. [AArch64][SVE] Improve codegen for dupq SVE ACLE intrinsics (details)
  54. [clangd] Drop TestTUs dependency on gtest (details)
  55. [gn build] fix syntax error from 50bb1b930dbc (details)
  56. ExternalASTSource.h - remove unused StringRef and <string> includes. NFCI. (details)
  57. [clang] Fix a crash during code completion (details)
  58. [MLIR][SPIRV] Use getAsmResultName(...) hook for AddressOfOp. (details)
  59. [InstCombine] Missed optimization for pow(x, y) * pow(x, z) with fast-math (details)
  60. [AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering. (details)
  61. [clang][NFC] Break out BaseUsingDecl from UsingDecl (details)
  62. [clang][NFC] Break out enum completion from other type context completion (details)
  63. [clangd] Bump recommended gRPC version (1.33.2 -> 1.36.3) (details)
  64. [Constants] Extend support for scalable-vector splats (details)
  65. [test] Use host platform specific error message substitution (details)
  66. [AMDGPU] Use s_add_i32 for address additions (details)
  67. [clang] Fix using-enum breakage (details)
  68. [clang] Remove inadvertent commit (details)
  69. [InstCombine] Support negation of scalable-vector splats (details)
  70. [flang][driver] Add support for the "-init-only" option (details)
  71. [OpenMP] Check loc for NULL before dereferencing it (details)
  72. [mlir][openacc] Conversion of data operands in acc.parallel to LLVM IR dialect (details)
  73. [Clang][CodeGen] Set the size of llvm.lifetime to unknown for scalable types. (details)
  74. [mlir][openacc] Add canonicalization for standalone data operations for if condition (details)
  75. [mlir][openacc] Add conversion for if operand to scf.if for standalone data operation (details)
  76. [Demangle][Rust] Parse dyn-bounds (details)
  77. [Demangle][Rust] Parse dyn-trait (details)
  78. [Demangle][Rust] Parse dyn-trait-assoc-binding (details)
  79. [CostModel] Return Invalid cost in getArithmeticCost instead of crashing for scalable vectors. (details)
  80. [CostModel][AArch64] NFC: Simplify some cost model tests for SVE. (details)
  81. [NFC] Add missing include to LaneBitmask.h to fix modules build (details)
  82. [lldb] Fix TypeSystemClang compilation after D101777 (details)
  83. [libc++] Simplify a few macros in __config (details)
  84. [docs] Set Phabricator as the tool for pre-commit reviews (details)
  85. [dfsan] Fix internal build errors because of more strict warning checks (details)
  86. [VPlan] Print successors of VPRegionBlocks. (details)
  87. [AArch64] handle -Wa,-march= (details)
  88. [Demangle][Rust] Parse instantiating crate (details)
  89. [RISCV] Don't enable loop vectorizer interleaving if the V extension isn't enabled. (details)
  90. [InstCombine] add tests for FMF propagation via -(C/X); NFC (details)
  91. [InstCombine] refactor match clauses; NFC (details)
  92. [InstCombine] intersect nsz and ninf fast-math-flags (FMF) for fneg(fdiv) fold (details)
  93. [XCOFF][AIX] Enable tooling support for 64 bit symbol table parsing (details)
  94. [RS4GC] Treat inttoptr as base pointer (details)
  95. [RISCV] Lower i8/i16 bswap/bitreverse to grevi/greviw with Zbp. (details)
  96. [MLIR] Conditional Branch Argument Propagation (details)
  97. [lld/mac] Add a test for -reexport_library + -dead_strip_dylibs (details)
  98. [libc++] Rename 'and' to '&&' (details)
  99. [MLIR][GPU] Simplify memcpy of cast (details)
  100. [SCEV] Compute exit counts for unsigned IVs using mustprogress semantics (details)
  101. GlobalISel: Remove unnecessary .getReg(0)s (details)
  102. GlobalISel: Use MMO helper for getting the size in bits (details)
  103. AMDGPU: Move codegen test out of MIR test directory (details)
  104. [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type (details)
  105. [OpenMP][runtime] add .clang-tidy file (details)
  106. [LoopUnroll] Clamp unroll count to MaxTripCount (details)
  107. [clang] Fix reading long doubles with va_arg on x86_64 mingw (details)
  108. [X32] Add Triple::isX32(), use it. (details)
  109. [ELF] getRelocatedSection: remove the check for ET_REL object file (details)
  110. [lld/mac] Add reexports after reexporter to inputFiles (details)
  111. [mlir-lsp-server] Add support for hover on region operations (details)
  112. [mlir-lsp-server] Add support for hover on symbol references (details)
  113. [mlir-lsp-server] Fix bug in symbol use/def tracking (details)
Commit c2ab3d2c85c8af4483f05d8bb702891cd3682969 by llvm-dev
LibcBenchmark.h - add missing implicit cmath header dependency. NFCI.

Noticed while investigating if we can remove an unnecessary MathExtras.h include from SmallVector.h
The file was modifiedlibc/benchmarks/LibcBenchmark.h
Commit c18df1e1569c8a0ecfd89c9879332f5c6bb95bf9 by llvm-dev
Fix uninitialized variable warnings. NFCI.
The file was modifiedllvm/include/llvm/Transforms/IPO/IROutliner.h
Commit 139a36454f842c7936ba461279e862488e894637 by llvm-dev
SmallVector.h - remove unused MathExtras.h header. NFCI.
The file was modifiedllvm/include/llvm/ADT/SmallVector.h
Commit ab2d29555293f6bde7096e1f684a1957ee9f9c92 by llvm-dev
BPFISelDAGToDAG.cpp - don't dereference a dyn_cast<> result. NFCI.

Use cast<> instead which will assert that the cast is correct and not just return null.

Fixes static analysis warnings.
The file was modifiedllvm/lib/Target/BPF/BPFISelDAGToDAG.cpp
Commit 6e90192fdfef17d48d26a0fba067410e36d9e636 by llvm-dev
PatternMatch.h - wrap WrapFlags tests inside brackets to stop static analysis warning about & vs && usage. NFCI.
The file was modifiedllvm/include/llvm/IR/PatternMatch.h
Commit 937c4cffd02420607ada23d3d25078df9bf553cb by llvm-dev
Fix implicit fall through compiler warning. NFCI.
The file was modifiedllvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
Commit 5fc8cdcb03e380e6193464eef499d373dcde3708 by llvm-dev
BreadthFirstIterator.h - fix uninitialized variable warning in default constructor. NFCI.
The file was modifiedllvm/include/llvm/ADT/BreadthFirstIterator.h
Commit 9ced408fe97478309cb19ca241009ade4ad6315c by llvm-dev
SimplifyCFG.cpp - remove dead early-return code added at rGcc63203908da. NFCI.

We've already checked that ScanIdx == 0 a few lines above.
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
Commit 99142003933c19d7d91e1c89fe038876cf429e4a by nikita.ppv
[CodeGen] Add missing includes (NFC)

These currently rely on the IRBuilder.h include in TargetLowering.h.
Make them explicit.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
The file was modifiedllvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64StackTagging.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 506875c87926b8009664ffc15a1f8233e8460cde by nikita.ppv
[TargetLowering] Move methods out of line (NFC)

Move methods using IRBuilder out of line, so we can drop the
dependency on the header.
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
Commit d466ca087aae958d1c0a965c561be07d2cb3e7e2 by llvm-project
[Clang][OpenMP] Add static version of getSingleClause<ClauseT>. NFC.

The current method getSingleClause requires an instance of OMPExecutableDirective to be called. Introduce a static version taking a list of clauses as argument instead that can be used during parsing/Sema before any OMPExecutableDirective has been created.

This is the same approach as taken for getClausesOfKind for getting more more than a single clause of a type which also has a method and static version. NFC patch extracted out of D99459 by request.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D103665
The file was modifiedclang/include/clang/AST/StmtOpenMP.h
Commit 76a1be05fa00638532bfda02839f1847ab15ede7 by llvm-dev
AssumeBundleQueries.cpp - don't dereference a dyn_cast<> result. NFCI.

Use cast<> instead which will assert that the cast is correct and not just return null - the match() should have already failed if the cast isn't valid anyhow.

Fixes static analysis warning.
The file was modifiedllvm/lib/Analysis/AssumeBundleQueries.cpp
Commit 0f938a6ed8f43a8b3923208131ce9c28f723d45f by llvm-dev
X86Operand.h - fix uninitialized variable warnings in constructor. NFCI.
The file was modifiedllvm/lib/Target/X86/AsmParser/X86Operand.h
Commit 85dfb377dd2bba4e88bec049a4ced3d2ba5e34ca by nikita.ppv
[LexicalScopesTest] Add missing IRBuilder.h include (NFC)

This currently depends on a transitive include via TargetLowering.h.
The file was modifiedllvm/unittests/CodeGen/LexicalScopesTest.cpp
Commit 1ffa6499ea3b7fde687666a45e89909fbf72a450 by nikita.ppv
[TargetLowering] Use IRBuilderBase instead of IRBuilder<> (NFC)

Don't require a specific kind of IRBuilder for TargetLowering hooks.
This allows us to drop the IRBuilder.h include from TargetLowering.h.

Differential Revision: https://reviews.llvm.org/D103759
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.h
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit b69e16b5cce6987dd9da3570c1b97e4b7e437d85 by llvm-dev
X86MachObjectWriter.cpp - silence null deference warnings. NFCI.

The MCSymbol data should always be present for non-absolute sections so assert that it is to silence static analysis warnings.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
Commit c41a8fbfbb096995367947e5ef7d36501b04d493 by llvm-project
[Clang][OpenMP] Refactor checking for mutually exclusive clauses. NFC.

Multiple clauses are mutually exclusive. This patch refactors the functions that check for pairs of mutually exclusive clauses into a generalized function which also also accepts a list of clause types if which at most one can appear.

NFC patch extracted out of D99459 by request.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D103666
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
Commit 0a9d0799316c7a601a0b20a123bd99922ac6455b by konndennsa
Revert "[LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass"

This reverts commit 21653600034084e8335374ddc1eb8d362158d9a8.

To fix the crash problem in legacy pass manager
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopPassManager.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/test/Transforms/LoopUnrollAndJam/innerloop.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
Commit 4879c8f3b06eebb498c28c3d2aa6bc0f3f9b961e by llvm-dev
[X86][SSE] combineVectorTruncation - simplify PSHUFB-is-better logic. NFCI.

OutSVT is guaranteed to be i8/i16 and we accept any InSVT that isn't i64
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 8ab8b3fad7a6e08452e30aaa3a75d6ec89ca5bf2 by llvm-dev
[X86][SSE] LowerFP_TO_INT - remove dead code. NFCI.

Non-Strict v2f32->v2i64 cases have already early-returned to be handled by legalization.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 8bde5f06a11d2ed30cc14b4960548d8da7a167b8 by craig.topper
[RISCV] Replace && with ||. Spotted by coverity.

We should be exiting when the shift amount is greater than
the bit width regardless of whether it is a power of 2.

Reported by Simon Pilgrim here https://reviews.llvm.org/D96661

This requires getting a shift amount that is out of bounds that
wasn't already optimized by SelectionDAG. This would be pretty
trick to construct a test for.

Or it would require a non-power of 2 shift amount and a mask
that has runs of ones and zeros of the next lowest power of 2 from
that shift amount. I tried a little to produce a test for this,
but didn't get it to work.
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit ae973380c5f6be77ce395022be40350942260be9 by llvm-dev
[CostModel][X86] Improve AVX512 FDIV costs

Add missing v16f32/v8f64 costs and adjust other costs as well based off the SkylakeServer model
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vdiv.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/arith-fp.ll
Commit 8f8273c54db930badd721a932e3e150f812bd5ca by david.green
[AArch64] Extra tests for vector shift. NFC
The file was addedllvm/test/CodeGen/AArch64/neon-shift-neg.ll
Commit c85766f79b2e2ebdb2a33e3456936cec11b10dc5 by david.green
[ARM] MVE tests for vmull from a splat. NFC
The file was addedllvm/test/CodeGen/Thumb2/mve-vmull-splat.ll
Commit ed3b3cfeb9ea7a80d30225a06a9851b84b5138a6 by llvm-dev
[CostModel][X86] Add 512-bit bswap cost tests
The file was modifiedllvm/test/Analysis/CostModel/X86/bswap-vec.ll
Commit 432eff22ab53820d1c74ad5f7b034a2db950b9fd by llvm-dev
[CostModel][X86] Add 512-bit bswap costs
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/bswap-vec.ll
Commit 2c82588dacac52ba8168214c6814ce22277d6e88 by jianzhouzh
[dfsan] Use the sanitizer allocator to reduce memory cost

dfsan does not use sanitizer allocator as others. In practice,
we let it use glibc's allocator since tcmalloc needs more work
to be working with dfsan well. With glibc, we observe large
memory leakage. This could relate to two things:

1) glibc allocator has limitation: for example, tcmalloc can reduce memory footprint 2x easily

2) glibc may call unmmap directly as an internal system call by using system call number. so DFSan has no way to release shadow spaces for those unmmap.

Using sanitizer allocator addresses the above issues
1) its memory management is close to tcmalloc

2) we can register callback when sanitizer allocator calls unmmap, so dfsan can release shadow spaces correctly.

Our experiment with internal server-based application proved that with the change, in a-few-day run, memory usage leakage is close to what tcmalloc does w/o dfsan.

This change mainly follows MSan's code.

1) define allocator callbacks at dfsan_allocator.h|cpp

2) mark allocator APIs to be discard

3) intercept allocator APIs

4) make dfsan_set_label consistent with MSan's SetShadow when setting 0 labels, define dfsan_release_meta_memory when unmap is called

5) add flags about whether zeroing memory after malloc/free. dfsan works at byte-level, so bit-level oparations can cause reading undefined shadow. See D96842. zeroing memory after malloc helps this. About zeroing after free, reading after free is definitely UB, but if user code does so, it is hard to debug an overtainting caused by this w/o running MSan. So we add the flag to help debugging.

This change will be split to small changes for review. Before that, a question is
"this code shares a lot of with MSan, for example, dfsan_allocator.* and dfsan_new_delete.*.
Does it make sense to unify the code at sanitizer_common? will that introduce some
maintenance issue?"

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D101204
The file was modifiedcompiler-rt/test/dfsan/custom.cpp
The file was modifiedcompiler-rt/lib/dfsan/done_abilist.txt
The file was addedcompiler-rt/test/dfsan/interceptors.c
The file was addedcompiler-rt/lib/dfsan/dfsan_new_delete.cpp
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp
The file was modifiedcompiler-rt/lib/dfsan/dfsan_interceptors.cpp
The file was modifiedcompiler-rt/lib/dfsan/CMakeLists.txt
The file was modifiedcompiler-rt/lib/dfsan/dfsan.h
The file was modifiedcompiler-rt/lib/dfsan/dfsan_custom.cpp
Commit e91043744346babdeb1e57e8f46e5a7c8a98fbfb by thakis
[lld/mac] Use fewer magic numbers in magic $ld$ handling code

Also simply a conditional and de-alias a variable.
Minor cleanups, no behavior change.

Differential Revision: https://reviews.llvm.org/D103774
The file was modifiedlld/MachO/InputFiles.cpp
Commit 7def700667ec587e01c5cf7fbc6d31e613d1b801 by thakis
[lld/mac] Rename DylibFile::dylibName to DylibFile::installName

The flag to set it is called `-install_name`, and it's called `installName` in tbd files.

No behavior change.

Differential Revision: https://reviews.llvm.org/D103776
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/InputFiles.h
Commit a48bd587f7d28ce71b8d7ba6f0fb6499072acf40 by thakis
[lld/mac] Implement support for searching dylibs with @executable_path/ in install name

Differential Revision: https://reviews.llvm.org/D103775
The file was modifiedlld/MachO/InputFiles.cpp
The file was addedlld/test/MachO/link-search-at-executable-path.s
Commit 52489021cf8ba7bb3b8e5ae56ab5f25ce4790c0f by thakis
[lld/mac] Implement support for searching dylibs with @loader_path/ in install name

Differential Revision: https://reviews.llvm.org/D103779
The file was addedlld/test/MachO/link-search-at-loader-path.s
The file was modifiedlld/MachO/InputFiles.cpp
Commit 50bb1b930dbce6ac2bd6af599f2e2a7d00f36ea5 by esme.yi
[yaml2obj] Initial the support of yaml2obj for 32-bit XCOFF.

Summary: The patch implements the mapping of the Yaml
information to XCOFF object file to enable the yaml2obj
tool for XCOFF. Currently only 32-bit is supported.

Reviewed By: jhenderson, shchenz

Differential Revision: https://reviews.llvm.org/D95505
The file was modifiedllvm/lib/ObjectYAML/XCOFFYAML.cpp
The file was modifiedllvm/lib/ObjectYAML/yaml2obj.cpp
The file was addedllvm/test/tools/yaml2obj/XCOFF/basic-doc.yaml
The file was addedllvm/test/tools/yaml2obj/XCOFF/full-contents.yaml
The file was modifiedllvm/lib/ObjectYAML/ObjectYAML.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/XCOFFYAML.h
The file was modifiedllvm/include/llvm/ObjectYAML/ObjectYAML.h
The file was modifiedllvm/lib/ObjectYAML/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/lib/ObjectYAML/BUILD.gn
The file was modifiedllvm/include/llvm/ObjectYAML/yaml2obj.h
The file was modifiedllvm/include/llvm/BinaryFormat/XCOFF.h
The file was addedllvm/lib/ObjectYAML/XCOFFEmitter.cpp
Commit bcb20aa7701d3e2d6deef24ce26c25ed7d2dbc6b by esme.yi
Fixed the build failure of yaml2obj in XCOFFEmitter.cpp:
  error: ambiguous overload for 'operator=='
  (operand types are 'llvm::yaml::Hex16' and 'llvm::XCOFF::MagicNumber')
     Is64Bit = Obj.Header.Magic == XCOFF::XCOFF64;
The file was modifiedllvm/lib/ObjectYAML/XCOFFEmitter.cpp
Commit f5f329a37175c3a30e9d8b20b95fced96b9dde8c by Pushpinder.Singh
[AMDGPU][Libomptarget] Rework logic for locating kernarg pools

Previous logic was to always use the first kernarg pool found to allocate
kernel args. This patch changes this to use only the kernarg pool which
has non-zero size. This logic is also reworked to not use any globals.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D103600
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/internal.h
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/system.cpp
Commit 438cf5577e720f84d493a272c5a1cbaf6ce19e51 by olemarius.strohm
[OpenCL] Fix missing addrspace on implicit move assignment operator

This fixes the missing address space on `this` in the implicit move
assignment operator.
The function called here is an abstraction around the lines that have
been removed which also sets the address space correctly.
This is copied from CopyConstructor, CopyAssignment and MoveConstructor,
all of which use this function, and now MoveAssignment does too.

Fixes: PR50259

Reviewed By: svenvh

Differential Revision: https://reviews.llvm.org/D103252
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was addedclang/test/AST/ast-dump-implicit-members.clcpp
Commit caf26612ddb527ad9e89588e7297b4de51013b83 by gysit
[mlir][linalg] Cleanup LinalgOp usage in comprehensive bufferization.

Replace the uses of deprecated Structured Op Interface methods in ComprehensiveBufferize.cpp. This patch is based on https://reviews.llvm.org/D103394.

Differential Revision: https://reviews.llvm.org/D103520
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
Commit 9e9edede1833f38e95cfa4845275cb40ee2b4020 by jay.foad
[AMDGPU] Fix MC tests for v_fmaak_f16 and v_fmamk_f16

This looks like a mistake when the tests were committed in r363946.
There were two sets of tests for the f32 variant of these instructions,
instead of one set for f16 and one set for f32.

Differential Revision: https://reviews.llvm.org/D103699
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_vop2.s
Commit 23c2f2e6b24d80d3472dca897feac10e9c34c51f by flo
[LV] Mark increment of main vector loop induction variable as NUW.

This patch marks the induction increment of the main induction variable
of the vector loop as NUW when not folding the tail.

If the tail is not folded, we know that End - Start >= Step (either
statically or through the minimum iteration checks). We also know that both
Start % Step == 0 and End % Step == 0. We exit the vector loop if %IV +
%Step == %End. Hence we must exit the loop before %IV + %Step unsigned
overflows and we can mark the induction increment as NUW.

This should make SCEV return more precise bounds for the created vector
loops, used by later optimizations, like late unrolling.

At the moment quite a few tests still need to be updated, but before
doing so I'd like to get initial feedback to make sure I am not missing
anything.

Note that this could probably be further improved by using information
from the original IV.

Attempt of modeling of the assumption in Alive2:
https://alive2.llvm.org/ce/z/H_DL_g

Part of a set of fixes required for PR50412.

Reviewed By: mkazantsev

Differential Revision: https://reviews.llvm.org/D103255
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-vectorize-inner-loop-reduction.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/interleave_short_tc.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/dont-fold-tail-for-const-TC.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/if-pred-stores.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/outer_loop_test2.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/arbitrary-induction-step.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-scalar-epilogue-fallback.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/runtime-check-needed-but-empty.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/scalable-loop-unpredicated-body-scalar-tail.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/invariant-store-vectorization.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/interleaving.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/aarch64-predication.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr45259.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/outer_loop_test1.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/small-size.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/vect.omp.force.small-tc.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/phi-cost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pointer-induction.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/induction-step.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-fold-multiple-icmps.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr34438.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reduction-predselect.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/outer_loop_test1_no_explicit_vect_width.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr36524.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-gather-scatter-tailpred.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ptr-induction.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/invariant-load-gather.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/runtime-check.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/fcmp-vectorize.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/dead_instructions.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/skeleton-lcssa-crash.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr44488-predication.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-small-size.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/scalable-reduction-inloop.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/assume.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vector-intrinsic-call-cost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vector-geps.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/debugloc.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-selectandorcost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-pred.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/uniform-blend.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/outer_loop_test1_no_explicit_vect_width.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr42674.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr35432.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/induction-trunc.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/optsize.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/single-value-blend-phis.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/induction.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-qabs.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/uniform_mem_op.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/sphinx.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/float-induction.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/cost-model-assert.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr35773.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/if-conversion-nest.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr47343-expander-lcssa-after-cfg-update.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/intrinsiccost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/unroll_novec.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-liveout.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/scatter_crash.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr23997.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/loop-scalars.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/outer-loop-vec-phi-predecessor-order.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/intrinsiccost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/loop-vectorization-factors.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/loop-form.ll
Commit b31f41e78b2722785f3df1da0d77dfcd68125d15 by andrew.savonichev
[Clang] Support a user-defined __dso_handle

This fixes PR49198: Wrong usage of __dso_handle in user code leads to
a compiler crash.

When Init is an address of the global itself, we need to track it
across RAUW. Otherwise the initializer can be destroyed if the global
is replaced.

Differential Revision: https://reviews.llvm.org/D101156
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was addedclang/test/CodeGenCXX/dso-handle-custom.cpp
Commit a2a0ac42abcb57bd982a94534c219ac983572ac3 by jingu.kang
[SimpleLoopBoundSplit] Split Bound of Loop which has conditional branch with IV

This pass transforms loops that contain a conditional branch with induction
variable. For example, it transforms left code to right code:

                             newbound = min(n, c)
while (iv < n) {            while(iv < newbound) {
   A                           A
   if (iv < c)                 B
     B                         C
   C                         }
}                           if (iv != n) {
                               while (iv < n) {
                                 A
                                 C
                               }
                             }

Differential Revision: https://reviews.llvm.org/D102234
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Scalar/BUILD.gn
The file was addedllvm/test/Transforms/LoopBoundSplit/loop-bound-split.ll
The file was modifiedllvm/lib/Transforms/Scalar/CMakeLists.txt
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was addedllvm/lib/Transforms/Scalar/LoopBoundSplit.cpp
The file was addedllvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h
Commit 30a89a754af00004a7bc8afd485021f9e68d5d70 by llvm-dev
ASTConcept.h - remove unused <string> include. NFCI.
The file was modifiedclang/include/clang/AST/ASTConcept.h
Commit 131343d35bf2ce55001fdd9c4cdf2965b56f26d8 by flo
[PhaseOrdering] Update tests after 23c2f2e6b24d.
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vdiv.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/peel-before-lv-to-enable-vectorization.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/AArch64/hoisting-sinking-required-for-vectorization.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/pixel-splat.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vdiv-nounroll.ll
Commit 1da2c7d25c0926b1ebac5855ab099b004b6a827a by gchatelet
[NFC] Fix semantic discrepancy for MVT::LAST_VALUETYPE

Differential Revision: https://reviews.llvm.org/D103251
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/include/llvm/Support/MachineValueType.h
Commit aa0d7179bbb3fd24bc9eb1fd6203565dbd50e8d8 by dmitry.polukhin
[clang] NFC: test for undefined behaviour in RawComment::getFormattedText()

This diff adds testcase for the issue fixed in https://reviews.llvm.org/D77468
but regression test was not added in the diff. On Clang 9 it caused
crash in cland during code completion.

Test Plan: check-clang-unit

Differential Revision: https://reviews.llvm.org/D103722
The file was modifiedclang/unittests/AST/CommentTextTest.cpp
Commit c5ffe9798850a699c2229899712ca9d153f2a4b8 by thakis
[lld/mac] Implement support for searching dylibs with @rpath/ in install name

Also adjust a few comments, and move the DylibFile comment talking about
umbrella next to the parameter again.

Differential Revision: https://reviews.llvm.org/D103783
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/test/MachO/rpath.s
The file was modifiedlld/MachO/DriverUtils.cpp
The file was modifiedlld/MachO/InputFiles.h
The file was addedlld/test/MachO/link-search-at-rpath.s
Commit 4a0de622c34e0cb86b22a8e5f38dfd388e07e2fc by taolq
[llvm] Add interface to order inlining

This patch abstract Calls in Inliner:run() to InlineOrder.
With this patch, it's possible to customize the inlining order,
e.g. use queue or priority queue.

Reviewed By: kazu

Differential Revision: https://reviews.llvm.org/D103315
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
Commit 9b14670f3ca287ce949c4157e0f673c84da255a3 by stuart.brady
[OpenCL] Add const attribute to ctz() builtins

Reviewed By: svenvh

Differential Revision: https://reviews.llvm.org/D97725
The file was modifiedclang/lib/Sema/OpenCLBuiltins.td
The file was modifiedclang/lib/Headers/opencl-c.h
Commit 4f8bc7caf4e5fcc1620b3fd4980ec8d671e9345b by Pushpinder.Singh
[AMDGPU][Libomptarget] Remove atlc global

This global struct used to hold various flags for monitoring the
initialization of hsa.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D103795
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/internal.h
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/system.cpp
Commit 6e7bbdd6e7f7649bccc4f981520ed916e21d7058 by springerm
[mlir] Add offset/stride helper functions to OffsetSizeAndStrideOpInterface

* Add hasUnitStride and hasZeroOffset to OffsetSizeAndStrideOpInterface. These functions are useful for various patterns. E.g., some vectorization patterns apply only for tensor ops with zero offsets and/or unit stride.
* Add getConstantIntValue and isEqualConstantInt helper functions, which are useful for implementing the two above functions, as well as various patterns.

Differential Revision: https://reviews.llvm.org/D103763
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Interfaces/ViewLikeInterface.h
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.h
The file was modifiedmlir/include/mlir/Interfaces/ViewLikeInterface.td
Commit 87c99d2b970be7c16ab0382c6c59e4d3abbf4a48 by flo
[Matrix] Add -matrix-allow-contract=false to tests.

Explicitly specify contract behavior, so the tests are independent of
the current default of the flag.
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/propagate-multiple-iterations.ll
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/const-gep.ll
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/propagate-backward.ll
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/propagate-forward.ll
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/preserve-existing-fast-math-flags.ll
Commit 8344e215ec6caac4b3372d6e96333b35ab1d8741 by flo
[LV] Update more target-specific tests after 23c2f2e6b24d.
The file was modifiedllvm/test/Transforms/LoopVectorize/PowerPC/optimal-epilog-vectorization.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AMDGPU/packed-math.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-call.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-vfabi-attr.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/PowerPC/vectorize-bswap.ll
Commit fe0befb123e4a727c3c883845c9d3bfe75d831c7 by springerm
[mlir][linalg] Add padding helper functions to PadTensorOp

Add helper functions to quickly check for zero low/high padding.

Differential Revision: https://reviews.llvm.org/D103781
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
Commit 60c9b5f35caeb555f66d261bf5a657ab02a35fef by bradley.smith
[AArch64][SVE] Improve codegen for dupq SVE ACLE intrinsics

Use llvm.experimental.vector.insert instead of storing into an alloca
when generating code for these intrinsics. This defers the codegen of
the generated vector to instruction selection, allowing existing
shufflevector style optimizations to apply.

Additionally, introduce a new target transform that can recognise fixed
predicate patterns in the svbool variants of these intrinsics.

Differential Revision: https://reviews.llvm.org/D103082
The file was addedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq_const.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq.c
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq-bfloat.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was addedllvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-opts-cmpne.ll
Commit 4728aca9a8adadc34590e3c930dcf8a32593d846 by kadircet
[clangd] Drop TestTUs dependency on gtest

TestTU now prints errors to llvm::errs and aborts on failures via
llvm_unreachable, rather than executing ASSERT_FALSE.

We'd like to make use of these testing libraries in different test suits that
might be compiling with a different gtest version than LLVM has.

Differential Revision: https://reviews.llvm.org/D103685
The file was modifiedclang-tools-extra/clangd/index/Symbol.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TestTU.cpp
The file was modifiedclang-tools-extra/clangd/index/Symbol.h
Commit cf29cdccbbaa611ef2393be9f07d9fbc1e61037a by thakis
[gn build] fix syntax error from 50bb1b930dbc
The file was modifiedllvm/utils/gn/secondary/llvm/lib/ObjectYAML/BUILD.gn
Commit 8b58092de49b8be964e760c161585665e8d8c48f by llvm-dev
ExternalASTSource.h - remove unused StringRef and <string> includes. NFCI.
The file was modifiedclang/include/clang/AST/ExternalASTSource.h
Commit 721476e6b2119a93033903109b54f429b6e8c91b by adamcz
[clang] Fix a crash during code completion

During code completion, lookupInDeclContext() calls
CodeCompletionDeclConsumer::FoundDecl(),which can mutate StoredDeclsMap,
over which lookupInDeclContext() iterates. This can lead to invalidation
of iterators and an assert()-crash.

Example code where this happens:
#include <list>
int main() {
   std::list<int>;
   std::^
}
with code completion on ^ with -std=c++20.

I do not have a repro case that does not need standard library.

This fix stores pointers to NamedDecls in a temporary vector, then
visits them outside of the main loop, when StoredDeclsMap iterators are
gone.

Differential Revision: https://reviews.llvm.org/D103472
The file was modifiedclang/lib/Sema/SemaLookup.cpp
Commit 2def12ebc6cc904cddb4bc608df63014ec2bfe86 by kareem.ergawy
[MLIR][SPIRV] Use getAsmResultName(...) hook for AddressOfOp.

Implements better naming for results of spv.mlir.addressof ops by making it
inherit from OpAsmOpInterface and implementing the associated
getAsmResultName(...) hook.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D103594
The file was modifiedmlir/include/mlir/Dialect/SPIRV/IR/SPIRVStructureOps.td
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was modifiedmlir/test/Dialect/SPIRV/IR/asm-op-interface.mlir
Commit 7736c1936a93d7effecf32ef5193dfc00b732cd2 by spatel
[InstCombine] Missed optimization for pow(x, y) * pow(x, z) with fast-math

If FP reassociation (fast-math) is allowed, then LLVM is free to do the
following transformation pow(x, y) * pow(x, z) -> pow(x, y + z).
This patch adds this transformation and tests for it.
See more https://bugs.llvm.org/show_bug.cgi?id=47205

It handles two cases

1. When operands of fmul are different instructions

%4 = call reassoc float @llvm.pow.f32(float %0, float %1)
%5 = call reassoc float @llvm.pow.f32(float %0, float %2)
%6 = fmul reassoc float %5, %4
-->
%3 = fadd reassoc float %1, %2
%4 = call reassoc float @llvm.pow.f32(float %0, float %3)

2. When operands of fmul are the same instruction

%4 = call reassoc float @llvm.pow.f32(float %0, float %1)
%5 = fmul reassoc float %4, %4
-->
%3 = fadd reassoc float %1, %1
%4 = call reassoc float @llvm.pow.f32(float %0, float %3)

Differential Revision: https://reviews.llvm.org/D102574
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/test/Transforms/InstCombine/fmul-pow.ll
Commit 52ffbfdffc240085fc6ac39cff2f98e66458171f by mahesha.comp
[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering.

Before packing LDS globals into a sorted structure, make sure that
their alignment is properly updated based on their size. This will make
sure that the members of sorted structure are properly aligned, and
hence it will further reduce the probability of unaligned LDS access.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D103261
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-value.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2_offset_order.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lds-alignment.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/promote-alloca-globals.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_write2.ll
The file was addedllvm/test/CodeGen/AMDGPU/update-lds-alignment.ll
Commit ddda05add527f7f92a71f387b927f237334f46d9 by nathan
[clang][NFC] Break out BaseUsingDecl from UsingDecl

This is a pre-patch for adding using-enum support.  It breaks out
the shadow decl handling of UsingDecl to a new intermediate base
class, BaseUsingDecl, altering the decl hierarchy to

def BaseUsing : DeclNode<Named, "", 1>;
  def Using : DeclNode<BaseUsing>;
def UsingPack : DeclNode<Named>;
def UsingShadow : DeclNode<Named>;
  def ConstructorUsingShadow : DeclNode<UsingShadow>;

Differential Revision: https://reviews.llvm.org/D101777
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/include/clang/Basic/DeclNodes.td
The file was modifiedclang/lib/Sema/SemaAccess.cpp
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/tools/libclang/CIndex.cpp
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaLookup.cpp
Commit 84ab315574099dcac8f9fb89fe8558f8ccfbce5f by nathan
[clang][NFC] Break out enum completion from other type context completion

This prepatch for using-enum breaks out the enum completion that that
will need from the existing scope completion logic.

Differential Revision: https://reviews.llvm.org/D102239
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp
Commit d12000ca55d1cc8bc07f75457e3b4efbcd8ff657 by kbobyrev
[clangd] Bump recommended gRPC version (1.33.2 -> 1.36.3)

Context: https://github.com/clangd/clangd/pull/783

Reviewed By: kadircet

Differential Revision: https://reviews.llvm.org/D103393
The file was modifiedclang-tools-extra/clangd/index/remote/README.md
Commit fd3b556958a9deee7ced33ec18b38c030145160b by fraser
[Constants] Extend support for scalable-vector splats

This patch extends the various "isXXX" functions of the `Constant` class
to include scalable-vector splats.

In several "isXXX" functions, code that was separately inspecting
`ConstantVector` and `ConstantDataVector` was unified to use
`getSplatValue`, which already includes support for said splats.

In the varous "isNotXXX" functions, code was added to check whether the
scalar splat value -- if any -- satisfies the predicate.

An extra fix for `isNotMinSignedValue` was included, as it previously
crashed when passed a scalable-vector type because it unconditionally
cast to `FixedVectorType`

These changes address numerous missed optimizations, a compiler crash
mentioned above and -- perhaps most egregiously -- an infinite loop in
InstCombine due to the compiler breaking canonical form when it failed
to pick up on a splat in a select instruction.

Test cases have been added to cover as many of these functions as
possible, though existing coverage is slim; it doesn't appear that there
are any in-tree uses of `Constant::isNegativeZeroValue`, for example.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D103421
The file was modifiedllvm/test/Transforms/InstCombine/div.ll
The file was modifiedllvm/test/Transforms/InstCombine/bitcast.ll
The file was modifiedllvm/lib/IR/Constants.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp-vec.ll
The file was modifiedllvm/test/Transforms/InstCombine/fdiv.ll
The file was modifiedllvm/test/Transforms/InstCombine/fmul.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
Commit 7e176ff2db93304620a9080df2e003ae50f9b826 by Abhina.Sreeskantharajan
[test] Use host platform specific error message substitution

This testcase is failing on z/OS because the regex doesn't match the spelling. This patch modifies the testcase to use the error substitution so it will pass on all platforms.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D103804
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/output.s
Commit 96e1fcb1e005646c3aedc5a723c108e9387ff9e0 by sebastian.neubauer
[AMDGPU] Use s_add_i32 for address additions

This allows to convert the add instruction to s_addk_i32 and
v_add_nc_u32 instead of needing v_add_co_u32 when converting to a VALU
instruction.

Differential Revision: https://reviews.llvm.org/D103322
The file was modifiedllvm/test/CodeGen/AMDGPU/call-constant.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/addrspacecast.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/sibling-call.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/pei-scavenge-vgpr-spill.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/stack-realign.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/need-fp-from-csr-vgpr-spill.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu.private-memory.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-gfx9.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/local-stack-alloc-block-sp-reference.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/nested-calls.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/wave32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/flat-scratch.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/frame-index-elimination.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/spill-offset-calculation.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/call-preserved-registers.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-call.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/non-entry-alloca.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/cc-update.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-carry-out.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/sgpr-spill.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/stack-realign-kernel.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll
Commit 9e43e7ec111d9029da1b2098733f67a239e4edef by nathan
[clang] Fix using-enum breakage

This fixes a build breakage.  I managed to attach this particular
change to the wrong diff in the stack when rebasing.  And flubbed
testing :(

Differential Revision: https://reviews.llvm.org/D101777
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was addedclang/lib/Sema/SemaOverload.cpp.blame
Commit ade4662c44f7dc9b0e32f38746e74241d7330253 by nathan
[clang] Remove inadvertent commit

Oops, missed this pattern in my .gitignore.  Sorry.

Differential Revision: https://reviews.llvm.org/D101777
The file was removedclang/lib/Sema/SemaOverload.cpp.blame
Commit ae3f6de3a856006601cbca81ebf9780a2534bdcc by fraser
[InstCombine] Support negation of scalable-vector splats

This patch is an extension of D103421. It allows the InstCombiner to
generate the negated form of integer scalable-vector splats. It can
technically handle fixed-length vectors too but those are completely
covered by the preceding logic.

This enables extra combining opportunities for scalable vector types.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D103801
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Commit e1da3297d253b33be1ff941cf9ed9091dd332ea5 by andrzej.warzynski
[flang][driver] Add support for the "-init-only" option

Adding the `-init-only` option and corresponding frontend action to
generate a diagnostic.

`-init-only` vs `-test-io`:
`-init-only` ignores the input (it never calls the prescanner)
`-test-io` is similar to `-init-only`, but does read and print the input
without calling the prescanner.

This patch also adds a Driver test to check this action.

Reviewed By: awarzynski, AMDChirag

Differential Revision: https://reviews.llvm.org/D102849
The file was modifiedflang/test/Driver/driver-help.f90
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
The file was modifiedflang/lib/Frontend/CompilerInvocation.cpp
The file was addedflang/test/Driver/init-only.f90
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedflang/include/flang/Frontend/FrontendOptions.h
The file was modifiedflang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
The file was modifiedflang/include/flang/Frontend/FrontendActions.h
Commit 54f059c9007b48e4ff700ac587cbb137fff91fb7 by bryan.chan
[OpenMP] Check loc for NULL before dereferencing it

The ident_t * argument in __kmp_get_monotonicity was being used without
a customary NULL check, causing the function to crash in a Debug build.
Release builds were not affected thanks to dead store elimination.
The file was modifiedopenmp/runtime/src/kmp_dispatch.cpp
Commit cfcdebaf323575952ef8326c32e47d351b79ee37 by clementval
[mlir][openacc] Conversion of data operands in acc.parallel to LLVM IR dialect

Convert data operands from the acc.parallel operation using the same conversion pattern than D102170.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D103337
The file was modifiedmlir/lib/Conversion/OpenACCToLLVM/OpenACCToLLVM.cpp
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/test/Conversion/OpenACCToLLVM/convert-data-operands-to-llvmir.mlir
Commit 2b13ff69794680ea0764e516f5b69b80219771b7 by kai.wang
[Clang][CodeGen] Set the size of llvm.lifetime to unknown for scalable types.

If the memory object is scalable type, we do not know the exact size of
it at compile time. Set the size of lifetime marker to unknown if the
object is scalable one.

Differential Revision: https://reviews.llvm.org/D102822
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was addedclang/test/CodeGen/RISCV/riscv-v-lifetime.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/lib/CodeGen/CGExprAgg.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
Commit aa4e6a609acdd00e06b54f525054bd5cf3624f0f by clementval
[mlir][openacc] Add canonicalization for standalone data operations for if condition

This patch add canonicalization for the standalone data operation with constant if condition.
It is extracted from this patch D103325.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D103712
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
The file was addedmlir/test/Dialect/OpenACC/canonicalize.mlir
Commit fb5b590b5e18796bf850170946f15fc10ab9394a by clementval
[mlir][openacc] Add conversion for if operand to scf.if for standalone data operation

This patch convert the if condition on standalone data operation such as acc.update,
acc.enter_data and acc.exit_data to a scf.if with the operation in the if region.
It removes the operation when the if condition is constant and false. It removes the
the condition if it is contant and true.

Conversion to scf.if is done in order to use the translation to LLVM IR dialect out of the box.
Not sure this is the best approach or we should perform this during the translation from OpenACC
to LLVM IR dialect. Any thoughts welcome.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D103325
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/lib/Conversion/PassDetail.h
The file was addedmlir/include/mlir/Conversion/OpenACCToSCF/ConvertOpenACCToSCF.h
The file was addedmlir/lib/Conversion/OpenACCToSCF/OpenACCToSCF.cpp
The file was addedmlir/test/Conversion/OpenACCToSCF/convert-openacc-to-scf.mlir
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was addedmlir/lib/Conversion/OpenACCToSCF/CMakeLists.txt
Commit 89615a5e925e10f388130e80fba4bf28bc3c3c0a by tomasz.miasko
[Demangle][Rust] Parse dyn-bounds

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D103151
The file was modifiedllvm/include/llvm/Demangle/RustDemangle.h
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
The file was modifiedllvm/test/Demangle/rust.test
Commit 1499afa09ba27ee0e6569668b74fea40e0458930 by tomasz.miasko
[Demangle][Rust] Parse dyn-trait

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D103361
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
The file was modifiedllvm/include/llvm/Demangle/RustDemangle.h
The file was modifiedllvm/test/Demangle/rust.test
Commit 619a65e5e4ed0df7b753eac9d7d41be976fd909b by tomasz.miasko
[Demangle][Rust] Parse dyn-trait-assoc-binding

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D103364
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
The file was modifiedllvm/include/llvm/Demangle/RustDemangle.h
The file was modifiedllvm/test/Demangle/rust.test
Commit c908196e100a5ac1b25cba859094bfc28cffb5f3 by sander.desmalen
[CostModel] Return Invalid cost in getArithmeticCost instead of crashing for scalable vectors.

This fixes an issue in BasicTTIImpl.h where it tries to do a
cast<FixedVectorType> on a scalable vector type in order to get the
scalarization cost. Because scalarization of scalable vectors is not
supported, we return Invalid instead.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D103798
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was addedllvm/test/Analysis/CostModel/AArch64/sve-remainder.ll
Commit be663c4337c6e3d81a9a539abc11477fdb74cc6e by sander.desmalen
[CostModel][AArch64] NFC: Simplify some cost model tests for SVE.

* Merged some functions into a single function, to make the costs more obvious.
* Moved scalable-mem-op-cost-model.ll -> sve-ldst.ll to be more consistent with other filenames.
The file was modifiedllvm/test/Analysis/CostModel/AArch64/sve-scatter.ll
The file was removedllvm/test/Analysis/CostModel/AArch64/scalable-mem-op-cost-model.ll
The file was modifiedllvm/test/Analysis/CostModel/AArch64/sve-gather.ll
The file was addedllvm/test/Analysis/CostModel/AArch64/sve-ldst.ll
Commit f10b9ca9c6723dba571f4b319b1c55c0ae8ad0ab by Raphael Isemann
[NFC] Add missing include to LaneBitmask.h to fix modules build
The file was modifiedllvm/include/llvm/MC/LaneBitmask.h
Commit 2c2feebcd1274425c853e3cff7cec6ba033c3ccd by Raphael Isemann
[lldb] Fix TypeSystemClang compilation after D101777

We apparently now need to pass the DeclName of the target decl to the
constructor.
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Commit fb4e4646188cf43a1e96a0aba6b6d24d8604257c by Louis Dionne
[libc++] Simplify a few macros in __config

Several macros were guarded with a check along the lines of:

#ifndef MACRO
#  define MACRO ...
#endif

However, some of these macros are never intended to be defined by users,
so it's pointless to make this check (i.e. the first #ifndef is always
true). This commit removes those checks.

The motivation for doing this cleanup is to remove the impression that
arbitrary configurations macros can be defined by users when including
libc++ headers, which doesn't work reliably and leads to macro spaghetti.
If one needs to be able to override a knob in the __config, that's fine,
but the proper way to do that is to document the macro as being a public
facing knob in the documentation, and most likely to migrate that macro
to __config_site (depending on the nature of the macro).

Differential Revision: https://reviews.llvm.org/D103705
The file was modifiedlibcxx/include/__config
Commit 9d35c1701f264398814e7f54ae4a014ab0030bf1 by kparzysz
[docs] Set Phabricator as the tool for pre-commit reviews

Differential Revision: https://reviews.llvm.org/D103811
The file was modifiedllvm/docs/CodeReview.rst
Commit a82747fafe215862c24e690c1c7b384f4c27ad20 by jianzhouzh
[dfsan] Fix internal build errors because of more strict warning checks
The file was modifiedcompiler-rt/test/dfsan/custom.cpp
The file was modifiedcompiler-rt/test/dfsan/interceptors.c
Commit 1465e7770bcacfb67ca4edc3714cf3a7e8a2a110 by flo
[VPlan] Print successors of VPRegionBlocks.

The non-DOT printing does not include the successors of VPregionBlocks.
This patch use the same style for printing successors as for
VPBasicBlock.

I think the printing of successors could be a bit improved further, as
at the moment it is hard to ensure a check line matches all successors.
But that can be done as follow-up.

Reviewed By: a.elovikov

Differential Revision: https://reviews.llvm.org/D103515
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
Commit fd11a26d368c5a909fb88548fef2cee7a6c2c931 by caij2003
[AArch64] handle -Wa,-march=

This fixed PR#48894 for AArch64. The issue has been fixed for Arm in
https://reviews.llvm.org/D95872

The following rules apply to -Wa,-march with this change:
  - Only compiler options apply to non assembly files
  - Compiler and assembler options apply to assembly files
  - For assembly files, we prefer the assembler option(s) if we have both kinds of option
  - Of the options that apply (or are preferred), the last value wins (it's not additive)

Reviewed By: DavidSpickett, nickdesaulniers

Differential Revision: https://reviews.llvm.org/D103184
The file was modifiedclang/lib/Driver/ToolChains/Arch/AArch64.cpp
The file was modifiedclang/lib/Driver/ToolChains/Arch/AArch64.h
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was addedclang/test/Driver/aarch64-target-as-march.s
Commit 43929ccc1296b13250965d75bd410550256d45c5 by tomasz.miasko
[Demangle][Rust] Parse instantiating crate

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D103460
The file was modifiedllvm/test/Demangle/rust.test
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
Commit 8c6bd6c22f384cc09e4a97de630ae63d7721dfd0 by craig.topper
[RISCV] Don't enable loop vectorizer interleaving if the V extension isn't enabled.

This can cause the vectorizer to generate interleaved scalar
code which might be ok for some CPUs, but definitely not all.
Disable it to restore the previous scalar behavior.

Differential Revision: https://reviews.llvm.org/D103787
The file was modifiedllvm/lib/Target/RISCV/RISCVSubtarget.h
Commit dc173254e754f1c363218548040642c6c53da8ed by spatel
[InstCombine] add tests for FMF propagation via -(C/X); NFC

There are bugs here as discussed in:
https://llvm.org/PR49654
The file was modifiedllvm/test/Transforms/InstCombine/fneg.ll
Commit 519e98cd9af0d4b47a2daf0899b69d1254750c13 by spatel
[InstCombine] refactor match clauses; NFC

We need to adjust the FMF propagation on at least
one of these transforms as discussed in:
https://llvm.org/PR49654
...so this should make it easier to intersect flags.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
Commit 4675beaa2181b6ccb1a37fd49b51a45490023974 by spatel
[InstCombine] intersect nsz and ninf fast-math-flags (FMF) for fneg(fdiv) fold

https://alive2.llvm.org/ce/z/3KPvih

https://llvm.org/PR49654
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
The file was modifiedllvm/test/Transforms/InstCombine/fneg.ll
Commit 8e84311a84b35ced5c18c3af8a802f7d2aa5c8a0 by jasonliu
[XCOFF][AIX] Enable tooling support for 64 bit symbol table parsing

Add in the ability of parsing symbol table for 64 bit object.

Reviewed By: jhenderson, DiggerLin

Differential Revision: https://reviews.llvm.org/D85774
The file was addedllvm/test/tools/llvm-readobj/XCOFF/symbols64.test
The file was modifiedllvm/unittests/Object/XCOFFObjectFileTest.cpp
The file was modifiedllvm/tools/llvm-objdump/XCOFFDump.cpp
The file was modifiedllvm/include/llvm/Object/XCOFFObjectFile.h
The file was addedllvm/test/tools/llvm-readobj/XCOFF/Inputs/file-aux-wrong64.o
The file was addedllvm/test/tools/llvm-readobj/XCOFF/file-aux-wrong64.test
The file was addedllvm/test/tools/llvm-objdump/XCOFF/Inputs/xcoff-section-headers64.o
The file was modifiedllvm/lib/Object/XCOFFObjectFile.cpp
The file was addedllvm/test/tools/llvm-readobj/XCOFF/Inputs/symbol64.o
The file was modifiedllvm/include/llvm/BinaryFormat/XCOFF.h
The file was modifiedllvm/tools/llvm-readobj/XCOFFDumper.cpp
The file was addedllvm/test/tools/llvm-objdump/XCOFF/disassemble-symbol-description64.test
The file was modifiedllvm/tools/obj2yaml/xcoff2yaml.cpp
Commit c880d5e583a389e3a665b2509915533f97dd4792 by listmail
[RS4GC] Treat inttoptr as base pointer

This is a modified version of a patch by tolziplohu with a style change, and most importantly, a revised commit message.

inttoptr for a non-integral address space is currently ill defined in the LangRef.  Figuring out exactly what the dynamic semantics of such a cast would be is hard, and not yet settled.  Despite that, we still need to go ahead and implement something in RS4GC for a couple of reasons.

First, as a simple consistency argument.  We're apparently added support for constexpr inttoptrs a while back, and even have tests which exercised them.  Having a lack of constant folding trigger a crash during lowering is non-ideal.

Second, and more fundementally, the optimizer is allowed to insert undefined constructs in unreachable code.  At the same time, we can't assume that dynamically dead code is always pruned before lowering.  As a result, we must assume that inttoptrs can occur (even if completely ill defined) along dead paths.  We need the lowering to not crash.  The stackmaps produced can be garbage (as the assumption is the code is dynamically dead), but the lowering itself can't crash.

Differential Revision: https://reviews.llvm.org/D103492
The file was addedllvm/test/Transforms/RewriteStatepointsForGC/base-inttoptr.ll
The file was modifiedllvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
Commit f30f8b4f12b762a054800aaa7b60461fd177fa96 by craig.topper
[RISCV] Lower i8/i16 bswap/bitreverse to grevi/greviw with Zbp.

Include known bits support so we know we don't need to zext the
output if the input was already zero extended.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D103757
The file was modifiedllvm/test/CodeGen/RISCV/rv32zbp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rv64zbp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit 854d0edce6c6e29ee2803c1f6590dee62994419a by gh
[MLIR] Conditional Branch Argument Propagation

In an operation in the true/false dest of a branch,
one can assume that the operation itself was true/false if
only that edge can reach the operation.

Differential Revision: https://reviews.llvm.org/D101709
The file was modifiedmlir/test/Dialect/Standard/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit 422544414b0dd79fef2f10a051b22c47ae5a0af1 by thakis
[lld/mac] Add a test for -reexport_library + -dead_strip_dylibs

Our behavior here already matched ld64, now we have a test for it.

(ld64 even strips the library here if you also pass -needed_library bar.dylib.
That seems wrong to me, and lld honors needed_library in that case.)

Differential Revision: https://reviews.llvm.org/D103812
The file was modifiedlld/test/MachO/dead-strip-dylibs.s
Commit 85966df3aa64513851b88f82e9b586774c6db367 by Louis Dionne
[libc++] Rename 'and' to '&&'
The file was modifiedlibcxx/include/__iterator/iterator_traits.h
Commit 00b6463b269f6815a8a110b9208f483e239ce1e2 by gh
[MLIR][GPU] Simplify memcpy of cast

Introduce a simplification that allows memcpy of a cast to simply use the underlying op

Differential Revision: https://reviews.llvm.org/D103830
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was addedmlir/test/Dialect/GPU/canonicalize.mlir
Commit 38540d71c74c2f63a77993e7bfb6e52e4b0da0fc by listmail
[SCEV] Compute exit counts for unsigned IVs using mustprogress semantics

The motivation here is simple loops with unsigned induction variables w/non-one steps. A toy example would be:
for (unsigned i = 0; i < N; i += 2) { body; }

Given C/C++ semantics, we do not get the nuw flag on the induction variable. Given that lack, we currently can't compute a bound for this loop. We can do better for many cases, depending on the contents of "body".

The basic intuition behind this patch is as follows:
* A step which evenly divides the iteration space must wrap through the same numbers repeatedly. And thus, we can ignore potential cornercases where we exit after the n-th wrap through uint32_max.
* Per C++ rules, infinite loops without side effects are UB. We already have code in SCEV which relies on this.  In LLVM, this is tied to the mustprogress attribute.

Together, these let us conclude that the trip count of this loop must come before unsigned overflow unless the body would form a well defined infinite loop.

A couple notes for those reading along:
* I reused the loop properties code which is overly conservative for this case. I may follow up in another patch to generalize it for the actual UB rules.
* We could cache the n(s/u)w facts. I left that out because doing a pre-patch which cached existing inference showed a lot of diffs I had trouble fully explaining. I plan to get back to this, but I don't want it on the critical path.

Differential Revision: https://reviews.llvm.org/D103118
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was addedllvm/test/Analysis/ScalarEvolution/lt-overflow.ll
Commit f6555b917b81f0d403c30605243eb766c42ab0a4 by Matthew.Arsenault
GlobalISel: Remove unnecessary .getReg(0)s
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit dc98adfb448bdb845605185bb173e99614a17790 by Matthew.Arsenault
GlobalISel: Use MMO helper for getting the size in bits
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
Commit ccf28ea800ee07835a53c83b775ef3ec51909b1c by Matthew.Arsenault
AMDGPU: Move codegen test out of MIR test directory

This is testing an actual pass, not the MIR parser/printer.
The file was addedllvm/test/CodeGen/AMDGPU/load-store-opt-scc.mir
The file was removedllvm/test/CodeGen/MIR/AMDGPU/load-store-opt-scc.mir
Commit a1f550e052543f75acac9089b760cbc61729131f by Andrey.Churbanov
[OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type

Refactored code of dependence processing and added new inoutset dependence type.
Compiler can set dependence flag to 0x8 when call __kmpc_omp_task_with_deps.
Size of type of the dependence flag changed from 1 to 4 bytes in clang.
All dependence flags library gets so far and corresponding dependence types:
1 - IN, 2 - OUT, 3 - INOUT, 4 - MUTEXINOUTSET, 8 - INOUTSET.

Differential Revision: https://reviews.llvm.org/D97085
The file was modifiedclang/test/OpenMP/task_codegen.cpp
The file was modifiedopenmp/runtime/test/tasking/bug_proxy_task_dep_waiting.c
The file was modifiedopenmp/runtime/test/tasking/bug_nested_proxy_task.c
The file was modifiedclang/test/OpenMP/depobj_codegen.cpp
The file was modifiedopenmp/runtime/src/kmp_taskdeps.cpp
The file was modifiedopenmp/runtime/src/kmp.h
The file was modifiedclang/test/OpenMP/task_if_codegen.cpp
The file was modifiedopenmp/runtime/src/kmp_taskdeps.h
The file was modifiedopenmp/runtime/test/tasking/hidden_helper_task/gtid.cpp
The file was modifiedclang/test/OpenMP/target_update_depend_codegen.cpp
The file was modifiedopenmp/runtime/test/tasking/hidden_helper_task/depend.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedclang/test/OpenMP/target_enter_data_depend_codegen.cpp
The file was modifiedclang/test/OpenMP/target_exit_data_depend_codegen.cpp
The file was addedopenmp/runtime/test/tasking/omp51_task_dep_inoutset.c
The file was modifiedclang/test/OpenMP/task_codegen.c
The file was modifiedopenmp/runtime/test/tasking/hidden_helper_task/common.h
Commit d70e1f12765fd6bb644ffb561dff9a31c522308e by jonathan.l.peyton
[OpenMP][runtime] add .clang-tidy file

Use same checks as compiler-rt which removes checks for readability-*
and llvm-header style.

Differential Revision: https://reviews.llvm.org/D103711
The file was addedopenmp/runtime/.clang-tidy
Commit 8fdd7c2ff16da370e28ef1b22e400d57a541484f by nikita.ppv
[LoopUnroll] Clamp unroll count to MaxTripCount

Unrolling with more iterations than MaxTripCount is pointless, as
those iterations can never be executed. As such, we clamp ULO.Count
to MaxTripCount if it is known. This means we no longer need to
consider iterations after MaxTripCount for exit folding, and the
CompletelyUnroll flag becomes independent of ULO.TripCount.

Differential Revision: https://reviews.llvm.org/D103748
The file was modifiedllvm/test/Transforms/LoopUnroll/runtime-small-upperbound.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
The file was modifiedllvm/test/Transforms/LoopUnroll/runtime-loop5.ll
The file was modifiedllvm/test/Transforms/LoopUnroll/nonlatchcondbr.ll
The file was modifiedllvm/test/Transforms/LoopUnroll/multiple-exits.ll
Commit 6de45b9e6a2c4b69ca82916a4cc1b4b8636d79b3 by martin
[clang] Fix reading long doubles with va_arg on x86_64 mingw

On x86_64 mingw, long doubles are always passed indirectly as
arguments (see an existing case in WinX86_64ABIInfo::classify);
generalize the existing code for reading varargs - any non-aggregate
type that is larger than 64 bits (which would be both long double
in mingw, and __int128) are passed indirectly too.

This makes reading varargs consistent with how they're passed,
fixing interop with both gcc and clang callers, for long double
and __int128.

Differential Revision: https://reviews.llvm.org/D103452
The file was modifiedclang/test/CodeGenCXX/ext-int.cpp
The file was modifiedclang/test/CodeGen/mingw-long-double.c
The file was modifiedclang/test/CodeGen/win64-i128.c
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit 75521bd9d8d1e39b1a765a14d95c49291d2adde5 by harald
[X32] Add Triple::isX32(), use it.

So far, support for x86_64-linux-gnux32 has been handled by explicit
comparisons of Triple.getEnvironment() to GNUX32. This worked as long as
x86_64-linux-gnux32 was the only X32 environment to worry about, but we
now have x86_64-linux-muslx32 as well. To support this, this change adds
an isX32() function and uses it. It replaces all checks for GNUX32 or
MuslX32 by isX32(), except for the following:

- Triple::isGNUEnvironment() and Triple::isMusl() are supposed to treat
  GNUX32 and MuslX32 differently.
- computeTargetTriple() needs to be able to transform triples to add or
  remove X32 from the environment and needs to map GNU to GNUX32, and
  Musl to MuslX32.
- getMultiarchTriple() completely lacks any Musl support and retains the
  explicit check for GNUX32 as it can only return x86_64-linux-gnux32.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D103777
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/test/Driver/linux-cross.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetMachine.cpp
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86AsmPrinter.cpp
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
The file was modifiedclang/lib/Basic/Targets/X86.h
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
The file was modifiedllvm/test/CodeGen/X86/x32-lea-1.ll
The file was modifiedclang/lib/Driver/ToolChains/Linux.cpp
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
The file was modifiedllvm/lib/Target/X86/X86RegisterInfo.cpp
The file was modifiedllvm/include/llvm/ADT/Triple.h
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h
Commit 8ec73e96b72d04787ed606cfbb62a7a2a05b3711 by i
[ELF] getRelocatedSection: remove the check for ET_REL object file

getRelocatedSection interface should not check that the object file is
relocatable, as executable files may have relocations preserved with
`--emit-relocs` linker flag. The relocations are useful in context of post-link
binary analysis for function reference identification. For example, BOLT relies
on relocations to perform function reordering.

Reviewed By: MaskRay, jhenderson

Differential Revision: https://reviews.llvm.org/D102296
The file was modifiedllvm/include/llvm/Object/ELFObjectFile.h
The file was modifiedllvm/include/llvm/Object/ObjectFile.h
The file was modifiedllvm/unittests/Object/ELFObjectFileTest.cpp
The file was modifiedllvm/lib/Object/XCOFFObjectFile.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
Commit 17c43c404535fe427d2cddb665154ae601d505bd by thakis
[lld/mac] Add reexports after reexporter to inputFiles

When a library "host"'s reexports change their installName with
`$ld$os10.11$install_name$host`, we used to write a load command for "host" but
write the version numbers of the reexport instead of "host". This fixes that.

I first thought that the rule is to take the version numbers from the library
that originally had that install name (implemented in D103819), but that's not
what ld64 seems to be doing: It takes the version number from the first dylib
with that install name it loads, and it loads the reexporting library before
the reexports. We already did most of that, we just added reexports before the
reexporter. After this change, we add the reexporter before the reexports.

Addresses https://bugs.llvm.org/show_bug.cgi?id=49800#c11 part 1.

(ld64 seems to add reexports after processing _all_ files on the command line,
while we add them right after the reexporter. For the common case of reexport +
$ld$ symbol changing back to the exporter name, this doesn't make a difference,
but you can construct a case where it does. I expect this to not make a
difference in practice though.)

Differential Revision: https://reviews.llvm.org/D103821
The file was modifiedlld/test/MachO/implicit-dylibs.s
The file was modifiedlld/test/MachO/tapi-link.s
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/test/MachO/special-symbol-ld-install-name.s
Commit f492c35965036d67833dae3c21498dcd1c1ed1fe by riddleriver
[mlir-lsp-server] Add support for hover on region operations

This revision adds support for hover on region operations, by temporarily removing the regions during printing. This revision also tweaks the hover format for operations to include symbol information, now that FuncOp can be shown in the hover.

Differential Revision: https://reviews.llvm.org/D103727
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
The file was modifiedmlir/test/mlir-lsp-server/hover.test
Commit 4c3adea7a4ab7c63010a953547152d4ad861f9de by riddleriver
[mlir-lsp-server] Add support for hover on symbol references

For now the hover simply shows the same information as hovering on the operation
name. If necessary this can be tweaked to something symbol specific later.

Differential Revision: https://reviews.llvm.org/D103728
The file was modifiedmlir/test/mlir-lsp-server/hover.test
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
Commit 2db4701cafd42d20f32c6c9a5dbd15484523fcda by riddleriver
[mlir-lsp-server] Fix bug in symbol use/def tracking

We were accidentally only using the first found reference, instead of all of them. This revision fixes this by properly tracking all references to a symbol.

Differential Revision: https://reviews.llvm.org/D103730
The file was modifiedmlir/lib/Parser/AsmParserState.cpp
The file was modifiedmlir/test/mlir-lsp-server/references.test

Summary

  1. [buildbot-clangd-ubuntu-clang] deployed new docker image (details)
  2. [MLIR] Enable tensorcore integration tests (details)
Commit e80b3b9a559501293a2da7aeddd565c00f0c34a6 by kuhnel
[buildbot-clangd-ubuntu-clang] deployed new docker image

This is just the deployment for the container updated in
cf3881f300f973e6dcc12d2c25dff626290642aa
The file was modifiedbuildbot/google/docker/buildbot-clangd-ubuntu-clang/VERSION
The file was modifiedbuildbot/google/terraform/main.tf
Commit c24b5268477630cb2efd8bf2f7fb3945343e7d03 by thomasraoux
[MLIR] Enable tensorcore integration tests

Differential Revision: https://reviews.llvm.org/D103266
The file was modifiedbuildbot/osuosl/master/config/builders.py