FailedChanges

Summary

  1. Add flang out of tree buildbot (details)
  2. Added mail notifier for fedora-llvm-x86_64 builder (details)
  3. Increase number of jobs from 32 to 64 for fedora-llvm-x86_64 worker (details)
  4. mail notifier for x86_64-fedora-clang builder (details)
Commit 073b104115cd8a184f8549bcc2a7ed2eac2bcc2f by diana.picus
Add flang out of tree buildbot

This builder has 2 stages: one for building llvm and mlir, and one for
building flang itself in a different build directory. In order to do an
out of tree build of flang, we need to run cmake with the path to the
flang subproject as source directory.

Differential Revision: https://reviews.llvm.org/D87085
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
The file was modifiedbuildbot/osuosl/master/config/slaves.py (diff)
The file was addedzorg/buildbot/builders/FlangBuilder.py
Commit 24985c8fbd3aa01107bc69830e9fa73c58240bf1 by kkleine
Added mail notifier for fedora-llvm-x86_64 builder
The file was modifiedbuildbot/osuosl/master/config/status.py (diff)
Commit a352f8d0711b997b0bdcea4e0446efb10ce58984 by kkleine
Increase number of jobs from 32 to 64 for fedora-llvm-x86_64 worker
The file was modifiedbuildbot/osuosl/master/config/slaves.py (diff)
Commit 97d5478bbe04f479d67ff939bb3108b36c42e542 by kkleine
mail notifier for x86_64-fedora-clang builder
The file was modifiedbuildbot/osuosl/master/config/status.py (diff)

Summary

  1. [DSE] Add tests with lifetime.end that only mark parts of the obj as dead. (details)
  2. [DSE] Unify & fix mem terminator location checks. (details)
  3. [TableGen] Add/edit Doxygen comments to match "TableGen Backend Developer's Guide." (details)
  4. Run test on particular target only (details)
  5. MachineCSE.cpp - use auto const& iterators in for-range loops to avoid copies. NFCI. (details)
  6. [DAG] Fold vector mul(x,0)/mul(x,1) to a clearing mask (details)
  7. [X86] Cleanup check-prefixes for vector-mul.ll tests (details)
  8. [mlir] Fix passes.md's naming & add missing (details)
  9. [mlir] Updates to generate dialect rather than op docs (details)
  10. [mlir] Fix capitalization typo (details)
  11. [gn build] update TODO (details)
  12. Revert "[DSE] Switch to MemorySSA-backed DSE by default." (details)
  13. [InstCombine] Add basic vector test coverage for icmp_eq/ne zero combines (details)
  14. [flang] SAVE statement should not apply to nested scoping units (details)
  15. Thread safety analysis: Improve documentation for ASSERT_CAPABILITY (details)
  16. [X86] Add 64-bit target tests (details)
  17. [ConstraintElimination] Internalize function/class and delete an implied condition. NFC (details)
  18. Fix sphinx warnings in AttributeReference, NFC (details)
  19. [NFC][PowerPC] Change PPCSubTarget (introduced from D87671) to Subtarget (details)
  20. Internalize functions from various tools. NFC (details)
  21. [LLVM-C] Turn a ShuffleVector Constant Into a Getter. (details)
  22. [Machinesink] add one more profitable loop related pattern (details)
  23. Update Kaleidoscope: Change headers (details)
  24. [X86] Add more test cases to inline-asm-flag-output.ll. NFC (details)
  25. [DivRemPairs] Use DenseMapBase::find instead of operator[]. NFC (details)
  26. [AArch64][GlobalISel] Use the look-through constant helper for the shift s32->s64 custom legalization. (details)
  27. [Legalize][X86] Improve nnan fmin/fmax vector reduction (details)
  28. [AArch64][GlobalISel] Promote scalar G_SHL constant shift amounts to s64. (details)
  29. Fix MIPS and MIPS64 ABI to use ConstString in their register info arrays. (details)
  30. [llvm-objcopy][NFC] refactor error handling. part 2. (details)
  31. Typo fix; NFC (details)
  32. [InstSimplify] add tests for fcmp with casted op; NFC (details)
  33. [ValueTracking] enhance isKnownNeverInfinity to understand sitofp (details)
  34. [CostModel] add cl option to check size and latency costs; NFC (details)
  35. [X86] Regenerate i128 sdiv tests and add i686 coverage. (details)
  36. [X86] Add some basic i128 udiv test coverage (details)
  37. [CVP] Pass context instruction when narrowing div/rem (details)
  38. [LVI] Require context instruction in external API (NFCI) (details)
  39. [LVI] Clarify getValueAt/getValueInBlock doc comments (NFC) (details)
  40. [CVP] Make srem test more robust (NFC) (details)
  41. [InstCombine] Simplify code. NFCI. (details)
  42. [NewPM] Port ConstraintElimination to the new pass manager (details)
  43. [LVI][CVP] Use block value when simplifying icmps (details)
  44. [CVP] Remove unnecessary block splits in tests (NFC) (details)
  45. [OpenMP] Add Missing _static Director for OpenMP Documentation (details)
  46. [BuildLibCalls] Add noalias for strcat and stpcpy (details)
  47. [mlir][openacc] Remove detach and delete operands from acc.data (details)
  48. [mlir][openacc] Switch to assembly format for acc.data (details)
  49. [mlir][openacc] Add if, deviceptr operands and default attribute (details)
  50. Canonicalize declaration pointers when forming APValues. (details)
  51. Add profiling support for APValues. (details)
  52. [Test] Add tests where we can replace condition with invariants (details)
  53. Revert "Reland [CodeGen] emit CG profile for COFF object file" (details)
  54. [PowerPC] Add tests for `select` patterns. NFC. (details)
  55. [SVE] Replace / operator in TypeSize/ElementCount with divideCoefficientBy (details)
  56. [Coroutines] Reuse storage for local variables with non-overlapping lifetimes (details)
  57. [lldb] Remove nothreadallow from SWIG's __str__ wrappers to work around a Python>=3.7 crash (details)
  58. [ARM] Expand cannotInsertWDLSTPBetween to the last instruction (details)
  59. [ARM][MVE] tail-predication: overflow checks for elementcount, cont'd (details)
  60. [Coroutines] Remove unused includes. NFC. (details)
  61. [obj2yaml][yaml2obj] - Stop recognizing SHT_MIPS_ABIFLAGS on non-MIPS targets. (details)
  62. [lldb] Reference STL types in import-std-module tests (details)
  63. [yaml2obj][obj2yaml] - Add a support for SHT_ARM_EXIDX section. (details)
  64. [InstCombine] Add tests for vector rotate by constants with undefs. (details)
  65. [AMDGPU] Split R600 and GCN bfi patterns (details)
  66. [AMDGPU] Make bfi patterns divergence-aware (details)
  67. [AMDGPU] Add bfi immediate pattern (details)
  68. [PowerPC] Clean-up mayRaiseFPException bits (details)
  69. [lldb][NFC] Minor cleanup in CxxModuleHandler::tryInstantiateStdTemplate (details)
  70. [clangd] Add a tweak for filling in enumerators of a switch statement. (details)
  71. [gn build] Port 018066d9475 (details)
  72. [X86] Simplify broadcast mask detection with isUndefOrEqual helper. (details)
  73. [X86] Flip isShuffleEquivalent argument order to match isTargetShuffleEquivalent (details)
  74. [AArch64] Generate .note.gnu.property based on module flags. (details)
  75. [SCEV] Also use info from assumes in applyLoopGuards. (details)
  76. [InstCombine] matchRotate - allow undef in uniform constant rotation amounts (PR46895) (details)
  77. [ARM][MVE] Enable tail-predication by default (details)
  78. [clang] Don't emit "no member" diagnostic if the lookup fails on an invalid record decl. (details)
  79. [clang-tidy] IncludeInserter: allow <> in header name (details)
  80. [llvm-readobj/elf] - Fix the PREL31 relocation computation used for dumping arm32 unwind info (-u). (details)
  81. [AMDGPU] Reformat SITargetLowering::isSDNodeSourceOfDivergence. NFC. (details)
  82. [NFC][ARM] Factor out some logic for LoLoops. (details)
  83. [InstCombine] matchRotate - force splat of uniform constant rotation amounts (PR46895) (details)
  84. [TableGen] Improved messages in PseudoLoweringEmitter. (details)
  85. [ValueTracking] Fix analyses to update CxtI to be phi's incoming edges' terminators (details)
  86. [SVE] Lower fixed length VECREDUCE_[UMAX|UMIN] to Scalable (details)
  87. [ARM] Added more patterns to generate SSAT/USAT with shift (details)
  88. [llvm] Fix unused variable in non-debug configurations (details)
  89. [ARM][LowOverheadLoops] Cleanup and re-arrange (details)
  90. [AMDGPU] Reformat AMDGPUTargetLowering::isSDNodeAlwaysUniform. NFC. (details)
  91. [clang][codegen] Annotate `correctly-rounded-divide-sqrt-fp-math` fn-attr for OpenCL only. (details)
  92. Revert "Add the ability to write target stop-hooks using the ScriptInterpreter." (details)
  93. [clangd] Add a trained DecisionForest for code completion. (details)
  94. [ubsan] nullability-arg: Fix crash on C++ member pointers (details)
  95. [unittests] Preserve LD_LIBRARY_PATH in crash recovery test (details)
  96. [AArch64] Reuse map iterator instead of double lookup. NFC (details)
  97. Add FunctionType to MLIR C and Python bindings. (details)
  98. [clangd] Use Decision Forest to score code completions. (details)
  99. [InstCombine] Add basic trunc(shr(trunc(x),c)) tests (details)
  100. [GlobalISel] Combine (xor (and x, y), y) -> (and (not x), y) (details)
  101. [AArch64][GlobalISel] Support shifted register form in emitTST (details)
  102. [CostModel] split handling of intrinsics from other calls (details)
  103. [CostModel] move early exit for free intrinsics (details)
  104. [AArch64][GlobalISel] Infer whether G_PHI is going to be a FPR in regbankselect (details)
  105. [WebAssembly] Use wasm::Signature for in ObjectWriter (NFC) (details)
  106. [InstCombine] Add trunc(shr(trunc(x),c)) non-uniform vector tests (details)
  107. [AddressSanitizer] Copy type metadata to prevent miscompilation (details)
  108. [clangd] Rename evaluate() to evaluateHeuristics() (details)
  109. Revert "[AArch64][GlobalISel] Add selection support for <8 x s16>  G_INSERT_VECTOR_ELT with GPR scalar." (details)
  110. [AArch64] reuse another map iterator. NFC (details)
  111. [mlir] [VectorOps] changes to printing support for integers (details)
  112. scudo: Re-order Allocator fields for improved performance. NFCI. (details)
  113. [python][tests] Fix string comparison with "is" (details)
  114. [CostModel] fill in arguments as part of intrinsic attribute constructor (details)
  115. [PowerPC] Legalize v256i1 and v512i1 and implement load and store of these types (details)
  116. [lldb] Enable markdown support for documentation (details)
  117. Once we've found a firmware binary and loaded it, don't search more (details)
  118. [CostModel] remove hack for intrinsic cost based on cost type (details)
  119. [wasm] Move WasmTraits.h to BinaryFormat (details)
  120. [libc++] Fix heap UaF issue in coroutine test (details)
  121. [libc++] Add UNSUPPORTED markup to atomic test in single-threaded mode (details)
  122. [libc++] Replace uses of __libcpp_allocate by std::allocator<> (details)
  123. [COFF] Aliases resolve directly to defined external targets (details)
  124. [InstCombine] Regenerate cast tests. NFC. (details)
  125. [X86] Use inlineasm flag output for the _bittest* intrinsics. (details)
  126. [mlir] [VectorOps] Relaxed restrictions on vector.reduction types even more (details)
  127. Revert "Revert "[AArch64][GlobalISel] Add selection support for <8 x s16>  G_INSERT_VECTOR_ELT with GPR scalar."" (details)
  128. [lldb] Add print_function import (details)
  129. Fix a think-o with the numerical suffixes in the docs for init_priority. (details)
  130. [gn build] Re-run CompletionModelCodegen when input json files change (details)
  131. [CMake][AIX] Limit tools in external project build (details)
  132. [GlobalISel] Add support for lowering of vector G_SELECT and use for AArch64. (details)
  133. [X86] Add tests for D87883. NFC (details)
  134. [X86] Add support for calling SimplifyDemandedBits on the input of PDEP with a constant mask. (details)
  135. [libc++] Fix constexpr dynamic allocation on GCC 10 (details)
  136. [libcxx] Don't pass -s to libtool (details)
  137. [mlir][shape] Make conversion passes more consistent. (details)
  138. [EHStreamer] Simplify sharedTypeIDs with std::mismatch (details)
  139. [CVP] Allow two transforms in one invocation (details)
  140. Guard `find_library(tensorflow_c_api ...)` by checking for TENSORFLOW_C_LIB_PATH to be set by the user (details)
Commit b2c0193afa2b25afc718bc32751147c5dc1bfd63 by flo
[DSE] Add tests with lifetime.end that only mark parts of the obj as dead.

llvm.lifetime.end accepts a size parameters to limit the size of the
location marked as dead. Add a few tests with stores to locations after
the part that has been marked as dead.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
Commit 8f0466edc0cb3782af4108bfe8840e2ad3de9b49 by flo
[DSE] Unify & fix mem terminator location checks.

When looking for memory defs killed by memory terminators the code
currently incorrectly ignores the size argument of llvm.lifetime.end.

This patch updates the code to use isMemTerminator and updates
isMemTerminator to use isOverwrite() to make sure locations that are
outside the range marked as dead by llvm.lifetime.end are not
considered. Note that isOverwrite is only used for llvm.lifetime.end,
because free-like functions make the whole underlying object dead.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Commit 50a3df585d91ea3c8bd677f3f202931caf6aa8c7 by paul
[TableGen] Add/edit Doxygen comments to match "TableGen Backend Developer's Guide."
The file was modifiedllvm/docs/TableGen/BackGuide.rst
The file was modifiedllvm/include/llvm/TableGen/Record.h
Commit f91b9c0f9858bb3d6ff4dd1fb494e83633eefed8 by sepavloff
Run test on particular target only

The test `AST/const-fpfeatures-diag.c` requires setting strict FP
semantics, so it fails on targets where support of such semantic
is limited.
The file was modifiedclang/test/AST/const-fpfeatures-diag.c
Commit decc1944f38f4205bf53829bf91e3c98ea6fc7ac by llvm-dev
MachineCSE.cpp - use auto const& iterators in for-range loops to avoid copies. NFCI.
The file was modifiedllvm/lib/CodeGen/MachineCSE.cpp
Commit a61272a900296573902dfce99274fd335239a4d3 by llvm-dev
[DAG] Fold vector mul(x,0)/mul(x,1) to a clearing mask

If we're multiplying all elements of a vector by '0' or '1' then we can more efficiently perform this as a clearing mask (that is likely to further simplify to a shuffle blend).

This was noticed when reviewing D87502 but seems to help idiv/irem by constant cases even more as '0'/'1' values are often used for 'passthrough' cases.

Differential Revision: https://reviews.llvm.org/D88225
The file was modifiedllvm/test/CodeGen/X86/srem-seteq-vec-nonsplat.ll
The file was modifiedllvm/test/CodeGen/X86/vector-mul.ll
The file was modifiedllvm/test/CodeGen/X86/vector-idiv-sdiv-128.ll
The file was modifiedllvm/test/CodeGen/AArch64/srem-seteq-vec-nonsplat.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-math.ll
The file was modifiedllvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll
Commit 010c445fcf94eafc8f89753171159d3c61e4fa44 by llvm-dev
[X86] Cleanup check-prefixes for vector-mul.ll tests

Many x86/x64 SSE tests codegen are the same so avoid duplication
The file was modifiedllvm/test/CodeGen/X86/vector-mul.ll
Commit 93628ea9d162434ef78f51d152e7feac2c4095ef by jpienaar
[mlir] Fix passes.md's naming & add missing
The file was modifiedmlir/docs/Passes.md
Commit 57b871f8eca5029d244c9777f27d13f2a5ef9ab2 by jpienaar
[mlir] Updates to generate dialect rather than op docs
The file was modifiedmlir/include/mlir/Dialect/AVX512/AVX512.td
The file was modifiedmlir/include/mlir/Dialect/PDLInterp/IR/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/AVX512/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/CMakeLists.txt
Commit 584d91925eb13515305ccb974f492ca9cf1f99d4 by jpienaar
[mlir] Fix capitalization typo

Was testing on case insensitive config :-/
The file was modifiedmlir/docs/Passes.md
Commit 46b671a908687c9074151332c6372df1e820a1dd by thakis
[gn build] update TODO
The file was modifiedllvm/utils/gn/TODO.txt
Commit 915310bf14cbac58a81fd60e0fa9dc8d341108e2 by flo
Revert "[DSE] Switch to MemorySSA-backed DSE by default."

There appears to be a mis-compile with MemorySSA-backed DSE in
combination with llvm.lifetime.end. It currently appears like
DSE is doing the right thing and the llvm.lifetime.end markers
are incorrect. The reverted patch uncovers the mis-compile.

This patch temporarily switches back to the legacy DSE
implementation, while we investigate.

This reverts commit 9d172c8e9c845a36b61dc12c27de8acdbef8b247.
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr47285-not-overwritten-on-all-exit-paths.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/SROA-after-loop-unrolling.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll
The file was modifiedclang/test/CodeGenObjC/exceptions.m
Commit 98c5eebcf786ee970c57a752ac3dfededa90501a by llvm-dev
[InstCombine] Add basic vector test coverage for icmp_eq/ne zero combines
The file was modifiedllvm/test/Transforms/InstCombine/onehot_merge.ll
Commit c2921d148e7b4e61794fa5498746ec0840861cf8 by tkeith
[flang] SAVE statement should not apply to nested scoping units

SAVE statement, according to 8.6.14, must apply to the same scoping
unit, that excludes nested scoping units. For example, if the SAVE
statement is found in a MODULE, the functions contained in that module
should not inherit the SAVE attribute. I think that the code was doing
this, failing the following source:

```
MODULE pippo
SAVE

CONTAINS
PURE FUNCTION fft_stick_index( )
   IMPLICIT NONE
   INTEGER :: fft_stick_index
   INTEGER :: mc  !error: A pure subprogram may not have a variable with the SAVE attribute
END FUNCTION

END MODULE
```

Differential Revision: https://reviews.llvm.org/D88279
The file was modifiedflang/lib/Evaluate/tools.cpp
The file was addedflang/test/Semantics/save01.f90
Commit f702a6fa7c9e4c0e2871b3d6657ce4dfa525ce52 by aaronpuchert
Thread safety analysis: Improve documentation for ASSERT_CAPABILITY

Previous description didn't actually state the effect the attribute has on
thread safety analysis (causing analysis to assume the capability is held).

Previous description was also ambiguous about (or slightly overstated) the
noreturn assumption made by thread safety analysis, implying the assumption had
to be true about the function's behavior in general, and not just its behavior
in places where it's used. Stating the assumption specifically should avoid a
perceived need to disable thread safety analysis in places where only asserting
that a specific capability is held would be better.

Reviewed By: aaronpuchert, vasild

Differential Revision: https://reviews.llvm.org/D87629
The file was modifiedclang/docs/ThreadSafetyAnalysis.rst
Commit 6d374cf78c8a80a0bbfc7ce9bc80b3f183f44c80 by llvm-dev
[X86] Add 64-bit target tests
The file was modifiedllvm/test/CodeGen/X86/2012-07-10-extload64.ll
Commit 400bdbc4220bcae0589b583604ca0af74348a139 by i
[ConstraintElimination] Internalize function/class and delete an implied condition. NFC

Delete an implied condition (E.NumIn <= CB.NumIn)
The file was modifiedllvm/lib/Transforms/Scalar/ConstraintElimination.cpp
Commit 485501899d6c752ff05f4e045f7f89ace39ec413 by aaronpuchert
Fix sphinx warnings in AttributeReference, NFC

The previous attempt in d34c8c70 didn't help (the problem was missing
indentation), and another issue was introduced by a51d51a0.
The file was modifiedclang/include/clang/Basic/AttrDocs.td
Commit 6f24774fc4e296b9047e5873c070af4e0fd638e5 by amy.kwan1
[NFC][PowerPC] Change PPCSubTarget (introduced from D87671) to Subtarget

In D87671, it introduced PPCSubTarget in PPCISelDAGToDAG. This should have been
Subtarget instead. This patch changes PPCSubTarget into Subtarget.
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
Commit 20e9c36c013c4a9b13cf256ca5262afe3def78ad by i
Internalize functions from various tools. NFC

And internalize some classes if I noticed them:)
The file was modifiedllvm/tools/opt/opt.cpp
The file was modifiedllvm/tools/llvm-ar/llvm-ar.cpp
The file was modifiedllvm/utils/FileCheck/FileCheck.cpp
The file was modifiedllvm/tools/llvm-xray/xray-stacks.cpp
The file was modifiedllvm/tools/sanstats/sanstats.cpp
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.cpp
The file was modifiedllvm/tools/llvm-lto/llvm-lto.cpp
The file was modifiedllvm/tools/llvm-cvtres/llvm-cvtres.cpp
The file was modifiedllvm/utils/TableGen/SubtargetEmitter.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
The file was modifiedllvm/tools/llvm-dwp/llvm-dwp.cpp
The file was modifiedllvm/tools/llvm-ifs/llvm-ifs.cpp
The file was modifiedllvm/utils/TableGen/RegisterInfoEmitter.cpp
The file was modifiedllvm/tools/llvm-cfi-verify/llvm-cfi-verify.cpp
The file was modifiedllvm/tools/llvm-mt/llvm-mt.cpp
The file was modifiedlld/MachO/Driver.cpp
Commit 55f727306e727ea9f013d09c9b8aa70dbce6a1bd by devteam.codafi
[LLVM-C] Turn a ShuffleVector Constant Into a Getter.

It is not a good idea to expose raw constants in the LLVM C API. Replace this with an explicit getter.

Differential Revision: https://reviews.llvm.org/D88367
The file was modifiedllvm/tools/llvm-c-test/echo.cpp
The file was modifiedllvm/include/llvm-c/Core.h
The file was modifiedllvm/lib/IR/Core.cpp
Commit c8f6c0f961eed1301b33b8af53d075542f7723c8 by czhengsz
[Machinesink] add one more profitable loop related pattern

Reviewed By: qcolombet

Differential Revision: https://reviews.llvm.org/D86925
The file was removedllvm/test/CodeGen/PowerPC/sink-down-more-instructions.ll
The file was modifiedllvm/lib/CodeGen/MachineSink.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/sink-down-more-instructions-1.mir
Commit ba950ad0a51066868fbca37a8ad244eac9a228b7 by llvm
Update Kaleidoscope: Change headers

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D88141
The file was modifiedllvm/examples/Kaleidoscope/Chapter2/toy.cpp
Commit d78c4d9d00c15c52f0463c8dbb03945b036d53eb by craig.topper
[X86] Add more test cases to inline-asm-flag-output.ll. NFC

These are tests to make sure we are able to use the flag directly
in a conditional branch after the inline asm.
The file was modifiedllvm/test/CodeGen/X86/inline-asm-flag-output.ll
Commit 82420b4e49ff92c49c2b548bf541a5655e97d197 by i
[DivRemPairs] Use DenseMapBase::find instead of operator[]. NFC
The file was modifiedllvm/lib/Transforms/Scalar/DivRemPairs.cpp
Commit 7156938be26405156e17aa29e1c04e1afde88b04 by Amara Emerson
[AArch64][GlobalISel] Use the look-through constant helper for the shift s32->s64 custom legalization.

Almost NFC, except it catches more cases and gives a 0.1% CTMark -O0 size win.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-unmerge-values.mir
Commit f229bf2e12461be55446e6b08ccb931308586031 by nikita.ppv
[Legalize][X86] Improve nnan fmin/fmax vector reduction

Use +/-Inf or +/-Largest as neutral element for nnan fmin/fmax
reductions. This avoids dropping any FMF flags. Preserving the
nnan flag in particular is important to get a good lowering on X86.

Differential Revision: https://reviews.llvm.org/D87586
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll
The file was modifiedllvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll
Commit 5811d723998a3abdd3cb95dc579d28f48c57c2fa by Amara Emerson
[AArch64][GlobalISel] Promote scalar G_SHL constant shift amounts to s64.

This was supposed to be done in the first place as is currently the case for
G_ASHR and G_LSHR but was forgotten when the original shift legalization
overhaul was done last year.

This was exposed because we started falling back on s32 = s32, s64 SHLs
due to a recent combiner change.

Gives a very minor (0.1%) code size -O0 improvement on consumer-typeset.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-non-pow2-load-store.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir
The file was modifiedllvm/test/CodeGen/AArch64/arm64-clrsb.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-merge-values.mir
Commit e779427757f233ef7bbb381289c63f2399ecca92 by Raphael Isemann
Fix MIPS and MIPS64 ABI to use ConstString in their register info arrays.

RegInfoBasedABI::GetRegisterInfoByName was failing because mips/mips64 ABIs
don't use ConstString in their register info array.

Reviewed By: #lldb, teemperor

Differential Revision: https://reviews.llvm.org/D88375
The file was modifiedlldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
The file was modifiedlldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp
Commit ababcd2ab4910a4ea2ba5695c0088a1bdcd974b6 by a.v.lapshin
[llvm-objcopy][NFC] refactor error handling. part 2.

Remove usages of special error reporting functions(error(),
reportError()). This patch is extracted from D87987.
Errors are reported as Expected<>/Error returning values.
This part is for COFF subfolder of llvm-objcopy.

Testing: check-all.

Differential Revision: https://reviews.llvm.org/D88213
The file was modifiedllvm/tools/llvm-objcopy/COFF/Object.cpp
The file was modifiedllvm/tools/llvm-objcopy/COFF/Object.h
The file was modifiedllvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp
Commit de55ebe3bbc77882901ae2b9654503b7611b28f3 by aaron
Typo fix; NFC
The file was modifiedclang/lib/Parse/ParseDecl.cpp
Commit 71f25ac8ca5de44d759da49df5549f3a89c2e536 by spatel
[InstSimplify] add tests for fcmp with casted op; NFC

This shows missing analysis in ValueTracking's isKnownNeverInfinity().
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-compare.ll
Commit 645c53a9d923c8d7f6a4b49aa02126aec23dc667 by spatel
[ValueTracking] enhance isKnownNeverInfinity to understand sitofp

As discussed in D87877, instcombine already has this fold,
but it was missing from the more general ValueTracking logic.

https://alive2.llvm.org/ce/z/PumYZP
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-compare.ll
Commit 816b0a9c9f46cbfce253f49dad7cbf93867307ac by spatel
[CostModel] add cl option to check size and latency costs; NFC

This is a setting used by SimplifyCFG, LoopUnroll, and InlineCost,
but there is apparently no direct test coverage for any of those
cost model values.
The file was modifiedllvm/lib/Analysis/CostModel.cpp
The file was addedllvm/test/Analysis/CostModel/X86/fminnum-size-latency.ll
The file was addedllvm/test/Analysis/CostModel/X86/fmaxnum-size-latency.ll
Commit d9499c88d19bd38b17d9d7423c0d476bc77ebcb7 by llvm-dev
[X86] Regenerate i128 sdiv tests and add i686 coverage.

To hopefully help improve the codegen delta in D87976
The file was modifiedllvm/test/CodeGen/X86/i128-sdiv.ll
Commit 2d7a12f4ecfb5e0393ab0cf4ab4f46c198e808a7 by llvm-dev
[X86] Add some basic i128 udiv test coverage
The file was addedllvm/test/CodeGen/X86/i128-udiv.ll
Commit c8abf1c12dc39f3b07b887808da4bb09d5ddbe3e by nikita.ppv
[CVP] Pass context instruction when narrowing div/rem

This fold was the only place not passing the context instruction.
The tests worked around that fact by introducing a basic block split,
which is now no longer necessary.
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/sdiv.ll
Commit 9b959b59dfaf87ba978480594d2cfcf15fe66218 by nikita.ppv
[LVI] Require context instruction in external API (NFCI)

Require CxtI in getConstant() and getConstantRange() APIs.
Accordingly drop the BB parameter, as it is implied by
CxtI->getParent().

This makes sure we don't forget to pass the context instruction,
and makes the API contract clearer (also clean up the comments to
that effect -- the value holds at the context instruction, not
the end of the block).
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was modifiedllvm/lib/Transforms/Utils/LowerSwitch.cpp
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/LazyValueInfo.h
Commit 709d03f8af4da4204849a70f01798e7cebba2e32 by nikita.ppv
[LVI] Clarify getValueAt/getValueInBlock doc comments (NFC)

The lattice value returned by getValueInBlock() holds at the start
of the block, not at the end. Also make it clearer what the
difference between getValueInBlock() and getValueAt() is.
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
Commit 4f6e11948c37b58e307df5aeeca4c27c546e371e by nikita.ppv
[CVP] Make srem test more robust (NFC)

D69686 will be able to determine that the icmp is always false.
As this is not the purpose of the test, use a different modulus
that doesn't trivialize the condition.
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/srem.ll
Commit 7b782062b4d580e48ab724e278f38cc3da763f02 by benny.kra
[InstCombine] Simplify code. NFCI.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
Commit 50bd71e1d727f2fb82bfa306da00e386267572da by i
[NewPM] Port ConstraintElimination to the new pass manager

If -enable-constraint-elimination is specified, add it to the -O2/-O3 pipeline.
(-O1 uses a separate function now.)

Reviewed By: fhahn, aeubanks

Differential Revision: https://reviews.llvm.org/D88365
The file was modifiedllvm/lib/Transforms/Scalar/ConstraintElimination.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/test/Transforms/ConstraintElimination/dom.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was addedllvm/include/llvm/Transforms/Scalar/ConstraintElimination.h
Commit fe79061be2b2915993b5568cddc6b64ea0a525f6 by nikita.ppv
[LVI][CVP] Use block value when simplifying icmps

Add a flag to getPredicateAt() that allows making use of the block
value. This allows us to take into account range information from
the current block, rather than only information that is threaded
over edges, making the icmp simplification in CVP a lot more
powerful.

I'm not changing getPredicateAt() to use the block value
unconditionally to avoid any impact on the JumpThreading pass,
which is somewhat picky about LVI query order.

Most test changes here are just icmps that now get dropped (while
previously only a result used in a return was replaced). The three
tests in icmp.ll show some representative improvements. Some of
the folds this enables have been covered by IPSCCP in the meantime,
but LVI can reason about some cases which are hard to support in
IPSCCP, such as in test_br_cmp_with_offset.

The compile-time time cost of doing this is fairly minimal, with
a ~0.05% CTMark regression for ReleaseThinLTO:
https://llvm-compile-time-tracker.com/compare.php?from=709d03f8af4da4204849a70f01798e7cebba2e32&to=6236fd503761f43c99f4537121e057a01056f185&stat=instructions

This is because the block values will typically already be queried
and cached by other CVP optimizations anyway.

Differential Revision: https://reviews.llvm.org/D69686
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/basic.ll
The file was modifiedllvm/include/llvm/Analysis/LazyValueInfo.h
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/range.ll
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
Commit 01bde7310bb92d39d86ff4ceae8ae626555e30eb by nikita.ppv
[CVP] Remove unnecessary block splits in tests (NFC)

These are no longer necessary since D69686.
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/basic.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/overflows.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/overflow_predicate.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/select.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/minmaxabs.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/srem.ll
Commit 0103df7903b328aa4ca8116a5c4cb4c01d48ea7d by huberjn
[OpenMP] Add Missing _static Director for OpenMP Documentation

Summary:
Adding a missing directory needed for generating Sphinx documentation without
errors. Directory current contains a placeholder image just to populate the
directory.
The file was addedopenmp/docs/_static/lines.gif
Commit 155ac333945d7af507bb28dc6f2539300a4c0666 by Dávid Bolvanský
[BuildLibCalls] Add noalias for strcat and stpcpy

strcat:
destination and source shall not overlap. (http://www.cplusplus.com/reference/cstring/strcat/)

stpcpy:
The strings may not overlap, and the destination string dest must be  large enough to receive the copy. (https://man7.org/linux/man-pages/man3/stpcpy.3.html)

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D88335
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/annotate.ll
Commit 3d2bab176f528de8d24512e092b2bfb319899b1e by clementval
[mlir][openacc] Remove detach and delete operands from acc.data

This patch remove the detach and delete operands. Those operands represent the detach
and delete clauses that will appear in another operation acc.exit_data

Reviewed By: kiranktp, kiranchandramohan

Differential Revision: https://reviews.llvm.org/D88326
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/test/Dialect/OpenACC/ops.mlir
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
Commit 12ab4f8acadabdea1cc199e400c17543d213f5dd by clementval
[mlir][openacc] Switch to assembly format for acc.data

This patch remove the printer/parser for the acc.data operation since its syntax
fits nicely with the assembly format. It reduces the maintenance for this op.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D88330
The file was modifiedmlir/test/Dialect/OpenACC/ops.mlir
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
Commit fa08afc3207c4b41b82a1fdfe8265712ec0509b0 by clementval
[mlir][openacc] Add if, deviceptr operands and default attribute

Add operands to represent if and deviceptr. Default clause is represented with
an attribute.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D88331
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/test/Dialect/OpenACC/ops.mlir
Commit 9dcd96f728863d40d6f5922ed52732fdd728fb5f by richard
Canonicalize declaration pointers when forming APValues.

References to different declarations of the same entity aren't different
values, so shouldn't have different representations.

Recommit of e6393ee813178e9d3306b8e3c6949a4f32f8a2cb with fixed handling
for weak declarations. We now look for attributes on the most recent
declaration when determining whether a declaration is weak. (Second
recommit with further fixes for mishandling of weak declarations. Our
behavior here is fundamentally unsound -- see PR47663 -- but this
approach attempts to not make things worse.)
The file was modifiedclang/lib/AST/APValue.cpp
The file was modifiedclang/test/OpenMP/ordered_messages.cpp
The file was modifiedclang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p9.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/test/CodeGenCXX/weak-external.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/include/clang/AST/APValue.h
The file was modifiedclang/lib/AST/DeclBase.cpp
The file was modifiedclang/lib/CodeGen/CGExprConstant.cpp
Commit df2a1f2aabf6692daa83e849f0fdc37f9e402fca by richard
Add profiling support for APValues.

For C++20 P0732R2; unused so far. Will be used and tested by a follow-on
commit.
The file was modifiedclang/lib/AST/APValue.cpp
The file was modifiedclang/include/clang/AST/APValue.h
Commit 15985952aca66fcd5ae8b6c8a007a3a694848a03 by mkazantsev
[Test] Add tests where we can replace condition with invariants
The file was modifiedllvm/test/Transforms/IndVarSimplify/predicated_ranges.ll
Commit a2578e92e2928eefa108939b15a7a28c8a8cb4b3 by aeubanks
Revert "Reland [CodeGen] emit CG profile for COFF object file"

This reverts commit 506b6170cb513f1cb6e93a3b690c758f9ded18ac.

This still causes link errors, see https://crbug.com/1130780.
The file was modifiedllvm/lib/Target/TargetLoweringObjectFile.cpp
The file was modifiedllvm/include/llvm/Target/TargetLoweringObjectFile.h
The file was modifiedllvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was removedllvm/test/MC/COFF/cgprofile.ll
Commit dd3ba72066800361145431b3c6a92011bd7a62be by lkail
[PowerPC] Add tests for `select` patterns. NFC.
The file was addedllvm/test/CodeGen/PowerPC/select.ll
Commit bafdd11326a46421b68f68c794fd189c77a32e15 by david.sherwood
[SVE] Replace / operator in TypeSize/ElementCount with divideCoefficientBy

After some recent upstream discussion we decided that it was best
to avoid having the / operator for both ElementCount and TypeSize,
since this could give the impression that these classes can be used
in the same way as basic integer integer types. However, division
for scalable types is a bit odd because we are only dividing the
minimum quantity by a value, as opposed to something like:

  (MinSize * Vscale) / SomeValue

This is why when performing division it's important the caller
first establishes whether the operation makes sense, perhaps by
calling isKnownMultipleOf() prior to division. The caller must now
explictly call divideCoefficientBy() on the class to perform the
operation.

Differential Revision: https://reviews.llvm.org/D87700
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/include/llvm/Support/MachineValueType.h
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
The file was modifiedllvm/unittests/IR/VectorTypesTest.cpp
The file was modifiedllvm/include/llvm/Support/TypeSize.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/ValueTypes.h
Commit b3a722e66b75328ab5e2eb5c8572022cb083855b by yedeng.yd
[Coroutines] Reuse storage for local variables with non-overlapping lifetimes

bug 45566 shows the process of building coroutine frame won't consider
that the lifetimes of different local variables are not overlapped,
which means the compiler could generates smaller frame.

This patch calculate the lifetime range of each alloca by StackLifetime
class. Then the patch build non-overlapped sets for allocas whose
lifetime ranges are not overlapped. We use the largest type in a
non-overlapped set as the field type in the frame. In insertSpills
process, if we find the type of field is not the same with the alloca,
we cast the pointer to the field type to the pointer to the alloca type.
Since the lifetime range of alloca in one non-overlapped set is not
overlapped with each other, it should be ok to reuse the storage space
in the frame.

Test plan: check-llvm, check-clang, cppcoro, folly

Reviewers: junparser, lxfind, modocache

Differential Revision: https://reviews.llvm.org/D87596
The file was modifiedllvm/include/llvm/Transforms/Coroutines.h
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was addedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-01.ll
The file was addedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-02.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroInternal.h
The file was addedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-00.ll
The file was addedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-03.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CMakeLists.txt
The file was modifiedllvm/include/llvm/Transforms/Coroutines/CoroSplit.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/Coroutines.cpp
Commit 070a1d562b303e564e40d831f6dc125793e19b38 by Raphael Isemann
[lldb] Remove nothreadallow from SWIG's __str__ wrappers to work around a Python>=3.7 crash

Usually when we enter a SWIG wrapper function from Python, SWIG automatically
adds a `Py_BEGIN_ALLOW_THREADS`/`Py_END_ALLOW_THREADS` around the call to the SB
API C++ function. This will ensure that Python's GIL is released when we enter
LLDB and locked again when we return to the wrapper code.

D51569 changed this behaviour but only for the generated `__str__` wrappers. The
added `nothreadallow` disables the injection of the GIL release/re-acquire code
and the GIL is now kept locked when entering LLDB and is expected to be still
locked when returning from the LLDB implementation. The main reason for that was
that back when D51569 landed the wrapper itself created a Python string. These
days it just creates a std::string and SWIG itself takes care of getting the GIL
and creating the Python string from the std::string, so that workaround isn't
necessary anymore.

This patch just removes `nothreadallow` so that our `__str__` functions now
behave like all other wrapper functions in that they release the GIL when
calling into the SB API implementation.

The motivation here is actually to work around another potential bug in LLDB.
When one calls into the LLDB SB API while holding the GIL and that call causes
LLDB to interpret some Python script via `ScriptInterpreterPython`, then the GIL
will be unlocked when the control flow returns from the SB API. In the case of
the `__str__` wrapper this would cause that the next call to a Python function
requiring the GIL would fail (as SWIG will not try to reacquire the GIL as it
isn't aware that LLDB removed it).

The reason for this unexpected GIL release seems to be a workaround for recent
Python versions:
```
    // The only case we should go further and acquire the GIL: it is unlocked.
    if (PyGILState_Check())
      return;
```

The early-exit here causes `InitializePythonRAII::m_was_already_initialized` to
be always false and that causes that `InitializePythonRAII`'s destructor always
directly unlocks the GIL via `PyEval_SaveThread`. I'm investigating how to
properly fix this bug in a follow up patch, but for now this straightforward
patch seems to be enough to unblock my other patches (and it also has the
benefit of removing this workaround).

The test for this is just a simple test for `std::deque` which has a synthetic
child provider implemented as a Python script. Inspecting the deque object will
cause `expect_expr` to create a string error message by calling
`str(deque_object)`. Printing the ValueObject causes the Python script for the
synthetic children to execute which then triggers the bug described above where
the GIL ends up being unlocked.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D88302
The file was addedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/Makefile
The file was addedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/main.cpp
The file was addedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/deque/TestDataFormatterLibcxxDeque.py
The file was modifiedlldb/bindings/macros.swig
Commit e4b9867cb69acc272157ef1baaecd9848ad18ecc by david.green
[ARM] Expand cannotInsertWDLSTPBetween to the last instruction

9d9a11c7be037 added this check for predicatable instructions between the
D/WLSTP and the loop's start, but it was missing the last instruction in
the block. Change it to use some iterators instead.

Differential Revision: https://reviews.llvm.org/D88354
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-operand.ll
Commit f39f92c1f610fcdfad74730a3e3df881e32a28c2 by sjoerd.meijer
[ARM][MVE] tail-predication: overflow checks for elementcount, cont'd

This is a reimplementation of the overflow checks for the elementcount,
i.e. the 2nd argument of intrinsic get.active.lane.mask. The element
count is lowered in each iteration of the tail-predicated loop, and
we must prove that this expression doesn't overflow.

Many thanks to Eli Friedman and Sam Parker for all their help with
this work.

Differential Revision: https://reviews.llvm.org/D88086
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-const.ll
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-basic.ll
The file was removedllvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-forced.ll
Commit 7e5a356d2bd232267aac2484519ac2c5658eca08 by benny.kra
[Coroutines] Remove unused includes. NFC.
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/include/llvm/Transforms/Coroutines/CoroSplit.h
Commit ea0f66e84856519e08b255fd1010d7f07ad0dabd by grimar
[obj2yaml][yaml2obj] - Stop recognizing SHT_MIPS_ABIFLAGS on non-MIPS targets.

Currently we are always recognizing the `SHT_MIPS_ABIFLAGS` section,
even on non-MIPS targets.

The problem of doing this is briefly discussed in D88228 which does the same for `SHT_ARM_EXIDX`:

"The problem is that `SHT_ARM_EXIDX` shares the value with `SHT_X86_64_UNWIND (0x70000001U)`.
We might have other machine specific conflicts, e.g.
`SHT_ARM_ATTRIBUTES` vs `SHT_MSP430_ATTRIBUTES` vs `SHT_RISCV_ATTRIBUTES (0x70000003U)`."

I think we should only recognize target specific sections when the machine type
matches. I.e. `SHT_MIPS_*` should be recognized only on `MIPS`, `SHT_ARM_*`
only on `ARM` etc.

This patch stops recognizing `SHT_MIPS_ABIFLAGS` on `non-MIPS` targets.

Note: I had to update `ScalarEnumerationTraits<ELFYAML::MIPS_ISA>::enumeration`, because
otherwise test crashes, calling `llvm_unreachable`.

Differential revision: https://reviews.llvm.org/D88294
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/mips-abi-flags.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/obj2yaml/ELF/mips-abi-flags.yaml
Commit cabee89bed69ce37c9e588f9190ed9c33f6bfdee by Raphael Isemann
[lldb] Reference STL types in import-std-module tests

With the recent patches to the ASTImporter that improve template type importing
(D87444), most of the import-std-module tests can now finally import the
type of the STL container they are testing. This patch removes most of the casts
that were added to simplify types to something the ASTImporter can import
(for example, std::vector<int>::size_type was casted to `size_t` until now).
Also adds the missing tests that require referencing the container type (for
example simply printing the whole container) as here we couldn't use a casting
workaround.

The only casts that remain are in the forward_list tests that reference
the iterator and the stack test. Both tests are still failing to import the
respective container type correctly (or crash while trying to import).
The file was modifiedlldb/test/API/commands/expression/import-std-module/forward_list-dbg-info-content/TestDbgInfoContentForwardListFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/shared_ptr/TestSharedPtrFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/unique_ptr-dbg-info-content/TestUniquePtrDbgInfoContent.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/empty-module/TestEmptyStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/deque-basic/TestDequeFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/vector-bool/TestVectorBoolFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/queue/TestQueueFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/weak_ptr/TestWeakPtrFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/conflicts/TestStdModuleWithConflicts.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/unique_ptr/main.cpp
The file was modifiedlldb/test/API/commands/expression/import-std-module/vector-of-vectors/TestVectorOfVectorsFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/forward_list/TestForwardListFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/list-dbg-info-content/TestDbgInfoContentListFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtrFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/sysroot/TestStdModuleSysroot.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/deque-dbg-info-content/TestDbgInfoContentDequeFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/no-std-module/TestMissingStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/shared_ptr-dbg-info-content/TestSharedPtrDbgInfoContentFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/unique_ptr/TestUniquePtrFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/vector-dbg-info-content/TestDbgInfoContentVectorFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/list/TestListFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/forward_decl_from_module/TestForwardDeclFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/basic/TestImportStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/pair/TestPairFromStdModule.py
The file was modifiedlldb/test/API/commands/expression/import-std-module/unique_ptr-dbg-info-content/main.cpp
The file was modifiedlldb/test/API/commands/expression/import-std-module/vector/TestVectorFromStdModule.py
Commit dab991716483f2b80bf8dbf8e7ba26ba3d49855d by grimar
[yaml2obj][obj2yaml] - Add a support for SHT_ARM_EXIDX section.

This adds the support for SHT_ARM_EXIDX sections to obj2yaml/yaml2obj tools.

SHT_ARM_EXIDX is a ARM specific index table filled with entries.
Each entry consists of two 4-bytes values (words).
(https://developer.arm.com/documentation/ihi0038/c/?lang=en#index-table-entries)

Differential revision: https://reviews.llvm.org/D88228
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/ARM/unwind-non-relocatable.test
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was addedllvm/test/tools/obj2yaml/ELF/arm-exidx-section.yaml
The file was addedllvm/test/tools/yaml2obj/ELF/arm-exidx-section.yaml
Commit 0c671bfe00a120131c0fe070e5e7b7b613e823f1 by llvm-dev
[InstCombine] Add tests for vector rotate by constants with undefs.
The file was modifiedllvm/test/Transforms/InstCombine/rotate.ll
Commit 286d3fc7500dfa6a947b217d0e87d1764d2242b8 by jay.foad
[AMDGPU] Split R600 and GCN bfi patterns

This is in preparation for making the GCN patterns divergence-aware.
NFC.

Differential Revision: https://reviews.llvm.org/D88244
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/EvergreenInstructions.td
Commit 2806f586dca78756cc2fbadf09c0859dda4a760e by jay.foad
[AMDGPU] Make bfi patterns divergence-aware

This tends to increase code size but more importantly it reduces vgpr
usage, and could avoid costly readfirstlanes if the result needs to be
in an sgpr.

Differential Revision: https://reviews.llvm.org/D88245
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.v2i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/bfi_int.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.ll
The file was modifiedllvm/lib/Target/AMDGPU/SOPInstructions.td
Commit bab1a17ad7761ae61e5841c2fb905de59cb8c2da by jay.foad
[AMDGPU] Add bfi immediate pattern

Differential Revision: https://reviews.llvm.org/D88246
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.v2i16.ll
Commit 40e86ca749a7c38875858d1005f34d1e2f53743b by qiucofan
[PowerPC] Clean-up mayRaiseFPException bits

According to POWER ISA, floating point instructions altering exception
bits in FPSCR should be 'may raise FP exception'. (excluding those
read or write the whole FPSCR directly, like mffs/mtfsf) We need to
model FPSCR well in future patches to handle the special case properly.

Instructions added mayRaiseFPException:
- fre(s)/frsqrte(s)
- fmadd(s)/fmsub(s)/fnmadd(s)/fnmsub(s)
- xscmpoqp/xscmpuqp/xscmpeqdp/xscmpgedp/xscmpgtdp
- xscvdphp/xscvhpdp/xvcvhpsp/xvcvsphp/xsrqpxp
- xsmaxcdp/xsincdp/xsmaxjdp/xsminjdp

Instructions removed mayRaiseFPException:
- xstdivdp/xvtdiv(d|s)p/xstsqrtdp/xvtsqrt(d|s)p
- xsabsdp/xsnabsdp/xvabs(d|s)p/xvnabs(d|s)p
- xsnegdp/xscpsgndp/xvneg(d|s)p/xvcpsgn(d|s)p
- xvcvsxwdp/xvcvuxwdp
- xscvdpspn/xscvspdpn

Reviewed By: steven.zhang

Differential Revision: https://reviews.llvm.org/D87738
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrVSX.td
The file was modifiedllvm/test/CodeGen/PowerPC/nofpexcept.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
Commit 0b44bb8d40af9c634203a778fe34a9a4459d288f by Raphael Isemann
[lldb][NFC] Minor cleanup in CxxModuleHandler::tryInstantiateStdTemplate

Using llvm::None and `contains` instead of `find`.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/CxxModuleHandler.cpp
Commit 018066d9475dac8d4b7a91bf967ea9231ff4b3f1 by sam.mccall
[clangd] Add a tweak for filling in enumerators of a switch statement.

Add a tweak that populates an empty switch statement of an enumeration type with all of the enumerators of that type.

Before:
```
enum Color { RED, GREEN, BLUE };
void f(Color color) {
  switch (color) {}
}
```

After:
```
enum Color { RED, GREEN, BLUE };
void f(Color color) {
  switch (color) {
  case RED:
  case GREEN:
  case BLUE:
    break;
  }
}
```

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D88383
The file was addedclang-tools-extra/clangd/refactor/tweaks/PopulateSwitch.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TweakTests.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/CMakeLists.txt
Commit 31b3f32104db1293aec74ce865f7891ec8019090 by llvmgnsyncbot
[gn build] Port 018066d9475
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/refactor/tweaks/BUILD.gn
Commit 6b5198f06b585e1fa3be530be2fbc76dd2d442c1 by llvm-dev
[X86] Simplify broadcast mask detection with isUndefOrEqual helper.

Add an additional isUndefOrEqual variant that matches an entire mask, not just a single value.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit e0820d87e3cd135a88ece609bef18a0401a85718 by llvm-dev
[X86] Flip isShuffleEquivalent argument order to match isTargetShuffleEquivalent

A while ago, we converted isShuffleEquivalent/isTargetShuffleEquivalent to both use IsElementEquivalent internally.

This allows us to make the shuffle args optional like isTargetShuffleEquivalent and update foldShuffleOfHorizOp to use isShuffleEquivalent (which it should as its using a ISD::VECTOR_SHUFFLE mask).
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit a48f6079f288619fcc7656e89e8aa7cd0aac1281 by daniel.kiss
[AArch64] Generate .note.gnu.property based on module flags.

Flags of the module derived exclusively from the compiler flag `-mbranch-protection`.
The note is generated based on the module flags accordingly.
After this change in case of compile unit without function won't have
the .note.gnu.property if the compiler flag is not present [1].

[1] https://bugs.llvm.org/show_bug.cgi?id=46480

Reviewed By: chill

Differential Revision: https://reviews.llvm.org/D80791
The file was removedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-7.ll
The file was removedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-6.ll
The file was removedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-8.ll
The file was modifiedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-3.ll
The file was modifiedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-4.ll
The file was modifiedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-2.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was modifiedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-1.ll
The file was modifiedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-0.ll
The file was removedllvm/test/CodeGen/AArch64/note-gnu-property-pac-bti-5.ll
Commit 0ad793f321ed8714870cacf0421e60cf9a3b7468 by flo
[SCEV] Also use info from assumes in applyLoopGuards.

Similar to collecting information from branches guarding a loop, we can
also collect information from assumes dominating the loop header.

Fixes PR47247.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D87854
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit dabb14cadd356d3628b4f935c735b163a0f68f38 by llvm-dev
[InstCombine] matchRotate - allow undef in uniform constant rotation amounts (PR46895)

An extension to D87452, we can safely permit undefs in the uniform/splat detection

https://alive2.llvm.org/ce/z/nT-ptN

Differential Revision: https://reviews.llvm.org/D88402
The file was modifiedllvm/test/Transforms/InstCombine/rotate.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit 1696dd27fb619fbf6d28cf6aa0d74cf8ef883723 by sjoerd.meijer
[ARM][MVE] Enable tail-predication by default

We have been running tests/benchmarks downstream with tail-predication enabled
for some time now and this behaves as expected: we are not aware of any
correctness issues, and this performs better across the board than with
tail-predication disabled. Time to flip the switch!

Differential Revision: https://reviews.llvm.org/D88093
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-reduces-vf.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
Commit bf890dcb0f5eb05b1a98cbd1cdd24c0c4ece8f8d by hokein.wu
[clang] Don't emit "no member" diagnostic if the lookup fails on an invalid record decl.

The "no member" diagnostic is likely bogus.

Reviewed By: sammccall, #libc

Differential Revision: https://reviews.llvm.org/D86765
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedlibcxx/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/function_type_default_deleter.fail.cpp
The file was modifiedclang/test/SemaCXX/access-base-class.cpp
Commit fdfe324da195ebd9b9c691f006b0d6ccc64365e1 by alexfh
[clang-tidy] IncludeInserter: allow <> in header name

This adds a pair of overloads for create(MainFile)?IncludeInsertion methods that
use the presence of the <> in the file name to control whether the #include
directive will use angle brackets or quotes. Motivating examples:
https://reviews.llvm.org/D82089#inline-789412 and
https://github.com/llvm/llvm-project/blob/master/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp#L433

The overloads with the IsAngled parameter can be removed after the users are
updated.

Update usages of createIncludeInsertion.

Update (almost all) usages of createMainFileIncludeInsertion.

Reviewed By: hokein

Differential Revision: https://reviews.llvm.org/D85666
The file was modifiedclang-tools-extra/clang-tidy/utils/IncludeInserter.cpp
The file was modifiedclang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/ReplaceRandomShuffleCheck.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/modernize-make-unique.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/abseil/StringFindStartswithCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines-init-variables.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-init-variables.cpp
The file was modifiedclang-tools-extra/unittests/clang-tidy/IncludeInserterTest.cpp
The file was modifiedclang-tools-extra/clang-tidy/performance/TypePromotionInMathFnCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/utils/IncludeInserter.h
Commit 4ba00619ee70be6eda1d6fbd37471636145d1140 by grimar
[llvm-readobj/elf] - Fix the PREL31 relocation computation used for dumping arm32 unwind info (-u).

This is a part of https://bugs.llvm.org/show_bug.cgi?id=47581.

We have the following computation:
```
(1) uint64_t Location = Address & 0x7fffffff;
(2) if (Location & 0x04000000)
(3)   Location |= (uint64_t) ~0x7fffffff;
(4) return Location + Place;
```

At line 2 there is a mistype. The constant should be `0x40000000`,
not `0x04000000`, because the intention here is to sign extend the `Location`,
which is the 31 bit signed value.

Differential revision: https://reviews.llvm.org/D88407
The file was modifiedllvm/tools/llvm-readobj/ARMEHABIPrinter.h
The file was modifiedllvm/test/tools/llvm-readobj/ELF/ARM/unwind-non-relocatable.test
Commit d3a8e333ec9db769b0335cd72ed6acf0d3d0b2ba by jay.foad
[AMDGPU] Reformat SITargetLowering::isSDNodeSourceOfDivergence. NFC.
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 3d1d089155303feed51c2380827325250dd08dd7 by sam.parker
[NFC][ARM] Factor out some logic for LoLoops.

Create a DCE function that accepts an instruction.
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
Commit 63ee42a06bdb716f80ffc96ff8aa4162ed982e33 by llvm-dev
[InstCombine] matchRotate - force splat of uniform constant rotation amounts (PR46895)

Fixes minor bug in D88402 where we were using the original shift constant (with undefs) instead of one with the splat values (re)splatted to all elements.
The file was modifiedllvm/test/Transforms/InstCombine/rotate.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit c372809f5a9f32c90b468094c19ae8e3b39566ed by paul
[TableGen] Improved messages in PseudoLoweringEmitter.
The file was modifiedllvm/lib/TableGen/Error.cpp
The file was modifiedllvm/include/llvm/TableGen/Error.h
The file was modifiedllvm/utils/TableGen/PseudoLoweringEmitter.cpp
Commit ba8911d560ef85cae55fc45440afa3bef374f1e0 by aqjune
[ValueTracking] Fix analyses to update CxtI to be phi's incoming edges' terminators

It was mentioned that D88276 that when a phi node is visited, terminators at their incoming edges should be used for CtxI.
This is a patch that makes two functions (ComputeNumSignBitsImpl, isGuaranteedNotToBeUndefOrPoison) to do so.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D88360
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
Commit 9b0b09671cddf0283f1a8b351dfec10aff6c3dc2 by mcinally
[SVE] Lower fixed length VECREDUCE_[UMAX|UMIN] to Scalable

Essentially the same as the signed variants from D88259. Also includes a clean up of the lowering function.

Differential Revision: https://reviews.llvm.org/D88317
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-reduce.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 675431b9878776e3c919b79162774a9cdabdaa4c by meera.nakrani
[ARM] Added more patterns to generate SSAT/USAT with shift

Added patterns to generate an SSAT or USAT with shift for
SSAT/USAT instructions that are matched from IR patterns.

Differential Revision: https://reviews.llvm.org/D88145
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
The file was modifiedllvm/test/CodeGen/ARM/usat-with-shift.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
The file was modifiedllvm/test/CodeGen/ARM/ssat-with-shift.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
Commit 509fba75dff2382b867f5962e02fb0a899a5fa18 by tpopp
[llvm] Fix unused variable in non-debug configurations
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
Commit e82a0084d322948b94a5ca3213237d5eeab4920f by sam.parker
[ARM][LowOverheadLoops] Cleanup and re-arrange

Rename and reorganise how we decide where to put the LoopStart
instruction.
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
Commit 0e0a0c8d2ce4945c3c14d2805ff264c407143423 by jay.foad
[AMDGPU] Reformat AMDGPUTargetLowering::isSDNodeAlwaysUniform. NFC.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Commit 5dbf80cad9556e222c4383960007fc0b27ea9541 by michael.hliao
[clang][codegen] Annotate `correctly-rounded-divide-sqrt-fp-math` fn-attr for OpenCL only.

- `-cl-fp32-correctly-rounded-divide-sqrt` is an OpenCL-specific option
  and `correctly-rounded-divide-sqrt-fp-math` should be added for OpenCL
  at most.

Differential revision: https://reviews.llvm.org/D88303
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/test/CodeGen/math-libcalls.c
The file was modifiedclang/test/CodeGen/complex-libcalls.c
The file was modifiedclang/test/CodeGen/math-builtins.c
The file was modifiedclang/test/CodeGen/complex-builtins.c
Commit f775fe59640a2e837ad059a8f40e26989d4f9831 by Jonas Devlieghere
Revert "Add the ability to write target stop-hooks using the ScriptInterpreter."

This temporarily reverts commit b65966cff65bfb66de59621347ffd97238d3f645
while Jim figures out why the test is failing on the bots.
The file was modifiedlldb/source/Target/Target.cpp
The file was modifiedlldb/include/lldb/Symbol/SymbolContext.h
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
The file was removedlldb/test/API/commands/target/stop-hooks/stop_hook.py
The file was removedlldb/test/Shell/Commands/command-stop-hook-output.test
The file was modifiedlldb/include/lldb/Interpreter/ScriptInterpreter.h
The file was removedlldb/test/API/commands/target/stop-hooks/TestStopHookScripted.py
The file was modifiedlldb/docs/use/python-reference.rst
The file was modifiedlldb/source/Commands/Options.td
The file was modifiedlldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp
The file was modifiedlldb/include/lldb/Target/Target.h
The file was modifiedlldb/test/API/commands/target/stop-hooks/main.c
The file was modifiedlldb/bindings/python/python-wrapper.swig
The file was modifiedlldb/test/API/commands/target/stop-hooks/TestStopHooks.py
The file was removedlldb/test/Shell/Commands/Inputs/stop_hook.py
The file was modifiedlldb/source/Commands/CommandObjectTarget.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
The file was modifiedlldb/source/Symbol/SymbolContext.cpp
The file was modifiedlldb/bindings/python/python-swigsafecast.swig
Commit b5f7e9e26cd06d034bf68f63de6ae6d37b032b5e by usx
[clangd] Add a trained DecisionForest for code completion.

Replaces the dummy CodeCompletion model with a trained DecisionForest
model.
The features.json needs to be manually curated specifying the features
to be used. This is a one-time cost and does not change if the model
changes until we decide to add/remove features.

Differential Revision: https://reviews.llvm.org/D88071
The file was modifiedclang-tools-extra/clangd/quality/model/features.json
The file was modifiedclang-tools-extra/clangd/quality/model/forest.json
Commit 06bc685fa2400cc28282ab6dd3c917d45bfa662f by Vedant Kumar
[ubsan] nullability-arg: Fix crash on C++ member pointers

Extend -fsanitize=nullability-arg to handle call sites which accept C++
member pointers.

rdar://62476022

Differential Revision: https://reviews.llvm.org/D88336
The file was addedclang/test/CodeGenCXX/ubsan-nullability-arg.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
Commit 07b7a24e3fe86fe64ba5a56629cb290f3bd3b86d by mikhail.maltsev
[unittests] Preserve LD_LIBRARY_PATH in crash recovery test

We need to preserve the LD_LIBRARY_PATH environment variable when
spawning a child process (certain setups rely on non-standard paths
for e.g. libstdc++). In order to achieve this, set
LLVM_CRC_UNIXCRCRETURNCODE in the parent process instead of creating
the child's environment from scratch.

Reviewed By: aganea

Differential Revision: https://reviews.llvm.org/D88308
The file was modifiedllvm/unittests/Support/CrashRecoveryTest.cpp
Commit 37ef2255b6422b8e0b93f0becd340e041047a2aa by jonathan_roelofs
[AArch64] Reuse map iterator instead of double lookup. NFC
The file was modifiedllvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
Commit 76753a597b5d9bf4addf19399ae30c4b3870a4a6 by stellaraccident
Add FunctionType to MLIR C and Python bindings.

Differential Revision: https://reviews.llvm.org/D88416
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
The file was modifiedmlir/lib/CAPI/IR/StandardTypes.cpp
The file was modifiedmlir/include/mlir-c/StandardTypes.h
The file was modifiedmlir/test/Bindings/Python/ir_types.py
The file was modifiedmlir/test/CAPI/ir.c
Commit a8b55b6939a5962d5b2bf1a57980562d6f3045e5 by usx
[clangd] Use Decision Forest to score code completions.

By default clangd will score a code completion item using heuristics model.

Scoring can be done by Decision Forest model by passing `--ranking_model=decision_forest` to
clangd.

Features omitted from the model:
- `NameMatch` is excluded because the final score must be multiplicative in `NameMatch` to allow rescoring by the editor.
- `NeedsFixIts` is excluded because the generating dataset that needs 'fixits' is non-trivial.

There are multiple ways (heuristics) to combine the above two features with the prediction of the DF:
- `NeedsFixIts` is used as is with a penalty of `0.5`.

Various alternatives of combining NameMatch `N` and Decision forest Prediction `P`
- N * scale(P, 0, 1): Linearly scale the output of model to range [0, 1]
- N * a^P:
  - More natural: Prediction of each Decision Tree can be considered as a multiplicative boost (like NameMatch)
  - Ordering is independent of the absolute value of P. Order of two items is proportional to `a^{difference in model prediction score}`. Higher `a` gives higher weightage to model output as compared to NameMatch score.

Baseline MRR = 0.619
MRR for various combinations:
N * P = 0.6346, advantage%=2.5768
N * 1.1^P = 0.6600, advantage%=6.6853
N * **1.2**^P = 0.6669, advantage%=**7.8005**
N * **1.3**^P = 0.6668, advantage%=**7.7795**
N * **1.4**^P = 0.6659, advantage%=**7.6270**
N * 1.5^P = 0.6646, advantage%=7.4200
N * 1.6^P = 0.6636, advantage%=7.2671
N * 1.7^P = 0.6629, advantage%=7.1450
N * 2^P = 0.6612, advantage%=6.8673
N * 2.5^P = 0.6598, advantage%=6.6491
N * 3^P = 0.6590, advantage%=6.5242
N * scaled[0, 1] = 0.6465, advantage%=4.5054

Differential Revision: https://reviews.llvm.org/D88281
The file was modifiedclang-tools-extra/clangd/Quality.cpp
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
The file was modifiedclang-tools-extra/clangd/CodeComplete.cpp
The file was modifiedclang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
The file was modifiedclang-tools-extra/clangd/Quality.h
The file was modifiedclang-tools-extra/clangd/CodeComplete.h
Commit ad4f11a9d38339848318b4a476a8d3d53a7d1f3f by llvm-dev
[InstCombine] Add basic trunc(shr(trunc(x),c)) tests

Helps improve the minor regressions noticed on D88316
The file was addedllvm/test/Transforms/InstCombine/trunc-shift-trunc.ll
Commit a52e78012a548c231fb8cba81861f6ffb2246726 by Jessica Paquette
[GlobalISel] Combine (xor (and x, y), y) -> (and (not x), y)

When we see this:

```
%and = G_AND %x, %y
%xor = G_XOR %and, %y
```

Produce this:

```
%not = G_XOR %x, -1
%new_and = G_AND %not, %y
```

as long as we are guaranteed to eliminate the original G_AND.

Also matches all commuted forms. E.g.

```
%and = G_AND %y, %x
%xor = G_XOR %y, %and
```

will be matched as well.

Differential Revision: https://reviews.llvm.org/D88104
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-xor-of-and-with-same-reg.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64Combine.td
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
Commit f55a5186c6c005fe171a35a832000829cd00cd2a by Jessica Paquette
[AArch64][GlobalISel] Support shifted register form in emitTST

Support emitting ANDSXrs and ANDSWrs in `emitTST`. Update opt-fold-compare.mir
to show that it works.

Differential Revision: https://reviews.llvm.org/D87530
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/opt-fold-compare.mir
Commit 1121a583b8875d7c621f32b3a42498986c0617d9 by spatel
[CostModel] split handling of intrinsics from other calls

This should be close to NFC (no-functional-change), but I
can't completely rule out that some call on some target
travels down a different path. There's an especially large
amount of code spaghetti in this part of the cost model.

The goal is to clean up the intrinsic cost handling so
we can canonicalize to the new min/max intrinsics without
causing regressions.
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
Commit 745abbbb852e3c0006f22b7beade820ac978252c by spatel
[CostModel] move early exit for free intrinsics

This should be NFC unless some target was expecting that
some form of cttz/ctlz/memcpy is free in terms of size/latency
but not free in throughput cost.
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
Commit 9d7ec46f5740d7626171c2b8198f825176991e0a by Jessica Paquette
[AArch64][GlobalISel] Infer whether G_PHI is going to be a FPR in regbankselect

Some instructions (G_LOAD, G_SELECT, G_UNMERGE_VALUES) check if their uses
will define/use FPRs (using `onlyUsesFP` and `onlyDefinesFP`).

The register bank of a use isn't necessarily known when an instruction asks for
this.

Teach `hasFPConstraints` to look at the instructions feeding into a G_PHI when
its destination bank is unknown. If any of them are FPR, assume the entire
G_PHI will also be assigned a FPR.

Since a phi can have many inputs, and those inputs can in turn be phis,
restrict the search depth to a very low number.

Also improve the docs for `hasFPConstraints` and friends a little.

This is a 0.3% code size improvement on CTMark/Bullet at -O3, and a 0.2% code
size improvement at CTMark/pairlocalalign at -O3.

Differential Revision: https://reviews.llvm.org/D88177
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.h
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/regbank-fp-use-def.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
Commit 4c41fb5ad70caeda7f03f0049fb1dff9934dfc53 by aheejin
[WebAssembly] Use wasm::Signature for in ObjectWriter (NFC)

There are two `WasmSignature` structs, one in
include/llvm/BinaryFormat/Wasm.h and the other in
lib/MC/WasmObjectWriter.cpp. I don't know why they got separated in this
way in the first place, but it seems we can unify them to use the one in
Wasm.h for all cases.

Reviewed By: dschuff, sbc100

Differential Revision: https://reviews.llvm.org/D88428
The file was modifiedllvm/lib/MC/WasmObjectWriter.cpp
Commit d047bb1cf69316b39dd67ecc5af669414be9152c by llvm-dev
[InstCombine] Add trunc(shr(trunc(x),c)) non-uniform vector tests
The file was modifiedllvm/test/Transforms/InstCombine/trunc-shift-trunc.ll
Commit 06e68f05dafb96ea5395d2fed669fccdcd07f61f by d.c.ddcc
[AddressSanitizer] Copy type metadata to prevent miscompilation

When ASan and e.g. Dead Virtual Function Elimination are enabled, the
latter will rely on type metadata to determine if certain virtual calls can be
removed. However, ASan currently does not copy type metadata, which can cause
virtual function calls to be incorrectly removed.

Differential Revision: https://reviews.llvm.org/D88368
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/debug_info.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Commit 9b1666f3ce2b02be70f8e7f82c3ec5c81262010b by usx
[clangd] Rename evaluate() to evaluateHeuristics()

Since we have 2 scoring functions (heuristics and decision forest),
renaming the existing evaluate() function to be more descriptive of the
Heuristics being evaluated in it.

Differential Revision: https://reviews.llvm.org/D88431
The file was modifiedclang-tools-extra/clangd/CodeComplete.cpp
The file was modifiedclang-tools-extra/clangd/FindSymbols.cpp
The file was modifiedclang-tools-extra/clangd/unittests/QualityTests.cpp
The file was modifiedclang-tools-extra/clangd/XRefs.cpp
The file was modifiedclang-tools-extra/clangd/Quality.h
The file was modifiedclang-tools-extra/clangd/Quality.cpp
The file was modifiedclang-tools-extra/clangd/index/dex/Dex.cpp
Commit 6c8168324b5329c94fe7e8f9a1619802091b9bec by Amara Emerson
Revert "[AArch64][GlobalISel] Add selection support for <8 x s16>  G_INSERT_VECTOR_ELT with GPR scalar."

This reverts commit b5e87c9ef2243ecd65e0ef87a1bf303c0c26db04 as it seems to have
broken a bot.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 83dc53d30c273960c0e398b2fa7459c8ecf2b03f by jonathan_roelofs
[AArch64] reuse another map iterator. NFC
The file was modifiedllvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
Commit 54759cefdba929c89a0bde07df19d8946312a974 by ajcbik
[mlir] [VectorOps] changes to printing support for integers

(1) simplify integer printing logic by always using 64-bit print
(2) add index support (since vector<16xindex> is planned to be added)
(3) adjust naming convention print_x -> printX

Reviewed By: bkramer

Differential Revision: https://reviews.llvm.org/D88436
The file was modifiedmlir/integration_test/Dialect/LLVMIR/CPU/test-vector-reductions-int.mlir
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/lib/ExecutionEngine/CRunnerUtils.cpp
The file was modifiedmlir/integration_test/Dialect/LLVMIR/CPU/test-vector-reductions-fp.mlir
The file was modifiedmlir/test/mlir-cpu-runner/unranked_memref.mlir
The file was modifiedmlir/include/mlir/ExecutionEngine/CRunnerUtils.h
The file was modifiedmlir/test/mlir-cpu-runner/bare_ptr_call_conv.mlir
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
Commit e851aeb0a5084d968d6384fbc2257bbe05dcdacb by peter
scudo: Re-order Allocator fields for improved performance. NFCI.

Move smaller and frequently-accessed fields near the beginning
of the data structure in order to improve locality and reduce
the number of instructions required to form an access to those
fields. With this change I measured a ~5% performance improvement on
BM_malloc_sql_trace_default on aarch64 Android devices (Pixel 4 and
DragonBoard 845c).

Differential Revision: https://reviews.llvm.org/D88350
The file was modifiedcompiler-rt/lib/scudo/standalone/combined.h
Commit 0c82fa677f24d8a9656af41ac9cc64ea4f818bc0 by chfast
[python][tests] Fix string comparison with "is"
The file was modifiedclang/bindings/python/tests/cindex/test_cursor_kind.py
Commit 33125cffda96fd5c5d2b80eebfa89fbf4f6b76a6 by spatel
[CostModel] fill in arguments as part of intrinsic attribute constructor

This appears to be an error of code duplication - instead of
one constructor variant calling another, we have N similar
but not identical versions.

I think this is 'NFC' based on the current callers, but it's
hard to tell or guess the intent in all cases.
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
Commit 0156914275be5b07155ecefe4dc2d58588265abc by baptiste.saleil
[PowerPC] Legalize v256i1 and v512i1 and implement load and store of these types

This patch legalizes the v256i1 and v512i1 types that will be used for MMA.

It implements loads and stores of these types.
v256i1 is a pair of VSX registers, so for this type, we load/store the two
underlying registers. v512i1 is used for MMA accumulators. So in addition to
loading and storing the 4 associated VSX registers, we generate instructions to
prime (copy the VSX registers to the accumulator) after loading and unprime
(copy the accumulator back to the VSX registers) before storing.

This patch also adds the UACC register class that is necessary to implement the
loads and stores. This class represents accumulator in their unprimed form and
allow the distinction between primed and unprimed accumulators to avoid invalid
copies of the VSX registers associated with primed accumulators.

Differential Revision: https://reviews.llvm.org/D84968
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.td
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetMachine.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/mma-acc-memops.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedclang/lib/Basic/Targets/PPC.h
The file was modifiedclang/test/CodeGen/target-data.c
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
Commit 8b95bd3310c126e76e0714bea6003a9b1aa739fb by Jonas Devlieghere
[lldb] Enable markdown support for documentation

This enables support for writing LLDB documentation in markdown in
addition to reStructured text. We already had documentation written in
markdown (StructuredDataPlugins and DarwinLog) which will now also be
available on the website.
The file was modifiedlldb/docs/index.rst
The file was removedlldb/docs/structured_data/StructuredDataPlugins.md
The file was modifiedlldb/docs/conf.py
The file was removedlldb/docs/structured_data/DarwinLog.md
The file was addedlldb/docs/resources/structureddataplugins.md
Commit 6e54918db7f4dad0d5a6fbff140009ed6f151d2c by Jason Molenda
Once we've found a firmware binary and loaded it, don't search more

Add the flag in ProcessMachCore::DoLoadCore that stops additional
searches for the binaries when we have an LC_NOTE identifying the
firmware/standalone binary as the correct one & we have loaded it
successfully.
The file was modifiedlldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
Commit c37a8acef64213c2d9cf6fc76f958eb6bd252b4f by spatel
[CostModel] remove hack for intrinsic cost based on cost type

This hack seems to only have been necessary because of the
constructor bug noted in 33125cffd.

Once again, it's hard to prove NFC, but that's the hope...
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
Commit b59dff4b164c62fd802d06bb7be75fe31de94c71 by benny.kra
[wasm] Move WasmTraits.h to BinaryFormat

There's no dependency on Object in there and this avoids a cyclic
dependency between libMC and libObject.
The file was modifiedllvm/lib/MC/WasmObjectWriter.cpp
The file was removedllvm/include/llvm/Object/WasmTraits.h
The file was modifiedlld/wasm/SyntheticSections.h
The file was addedllvm/include/llvm/BinaryFormat/WasmTraits.h
The file was modifiedlld/wasm/Writer.cpp
Commit 46fdaac098a3a14cfbca3fe2d922ae62a100794d by Louis Dionne
[libc++] Fix heap UaF issue in coroutine test

This wasn't being flagged by older versions of ASAN, but it is now.
The file was modifiedlibcxx/test/std/experimental/language.support/support.coroutines/end.to.end/expected.pass.cpp
Commit 93ba33066c35d1430bc9305c4cb112f769c9ee30 by Louis Dionne
[libc++] Add UNSUPPORTED markup to atomic test in single-threaded mode
The file was modifiedlibcxx/test/libcxx/atomics/ext-int.verify.cpp
Commit 59f8ac3eb441b9bf1fb589facc024a03c218bece by Louis Dionne
[libc++] Replace uses of __libcpp_allocate by std::allocator<>

Both are equivalent, however std::allocator can appear in constant
expressions and is higher level.
The file was modifiedlibcxx/include/__sso_allocator
The file was modifiedlibcxx/include/valarray
Commit bd19876dc60c69f50a7110740e97c6878e56be60 by epastor
[COFF] Aliases resolve directly to defined external targets

Avoid introducing unnecessary indirection for weak-external references.

We only need to introduce ".weak.<SYMBOL>.default" when referencing a
symbol that is defined, but not external.

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D88305
The file was addedllvm/test/MC/COFF/weak-alias-labels.s
The file was modifiedllvm/test/MC/COFF/weak.s
The file was modifiedllvm/lib/MC/WinCOFFObjectWriter.cpp
Commit 2f768a68a148a73bf1f52b160a28b9f77c6d830e by llvm-dev
[InstCombine] Regenerate cast tests. NFC.
The file was modifiedllvm/test/Transforms/InstCombine/cast.ll
Commit 288c5776c9d3cb14abe1c86f961c8ff166772d28 by craig.topper
[X86] Use inlineasm flag output for the _bittest* intrinsics.

Instead of expliciting emitting a setc in the inline asm instructions,
we can use flag output. This allows the backend to use the flag
directly if it is needed by a branch. Previously we needed a test
instruction to convert the register back to a flag.

If the flag can't be used directly, the backend will emit a setcc.

Differential Revision: https://reviews.llvm.org/D87888
The file was addedllvm/test/CodeGen/X86/bittest-intrin.ll
The file was modifiedclang/test/CodeGen/bittest-intrin.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit e9628955f5e965b0a60b8df3c731fc6bfa87ad20 by ajcbik
[mlir] [VectorOps] Relaxed restrictions on vector.reduction types even more

Recently, restrictions on vector reductions were made more relaxed by
accepting any width signless integer and floating-point. This CL relaxes
the restriction even more by including unsigned and signed integers.

Reviewed By: bkramer

Differential Revision: https://reviews.llvm.org/D88442
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-reductions-si4.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-reductions-ui4.mlir
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-reductions-i4.mlir
Commit 5aa56b242951ab0f0181386ea58509f19b09206e by Amara Emerson
Revert "Revert "[AArch64][GlobalISel] Add selection support for <8 x s16>  G_INSERT_VECTOR_ELT with GPR scalar.""

This isn't a real with the codegen, it's a previously known bug in clang which
causes non-deterministic failures due to garbage bits in undef registers being
used in saturating instructions.

I'm disabling the result checking for the test until this issue is resolved.

This reverts commit 6c8168324b5329c94fe7e8f9a1619802091b9bec.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 974551d37da8352c22fd849d19cb8fb1facff680 by Jonas Devlieghere
[lldb] Add print_function import
The file was modifiedlldb/docs/conf.py
Commit e7549dafcd33ced4280a81ca1d1ee4cc78ed253f by aaron
Fix a think-o with the numerical suffixes in the docs for init_priority.
The file was modifiedclang/include/clang/Basic/AttrDocs.td
Commit d89735133582ebca482e94bc2710733a09dfb643 by thakis
[gn build] Re-run CompletionModelCodegen when input json files change
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clangd/quality/gen_decision_forest.gni
Commit 25affb04aab7ad55bd7c0dc95e8c2d3973ab8f6d by daltenty
[CMake][AIX] Limit tools in external project build

This is a follow on to D85329 which disabled some llvm tools in the
runtimes build due to XCOFF64 limitations. This change disables them
in other external project builds as well, when no list of tools is
specified in the arguments.

Reviewed By: hubert.reinterpretcast, stevewan

Differential Revision: https://reviews.llvm.org/D88310
The file was modifiedllvm/cmake/modules/LLVMExternalProjectUtils.cmake
Commit 082321909e514d3cb50adedfdeb4e8de22df9113 by Amara Emerson
[GlobalISel] Add support for lowering of vector G_SELECT and use for AArch64.

The lowering is a port of the SDAG expansion.

Differential Revision: https://reviews.llvm.org/D88364
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vabs.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-select.mir
Commit e5ef523ee46895ab5c75260b420d608f08002d97 by craig.topper
[X86] Add tests for D87883. NFC
The file was modifiedllvm/test/CodeGen/X86/bmi2.ll
Commit e53196b1e862902c74d83f0ce6f3578b1326f23d by craig.topper
[X86] Add support for calling SimplifyDemandedBits on the input of PDEP with a constant mask.

We can do several optimizations for PDEP using computeKnownBits and SimplifyDemandedBits

-If the MSBs of the output aren't demanded, those MSBs of the mask input aren't demanded either. We need to keep the most significant demanded bit of the mask and any mask bits before it.
-The number of possible ones in the mask determines how many bits of the lsbs of the other operand are demanded. Any bits of the mask we don't demand by the previous rule should not be counted.
-The result will have zeros in any position that the mask is zero.
-Since non-mask input bits can only be output in the original position or a higher bit position, the result will have at least as many trailing zeroes as the non-mask input.

Differential Revision: https://reviews.llvm.org/D87883
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/bmi2-x86_64.ll
The file was modifiedllvm/test/CodeGen/X86/bmi2.ll
Commit d092c912885cc152bef27019525b8fd0761aaaa2 by Louis Dionne
[libc++] Fix constexpr dynamic allocation on GCC 10

We're technically not allowed by the Standard to call ::operator new in
constexpr functions like __libcpp_allocate. Clang doesn't seem to complain
about it, but GCC does.
The file was modifiedlibcxx/include/new
The file was modifiedlibcxx/include/memory
The file was modifiedlibcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/destroy_at.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/specialized.algorithms/specialized.construct/construct_at.pass.cpp
Commit 2d657d1bd7f1e45722ced24e1da897ba5e87ab7a by phosek
[libcxx] Don't pass -s to libtool

This flag is the default in libtool on Darwin, and it's not supported
by llvm-libtool-darwin causing a build failure.

Differential Revision: https://reviews.llvm.org/D88449
The file was modifiedlibcxx/utils/merge_archives.py
Commit a975be0e00a12fdf09ffc9127825321c79813f33 by silvasean
[mlir][shape] Make conversion passes more consistent.

- use select-ops to make the lowering simpler
- change style of FileCheck variables names to be consistent
- change some variable names in the code to be more explicit

Differential Revision: https://reviews.llvm.org/D88258
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ConvertShapeConstraints.cpp
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
The file was modifiedmlir/test/Conversion/ShapeToStandard/convert-shape-constraints.mlir
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
Commit bd08a87cfede308f040d79b45245213afd87959a by i
[EHStreamer] Simplify sharedTypeIDs with std::mismatch

(Note that EMStreamer.cpp is largely under tested. The only test checking the prefix sharing is CodeGen/WebAssembly/eh-lsda.ll)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp
Commit e46d74b58922a427562552464d798448520e4928 by listmail
[CVP] Allow two transforms in one invocation

For a call site which had both constant deopt operands and nonnull arguments, we were missing the opportunity to recognize the later by bailing early.

This is somewhat of a speculative fix.  Months ago, I'd had a private report of performance and compile time regressions from the deopt operand folding.  I never received a test case.  However, the only possibility I see was that after that change CVP missed the nonnull fold, and we end up with a pass ordering/missed simplification issue.  So, since it's a real issue, fix it and hope.
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/deopt.ll
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
Commit e72d792c147ee506e337401e20c0f23042cc43fe by joker.eph
Guard `find_library(tensorflow_c_api ...)` by checking for TENSORFLOW_C_LIB_PATH to be set by the user

Also have CMake fails if the user provides a TENSORFLOW_C_LIB_PATH but
we can't find TensorFlow at this path.

At the moment the CMake script tries to figure if TensorFlow is
available on the system and enables support for it. This is in general
not desirable to customize build features this way and instead it is
preferable to let the user opt-in explicitly into the features they want
to enable. This is in line with other optional external dependencies
like Z3.
There are a few reasons to this but amongst others:
- reproducibility: making features "magically" enabled based on whether
  we find a package on the system or not makes it harder to handle bug
  reports from users.
- user control: they can't have TensorFlow on the system and build LLVM
  without TensorFlow right now. They also would suddenly distribute LLVM
  with a different set of features unknowingly just because their build
  machine environment would change subtly.

Right now this is motivated by a user reporting build failures on their system:

.../mesa-git/llvm-git/src/llvm-project/llvm/lib/Analysis/TFUtils.cpp:23:10: fatal error: tensorflow/c/c_api.h: No such file or directory
   23 | #include "tensorflow/c/c_api.h"
      |          ^~~~~~

It looks like we detected TensorFlow at configure time but couldn't set all the paths correctly.

Differential Revision: https://reviews.llvm.org/D88371
The file was modifiedllvm/CMakeLists.txt

Summary

  1. Add flang out of tree buildbot (details)
  2. Added mail notifier for fedora-llvm-x86_64 builder (details)
  3. Increase number of jobs from 32 to 64 for fedora-llvm-x86_64 worker (details)
  4. mail notifier for x86_64-fedora-clang builder (details)
Commit 073b104115cd8a184f8549bcc2a7ed2eac2bcc2f by diana.picus
Add flang out of tree buildbot

This builder has 2 stages: one for building llvm and mlir, and one for
building flang itself in a different build directory. In order to do an
out of tree build of flang, we need to run cmake with the path to the
flang subproject as source directory.

Differential Revision: https://reviews.llvm.org/D87085
The file was addedzorg/buildbot/builders/FlangBuilder.py
The file was modifiedbuildbot/osuosl/master/config/builders.py
The file was modifiedbuildbot/osuosl/master/config/slaves.py
Commit 24985c8fbd3aa01107bc69830e9fa73c58240bf1 by kkleine
Added mail notifier for fedora-llvm-x86_64 builder
The file was modifiedbuildbot/osuosl/master/config/status.py
Commit a352f8d0711b997b0bdcea4e0446efb10ce58984 by kkleine
Increase number of jobs from 32 to 64 for fedora-llvm-x86_64 worker
The file was modifiedbuildbot/osuosl/master/config/slaves.py
Commit 97d5478bbe04f479d67ff939bb3108b36c42e542 by kkleine
mail notifier for x86_64-fedora-clang builder
The file was modifiedbuildbot/osuosl/master/config/status.py