Changes

Summary

  1. [clangd] Hide inlay hints capability behind a command-line flag (details)
  2. [clangd] Fix build error in SemanticHighlighting.cpp (details)
  3. [clangd] Fix test failure in initialize-params.test (details)
  4. [AMDGPU][OpenMP] Enable Libomptarget runtime tests (details)
  5. [clangd] Parameter hints for dependent calls (details)
  6. [flang] Use CFI_TYPE_LAST instead of CFI_type_struct (details)
  7. [flang] Fix handling of elem_len in CFI_establish (details)
  8. [flang] Fix a bug in the character runtime (details)
  9. [AMDGPU] Do not annotate features for graphics (details)
  10. [libc] warns about missing linting only in full build mode (details)
  11. [doc] typo fixes (details)
  12. [mlir] Allow lowering cmpi/cmpf with multidimensional vectors to LLVM (details)
  13. [RISCV] Add support for fmin/fmax vector reductions (details)
  14. [clang-tidy][NFC] Short circuit getting enum options suggestions. (details)
  15. [ARM] Memory operands for MVE gathers/scatters (details)
  16. Support AArch64 PAC elf-core register read (details)
  17. [clang] Remove libstdc++ friend template hack (details)
  18. [clang-cl] Add parsing support for a bunch of new flags (details)
  19. Thread safety analysis: Replace flags in FactEntry by SourceKind (NFC) (details)
  20. Thread safety analysis: Fix false negative on break (details)
  21. [clang] Spell correct variable (details)
  22. [InstCombine] improve demanded bits analysis of left-shifted operand (details)
  23. [SystemZ][z/OS] Add the functions needed for handling EBCDIC I/O (details)
  24. [gn build] Port 1527a5e4b483 (details)
  25. [LV] Iterate over recipes in VPlan to fix PHI (NFC). (details)
  26. AMDGPU: XFAIL LLVM::note-amd-valid-v2.test for big endian (details)
  27. [SLP]Allow masked gathers only if allowed by target. (details)
  28. Revert "[SLP]Allow masked gathers only if allowed by target." (details)
  29. [Matrix] Remove bitcast when casting between matrices of the same size (details)
  30. [libc++] Acquire locks on Ranges work (details)
  31. Partial revert of "Use std::foo_t rather than std::foo in LLVM." in googlebench (details)
  32. [InstCombine] cttz(zext(x)) -> zext(cttz(x)) if the 'ZeroIsUndef' parameter is 'true' (PR50172) (details)
  33. [SLP]Allow masked gathers only if allowed by target. (details)
  34. [clangd] Find implementors only when index is present. (details)
  35. [SystemZ][z/OS] Enforce prefix-less registers in SystemZAsmParser for the HLASM dialect. (details)
  36. [MLIR] Canonicalize sub/add of a constant and another sub/add of a constant (details)
  37. [ELF] Don't suggest alternative spelling of an empty name (details)
  38. [clang-format] Add options to AllowShortIfStatementsOnASingleLine to apply to "else if" and "else". (details)
  39. [docs] Fix syntax typo. (details)
  40. [docs] Fix title overline. (details)
  41. [AArch64] Fold CSEL x, x, cc -> x (details)
  42. [docs] Bump the trunk major version to 13 and update copyright year. (details)
  43. [docs] Automatically update copyright year in libc++. (details)
  44. [MLIR][Linalg] Lower `linalg.tiled_loop` to `scf` loops (details)
  45. [clang-format] Fix build on gcc < 7 introduced in rG8d93d7ff. (details)
  46. [Support/Parallel] Add a special case for 0/1 items to llvm::parallel_for_each. (details)
  47. [mlir][Python] Add casting constructor to Type and Attribute. (details)
  48. [MLIR] Fix TestAffineDataCopy for test cases with no load ops (details)
  49. [docs][NewPM] Add section on analyses (details)
  50. [mlir][vector][NFC] split TransposeOp lowerning out of contractLowering (details)
  51. [mlir] Fix multidimensional lowering from std.select to llvm.select (details)
  52. [OpenMP] Fix non-determinism in clang task codegen (details)
  53. [AMDGPU] Change FLAT SADDR to VADDR form in moveToVALU (details)
  54. [libFuzzer] Fix off-by-one error in ApplyDictionaryEntry (details)
  55. [libFuzzer] Deflake entropic exec-time test. (details)
  56. [mlir][vector] Add canonicalization for extract/insert -> shapecast (details)
  57. [mlir][vector] Extend vector transfer unrolling to support permutations and broadcast (details)
  58. Modules: Remove an extra early return, NFC (details)
  59. [AIX] Remove unused vector registers from allocation order in the default AltiVec ABI (details)
  60. [AMDGPU] Change FLAT Scratch SADDR to VADDR form in moveToVALU (details)
  61. [mlir][spirv] Add support to convert std.splat op (details)
  62. [DebuggerTuning] Move a comment to a more useful place. (details)
  63. [libc++] Disentangle std::pointer_safety (details)
  64. Move MLIR python sources to mlir/python. (details)
  65. [libc++] Fix template instantiation depth issues with std::tuple (details)
  66. [libc++] Use the internal Lit shell to run the tests (details)
  67. [scudo] Don't track free/use stats for transfer batches. (details)
  68. [AsmParser][SystemZ][z/OS] Implement HLASM location counter syntax ("*") for Z PC-relative instructions. (details)
  69. [MLIR][Linalg] Lower `linalg.tiled_loop` in a separate pass (details)
  70. [MLIR][Linalg] Avoid forward declaration in `Loops.cpp` (details)
  71. [mlir][linalg] Fix vectorization bug in vector transfer indexing map calculation (details)
  72. [CodeGen][ARM] Implement atomicrmw as pseudo operations at -O0 (details)
  73. [OpenMPIRBuilder] Add createOffloadMaptypes and createOffloadMapnames functions (details)
  74. [mlir][Linalg] Use rank-reduced versions of subtensor and subtensor insert when possible. (details)
  75. [ValueTracking] soften assert for invertible recurrence matching (details)
  76. [WebAssembly] Fixup order of ins variables for table instructions (details)
  77. [SimplifyCFG] Look for control flow changes instead of side effects. (details)
  78. [libcxx][iterator][ranges] adds `forward_iterator` and `forward_range` (details)
  79. Revert "[CodeGen][ARM] Implement atomicrmw as pseudo operations at -O0" (details)
  80. [sanitizer] Set IndentPPDirectives: AfterHash in .clang-format (details)
  81. [MC][ELF] Work around R_MIPS_LO16 relocation handling problem (details)
  82. Revert "[MC][ELF] Work around R_MIPS_LO16 relocation handling problem" (details)
  83. [mlir][sparse] fixed typo: sparse -> sparse_tensor (details)
  84. [libcxx][iterator][ranges] adds `bidirectional_iterator` and `bidirectional_range` (details)
  85. [mlir][Linalg] Add a utility method to get reassociations maps for reshape. (details)
  86. [WebAssembly] Reenable end-to-end test in wasm-eh.cpp (details)
  87. [InstCombine] cttz(sext(x)) -> cttz(zext(x)) (details)
  88. [debugserver] Include LLDB_VERSION_SUFFIX in debugserver version (details)
  89. [AArch64][SVE] More unpredicated ld1/st1 patterns for reg+reg addressing modes (details)
  90. [mlir] Add polynomial approximation for math::Log1p (details)
  91. [Utils] Add prof metadata to matched unnamed values (details)
  92. [InstCombine] Added tests for PR50094, NFC (details)
  93. [lld-macho] De-templatize mach_header operations (details)
  94. [lld-macho] Add ARM requirement to objc.s (details)
  95. Add some additional test cases inspired by PR50191 (details)
  96. [OpenMP] Refactor/Rework topology discovery code (details)
  97. [mlir] Linalg: add vector transfer lowering patterns to the contraction lowering (details)
  98. One more test case inspired by PR50191 (details)
  99. [Attributor] Add AAExecutionDomainInfo interface to OpenMPOpt (details)
  100. [NewPM] Invalidate AAManager after populating GlobalsAA (details)
  101. Recommit "Generalize getInvertibleOperand recurrence handling slightly" (details)
  102. [lld][WebAssembly] Do not merge comdat data segments (details)
  103. [demangler] Initial support for the new Rust mangling scheme (details)
  104. [gn build] Port 7310403e3cdf (details)
  105. [libc] Introduce asctime, asctime_r to LLVM libc (details)
  106. [lld][WebAssembly] Convert more tests to asm format. NFC (details)
  107. [NewPM] Only invalidate modified functions' analyses in CGSCC passes (details)
  108. Clarify the help for "breakpoint command add" and "watchpoint command add". (details)
  109. Precommit tests for D101720 (NFC) (details)
  110. [InstCombine] generalize select + select/and/or folding using implied conditions (details)
  111. [lld][WebAssembly] Fix crash with `-pie` without `--allow-undefined` (details)
  112. [IndVarSimplify][NFC] Removed mayThrow from if-condition in predicateLoopExits of IndVarSimplify (details)
  113. [mlir][tosa] Add lowerings for tosa.equal and tosa.arithmetic_right_shift (details)
  114. [mlir] Fix bug in TransferOpReduceRank when all dims are broadcasts (details)
  115. [clang][CodeGen] Use llvm::stable_sort for multi version resolver options (details)
  116. [NFC] Give better diagnose on clang-format not found error (details)
  117. [lld-macho] Implement builtin section renaming (details)
  118. [ModuleUtils] NFC: Add unit tests for appendToUsedList (details)
  119. [gn build] Port ed51156084dd (details)
Commit cea736e5b8a48065007a591d71699b53c04d95b3 by zeratul976
[clangd] Hide inlay hints capability behind a command-line flag

Differential Revision: https://reviews.llvm.org/D101275
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.h
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
Commit 1f1fb5e8e6b214f7f13a4e4731b6d6add33508aa by zeratul976
[clangd] Fix build error in SemanticHighlighting.cpp
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp
Commit 3504e50b6db5ec71cf0df5a14a2576c1003614c9 by zeratul976
[clangd] Fix test failure in initialize-params.test

Differential Revision: https://reviews.llvm.org/D101740
The file was modifiedclang-tools-extra/clangd/test/initialize-params.test
Commit ae845d64269193189c0347454255afa70824e17a by Pushpinder.Singh
[AMDGPU][OpenMP] Enable Libomptarget runtime tests

This enables the runtime tests on amdgpu targets.
10 tests have been marked as XFAIL on amdgcn currently mostly due to
missing printf.

Reviewed By: protze.joachim

Differential Revision: https://reviews.llvm.org/D99656
The file was modifiedopenmp/libomptarget/test/mapping/ptr_and_obj_motion.c
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/shared_update.c
The file was modifiedopenmp/libomptarget/CMakeLists.txt
The file was modifiedopenmp/libomptarget/test/mapping/data_member_ref.cpp
The file was modifiedopenmp/libomptarget/test/mapping/declare_mapper_nested_default_mappers.cpp
The file was modifiedopenmp/libomptarget/test/mapping/declare_mapper_nested_mappers.cpp
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/close_enter_exit.c
The file was modifiedopenmp/libomptarget/test/mapping/delete_inf_refcount.c
The file was modifiedopenmp/libomptarget/test/offloading/host_as_target.c
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/api.c
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/close_modifier.c
Commit 1f8963c80195aa86d02e81acedcf1ff3da127842 by zeratul976
[clangd] Parameter hints for dependent calls

Differential Revision: https://reviews.llvm.org/D100742
The file was modifiedclang-tools-extra/clangd/unittests/InlayHintTests.cpp
The file was modifiedclang-tools-extra/clangd/HeuristicResolver.cpp
The file was modifiedclang-tools-extra/clangd/InlayHints.cpp
The file was modifiedclang-tools-extra/clangd/HeuristicResolver.h
Commit 32f901bdf9b59a1cf43946ac7bb6c9382bc69600 by diana.picus
[flang] Use CFI_TYPE_LAST instead of CFI_type_struct

It looks like CFI_type_struct was once used as the last valid CFI_type
value, but in the meantime CFI_type_char16_t and CFI_type_char32_t were
added, making that assumption no longer true. Luckily, in the meantime
we also got a define for CFI_TYPE_LAST, which we can now use to allow
CFI_establish and CFI_allocate to work with descriptors of
CFI_type_char16_t, CFI_type_char32_t and any other future types.

Differential Revision: https://reviews.llvm.org/D101658
The file was modifiedflang/runtime/ISO_Fortran_binding.cpp
The file was modifiedflang/unittests/Evaluate/ISO-Fortran-binding.cpp
Commit aaab70407beb9526722b04ae3dd14def4eaab540 by diana.picus
[flang] Fix handling of elem_len in CFI_establish

The current code computes the minimum element length based on the `type`
used to create the descriptor and uses that as the element length
whenever it is greater than 0. This means that the `elem_len` parameter
is essentially ignored for any type where we can compute a minimum
element length (which includes `CFI_type_char[16|32]_t`), and we may
therefore end up with descriptors with a lower element length than
expected.

This patch fixes the issue by explicitly doing what the standard says,
i.e. it uses the given `elem_len` for character types, `CFI_type_struct`
and `CFI_type_other`, and ignores it (falls back to the minimum element
length) for everything else.

Differential Revision: https://reviews.llvm.org/D101659
The file was modifiedflang/unittests/Evaluate/ISO-Fortran-binding.cpp
The file was modifiedflang/runtime/ISO_Fortran_binding.cpp
Commit 5112bd6b6e10b27b81aa83cfdbe3588973a6f1f5 by diana.picus
[flang] Fix a bug in the character runtime

The number of bytes copied in CopyAndPad should depend on the size of
the type being copied, not on its shift value (which in the case of char
is 0, leading to no bytes at all being copied).

Add unit tests for CharacterMin and CharacterMax, which exercise this
code path.

Differential Revision: https://reviews.llvm.org/D101355
The file was modifiedflang/runtime/character.cpp
The file was modifiedflang/unittests/RuntimeGTest/CharacterTest.cpp
Commit c0c8548b70685533da46d9453eac9f3cfb22ccc6 by sebastian.neubauer
[AMDGPU] Do not annotate features for graphics

SITargetLowering::LowerFormalArguments asserts that none of these
features are used for graphics calling conventions, so
AnnotateKernelFeatures should not add them.

Differential Revision: https://reviews.llvm.org/D101534
The file was addedllvm/test/CodeGen/AMDGPU/pal-simple-indirect-call.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp
Commit 0e97e84a6588ca21d93037969c24c82f19698986 by gchatelet
[libc] warns about missing linting only in full build mode

Differential Revision: https://reviews.llvm.org/D101609
The file was modifiedlibc/CMakeLists.txt
Commit 91607dce615a7837cd094247aa4620cad95f741c by kuhnel
[doc] typo fixes

as proposed by @FlashSheridan in
https://reviews.llvm.org/rG7f9717b922d4
The file was modifiedllvm/docs/DeveloperPolicy.rst
Commit cdeb4a8a6430941563c9f04d178d4c5211164aa3 by benny.kra
[mlir] Allow lowering cmpi/cmpf with multidimensional vectors to LLVM

Differential Revision: https://reviews.llvm.org/D101535
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
Commit d23e4f6872c6c19c210efa9fcd19e43942ddf465 by fraser
[RISCV] Add support for fmin/fmax vector reductions

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D101518
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vreductions-fp-sdnode.ll
Commit 53df522a0c536d32a60c0ed571097a78ce2541a7 by n.james93
[clang-tidy][NFC] Short circuit getting enum options suggestions.

Use the MaxEditDistance to skip checking candidates we know we'll skip.
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyCheck.cpp
Commit d1bbe61d1c96c12f890db7b37435f1dce092cc36 by david.green
[ARM] Memory operands for MVE gathers/scatters

Similarly to D101096, this makes sure that MMO operands get propagated
through from MVE gathers/scatters to the Machine Instructions. This
allows extra scheduling freedom, not forcing the instructions to act as
scheduling barriers. We create MMO's with an unknown size, specifying
that they can load from anywhere in memory, similar to the masked_gather
or X86 intrinsics.

Differential Revision: https://reviews.llvm.org/D101219
The file was modifiedllvm/test/CodeGen/Thumb2/mve-postinc-lsr.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsARM.td
The file was addedllvm/test/CodeGen/Thumb2/mve-gatherscatter-mmo.ll
Commit 69a3269250715e31ec49be94065c1c8787a3d305 by omair.javaid
Support AArch64 PAC elf-core register read

This adds support for reading AArch64 Pointer Authentication regset
from elf-core file. Also includes a test-case for the same. Furthermore
there is also a slight refactoring of RegisterContextPOSIXCore_arm64
members and constructor. linux-aarch64-pac.core file is generated using
lldb/test/API/functionalities/postmortem/elf-core/main.c with following
clang arguments:
-march=armv8.5-a -mbranch-protection=pac-ret+leaf -nostdlib -static -g

Reviewed By: DavidSpickett

Differential Revision: https://reviews.llvm.org/D99941
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h
The file was modifiedlldb/source/Plugins/Process/elf-core/RegisterUtilities.h
The file was modifiedlldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
The file was modifiedlldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
The file was modifiedlldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
The file was addedlldb/test/API/functionalities/postmortem/elf-core/linux-aarch64-pac.core
Commit fe4c9b3cb0c3c0cac6b63de3b47a86e31559bb6d by nathan
[clang] Remove libstdc++ friend template hack

this hack is for a now-unsupported version of libstdc++

Differential Revision: https://reviews.llvm.org/D101392
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/test/SemaCXX/libstdcxx_map_base_hack.cpp
Commit 876bf516e7d4bba615da6cf791372fb36fc8f947 by hans
[clang-cl] Add parsing support for a bunch of new flags

MSVC has added some new flags. Although they're not supported, this adds
parsing support for them so clang-cl doesn't treat them as filenames.

Except for /fsanitize=address which we do support. (clang-cl already
exposes the -fsanitize= option, but this allows using the
MSVC-spelling with a slash.)

Differential revision: https://reviews.llvm.org/D101439
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Driver/cl-options.c
Commit 530e074faafe995a560e80815f5af8306670ea7b by aaron.puchert
Thread safety analysis: Replace flags in FactEntry by SourceKind (NFC)

The motivation here is to make it available in the base class whether a
fact is managed or not. That would have meant three flags on the base
class, so I had a look whether we really have 8 possible combinations.

It turns out we don't: asserted and declared are obviously mutually
exclusive. Managed facts are only created when we acquire a capability
through a scoped capability. Adopting an asserted or declared lock will
not (in fact can not, because Facts are immutable) make them managed.

We probably don't want to allow adopting an asserted lock (because then
the function should probably have a release attribute, and then the
assertion is pointless), but we might at some point decide to replace a
declared fact on adoption.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D100801
The file was modifiedclang/lib/Analysis/ThreadSafety.cpp
Commit daca6edb31efae048a420595fae9750aaa91c733 by aaron.puchert
Thread safety analysis: Fix false negative on break

We weren't modifying the lock set when intersecting with one coming
from a break-terminated block. This is inconsistent, since break isn't a
back edge, and it leads to false negatives with scoped locks. We usually
don't warn for those when joining locksets aren't the same, we just
silently remove locks that are not in the intersection. But not warning
and not removing them isn't right.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D101202
The file was modifiedclang/lib/Analysis/ThreadSafety.cpp
The file was modifiedclang/test/PCH/thread-safety-attrs.cpp
The file was modifiedclang/test/SemaCXX/warn-thread-safety-analysis.cpp
Commit ab7316f1c64c3530a6eca2e449c2dd734e83498e by nathan
[clang] Spell correct variable

fix Trailling -> Trailing (two ll-> one l)

Differential Revision: https://reviews.llvm.org/D101753
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/test/SemaCXX/cxx2a-explicit-bool.cpp
Commit 1b24f35f843cd58ea22ec3968d0d2589c5bdc2c9 by spatel
[InstCombine] improve demanded bits analysis of left-shifted operand

If we don't demand high bits, then we also don't care about those
high bits of a left-shift operand regardless of shift amount.
I noticed the sext/trunc pattern in a motivating example.
It seems like there should be a low-bits with right-shift sibling,
but I haven't looked at that yet.

https://alive2.llvm.org/ce/z/JuS6jc
https://rise4fun.com/Alive/Trm (not sure how to use 'width' with Alive1)
https://alive2.llvm.org/ce/z/gRadbF

Differential Revision: https://reviews.llvm.org/D101489
The file was modifiedllvm/test/Transforms/InstCombine/rotate.ll
The file was modifiedllvm/test/Transforms/InstCombine/shl-demand.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
Commit 1527a5e4b4834e65678f9c30f786a2f4c17932bf by Abhina.Sreeskantharajan
[SystemZ][z/OS] Add the functions needed for handling EBCDIC I/O

This patch adds the basic functions needed for controlling auto conversion on z/OS.
Auto conversion is enabled on untagged input file to ASCII by making the assumption that all untagged files are EBCDIC encoded. Output files are auto converted to EBCDIC IBM-1047.
This change also enables conversion for stdin/stdout/stderr.

For more information on how fcntl controls codepage https://www.ibm.com/docs/en/zos/2.4.0?topic=descriptions-fcntl-bpx1fct-bpx4fct-control-open-file-descriptors

Reviewed By: anirudhp

Differential Revision: https://reviews.llvm.org/D100483
The file was addedllvm/lib/Support/AutoConvert.cpp
The file was addedllvm/test/Support/encoding.ll
The file was modifiedllvm/lib/Support/MemoryBuffer.cpp
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was addedllvm/include/llvm/Support/AutoConvert.h
The file was modifiedllvm/lib/Support/Unix/Path.inc
Commit 895ba21401f675d3449a325a82ebc053e8561690 by llvmgnsyncbot
[gn build] Port 1527a5e4b483
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Commit 2b7fa7f7442ba342c4098556a962c1d8ffedc1f4 by flo
[LV] Iterate over recipes in VPlan to fix PHI (NFC).

As we gradually move more elements of LV to VPlan, we are trying to
reduce the number of places that still has to check IR of the original
loop.

This patch adjusts the code to fix cross iteration phis to get the PHIs
to fix directly from the VPlan that is executed. We still need the
original PHI to check for first-order recurrences, but we can get rid of
that once we model that explicitly in VPlan as well.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D99293
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 2055cc8ef4b961bbac1bf44aa879be6465e1fc36 by kzhuravl_dev
AMDGPU: XFAIL LLVM::note-amd-valid-v2.test for big endian
The file was modifiedllvm/test/tools/llvm-readobj/ELF/note-amd-valid-v2.test
Commit b5f64768cfeecca16c7c9c53cbd97ac7289c43aa by a.bataev
[SLP]Allow masked gathers only if allowed by target.

Need to check if target allows/supports masked gathers before trying to
estimate its cost, otherwise we may fail to vectorize some of the
patterns because of too pessimistic cost model.

Part of D57059.

Differential Revision: https://reviews.llvm.org/D101297
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
Commit 2e4cc9a7256b8a23421727522059ec5c67500cf3 by a.bataev
Revert "[SLP]Allow masked gathers only if allowed by target."

This reverts commit b5f64768cfeecca16c7c9c53cbd97ac7289c43aa to fix
a compiler crash revealed by buildbots.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 696becbd139e4bbbe304ce2231de0fb50f307b68 by flo
[Matrix] Remove bitcast when casting between matrices of the same size

In matrix type casts, we were doing bitcast when the matrices had the same size. This was incorrect and this patch fixes that.
Also added some new CodeGen tests for signed <-> usigned conversions

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D101754
The file was modifiedclang/test/CodeGen/matrix-cast.c
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
Commit df280d1368e4881e0559bfd9a21dcbce5591759b by Louis Dionne
[libc++] Acquire locks on Ranges work

This commit acquires locks on a few elements of Ranges to make sure we don't
duplicate work.

Differential Revision: https://reviews.llvm.org/D101668
The file was modifiedlibcxx/docs/OneRangesProposalStatus.csv
Commit aad3113417369a16ef57291b46594a4e07014eae by Jon Roelofs
Partial revert of "Use std::foo_t rather than std::foo in LLVM." in googlebench

Since googlebench builds as c++11, the change there is incorrect and breaks the
googlebench build when the STL implementation is strict about std::enable_if_t
not being available in lesser c++ versions.

partial revert of: 1bd6123b781120c9190b9ba58b900cdcb718cdd1 (https://reviews.llvm.org/D74384)

Differential Revision: https://reviews.llvm.org/D101583
The file was modifiedllvm/utils/benchmark/src/sysinfo.cc
Commit 27b651ca473ba33999888cc302efb5f856ec7cea by Dávid Bolvanský
[InstCombine] cttz(zext(x)) -> zext(cttz(x)) if the 'ZeroIsUndef' parameter is 'true' (PR50172)

Zext doesn't change the number of trailing zeros, so narrow cttz(zext(x)) -> zext(cttz(x)) if the 'ZeroIsUndef' parameter is 'true'.

Proofs:
https://alive2.llvm.org/ce/z/o2dnjY

Solves https://bugs.llvm.org/show_bug.cgi?id=50172

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D101582
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cttz.ll
Commit fd18547e0721983dcb273670d16341921f831e50 by a.bataev
[SLP]Allow masked gathers only if allowed by target.

Need to check if target allows/supports masked gathers before trying to
estimate its cost, otherwise we may fail to vectorize some of the
patterns because of too pessimistic cost model.

Part of D57059.

Differential Revision: https://reviews.llvm.org/D101297
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit c3d5f306e910788fcc4db8da9c9e819a0869264b by usx
[clangd] Find implementors only when index is present.

Differential Revision: https://reviews.llvm.org/D101750
The file was modifiedclang-tools-extra/clangd/XRefs.cpp
Commit 3ed6a6f6cdea9777d0e0175e22cea04e2c0c6d43 by anirudh_prasad
[SystemZ][z/OS] Enforce prefix-less registers in SystemZAsmParser for the HLASM dialect.

- Previously, https://reviews.llvm.org/D101308 removed prefixes from register while printing them out. This was especially needed for inline asm statements which used input/output operands.
- However, the backend SystemZAsmParser, accepts both prefixed registers and prefix-less registers as part of its implementation
- This patch aims to change that by ensuring that prefixed registers are only allowed for the ATT dialect.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D101665
The file was modifiedllvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
Commit 039bdcc0a8a213faa8f32837c44b81ce41f41ab0 by gh
[MLIR] Canonicalize sub/add of a constant and another sub/add of a constant

Differential Revision: https://reviews.llvm.org/D101705
The file was modifiedmlir/test/Dialect/Standard/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
Commit f9c8ebdc30c2796a8d2b253d29f9a75f2e0f3cb0 by i
[ELF] Don't suggest alternative spelling of an empty name

Fix PR50111

Differential Revision: https://reviews.llvm.org/D101698
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/test/ELF/undef-not-suggest.test
Commit 8d93d7ffedebc5f18dee22ba954d38a1d2d0affa by marek.kurdej+llvm.org
[clang-format] Add options to AllowShortIfStatementsOnASingleLine to apply to "else if" and "else".

This fixes the bug http://llvm.org/pr50019.

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D100727
The file was modifiedclang/lib/Format/Format.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/include/clang/Format/Format.h
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Format/UnwrappedLineFormatter.cpp
Commit d492532b8c3a90502a452174c7f1d2677d054fda by marek.kurdej+llvm.org
[docs] Fix syntax typo.
The file was modifiedclang/docs/ReleaseNotes.rst
Commit b2be167a49523b1caab78bfca0635b8439c157ee by marek.kurdej+llvm.org
[docs] Fix title overline.
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 966435daf96913d50130ea821675fd31a27c1a13 by david.green
[AArch64] Fold CSEL x, x, cc -> x

This can come up in rare situations, where a csel is created with
identical operands. These can be folded simply to the original value,
allowing the csel to be removed and further simplification to happen.

This patch also removes FCSEL as it is unused, not being produced
anywhere or lowered to anything.

Differential Revision: https://reviews.llvm.org/D101687
The file was modifiedllvm/test/CodeGen/AArch64/srem-seteq.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
Commit 9d669e859b8069bf154c6d9ec37cc6bc2304f4e9 by marek.kurdej+llvm.org
[docs] Bump the trunk major version to 13 and update copyright year.
The file was modifiedclang/docs/conf.py
The file was modifiedlibcxx/docs/conf.py
Commit 40f783434b0b3bc69c90317a9b8d2e6fb6d95606 by marek.kurdej+llvm.org
[docs] Automatically update copyright year in libc++.
The file was modifiedlibcxx/docs/conf.py
Commit d2a291a5f81af7c99351ecf619c7115ac652b115 by frgossen
[MLIR][Linalg] Lower `linalg.tiled_loop` to `scf` loops

Differential Revision: https://reviews.llvm.org/D101747
The file was modifiedmlir/test/Dialect/Linalg/loops.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
Commit 31751ce1b9239d7aacac84864bf06c36ce888408 by marek.kurdej+llvm.org
[clang-format] Fix build on gcc < 7 introduced in rG8d93d7ff.

This fixes another bogus build error on gcc, e.g. https://lab.llvm.org/buildbot/#/builders/118/builds/2504.

/home/ssglocal/clang-cmake-x86_64-avx2-linux/clang-cmake-x86_64-avx2-linux-perf/llvm/clang/lib/Format/UnwrappedLineFormatter.cpp:424:42: error: binding ‘clang::format::FormatToken* const’ to reference of type ‘clang::format::FormatToken*&’ discards qualifiers
     auto IsElseLine = [&First = TheLine->First]() -> bool {
                                          ^
The file was modifiedclang/lib/Format/UnwrappedLineFormatter.cpp
Commit 5fa9d4163421304255d12498fd672e79893422a4 by clattner
[Support/Parallel] Add a special case for 0/1 items to llvm::parallel_for_each.

This avoids the non-trivial overhead of creating a TaskGroup in these degenerate
cases, but also exposes parallelism.  It turns out that the default executor
underlying TaskGroup prevents recursive parallelism - so an instance of a task
group being alive will make nested ones become serial.

This is a big issue in MLIR in some dialects, if they have a single instance of
an outer op (e.g. a firrtl.circuit) that has many parallel ops within it (e.g.
a firrtl.module).  This patch side-steps the problem by avoiding creating the
TaskGroup in the unneeded case.  See this issue for more details:
https://github.com/llvm/circt/issues/993

Note that this isn't a really great solution for the general case of nested
parallelism.  A redesign of the TaskGroup stuff would be better, but would be
a much more invasive change.

Differential Revision: https://reviews.llvm.org/D101699
The file was modifiedllvm/include/llvm/Support/Parallel.h
Commit b57d6fe42ed3bc6867fab25be0edcb124ea0629f by stellaraccident
[mlir][Python] Add casting constructor to Type and Attribute.

* This makes them consistent with custom types/attributes, whose constructors will do a type checked conversion. Of course, the base classes can represent everything so never error.
* More importantly, this makes it possible to subclass Type and Attribute out of tree in sensible ways.

Differential Revision: https://reviews.llvm.org/D101734
The file was modifiedmlir/test/Bindings/Python/ir_types.py
The file was modifiedmlir/test/Bindings/Python/ir_attributes.py
The file was modifiedmlir/lib/Bindings/Python/IRCore.cpp
Commit 92153575e64bf8e2e14ed236416bbb33cf7e2c2e by uday
[MLIR] Fix TestAffineDataCopy for test cases with no load ops

Add missing check in -test-affine-data-copy without which a test case
that has no affine.loads at all would crash this test pass. Fix two
clang-tidy warnings in the file while at this. (Not adding a test case
given the triviality.)

Differential Revision: https://reviews.llvm.org/D101719
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp
Commit 9779b664b6a8d8a047d52061b23a4a3737446e45 by aeubanks
[docs][NewPM] Add section on analyses

Reviewed By: asbirlea, ychen

Differential Revision: https://reviews.llvm.org/D100912
The file was modifiedllvm/docs/NewPassManager.rst
Commit be8e2801a4f305213fef99ae3f7e80cfeb2a7c08 by thomasraoux
[mlir][vector][NFC] split TransposeOp lowerning out of contractLowering

Move TransposeOp lowering in its own populate function as in some cases
it is better to keep it during ContractOp lowering to better
canonicalize it rather than emiting scalar insert/extract.

Differential Revision: https://reviews.llvm.org/D101647
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was modifiedmlir/test/lib/Transforms/TestConvVectorization.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit 96a7900eb065385e1f61d926affaed13af446962 by benny.kra
[mlir] Fix multidimensional lowering from std.select to llvm.select

The converter assumed that all operands have the same type, that's not
true for select.

Differential Revision: https://reviews.llvm.org/D101767
The file was modifiedmlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
Commit a27ca15dd08342b199e2feb5ae896475fd90a518 by georgakoudis1
[OpenMP] Fix non-determinism in clang task codegen

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D101739
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.h
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
Commit 89a94be16b01154e421d86d2e15e48d87b8d07db by Stanislav.Mekhanoshin
[AMDGPU] Change FLAT SADDR to VADDR form in moveToVALU

Instead of legalizing saddr operand with a readfirstlane
when address is moved from SGPR to VGPR we can just
change the opcode.

Differential Revision: https://reviews.llvm.org/D101405
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h
The file was addedllvm/test/CodeGen/AMDGPU/move-load-addr-to-valu.mir
The file was addedllvm/test/CodeGen/AMDGPU/global-load-saddr-to-vaddr.ll
Commit 62e4dca94e25668c9f70abc7e524328fd5c6d5c9 by mascasa
[libFuzzer] Fix off-by-one error in ApplyDictionaryEntry

In the overwrite branch of MutationDispatcher::ApplyDictionaryEntry in
FuzzerMutate.cpp, the index Idx at which W.size() bytes are overwritten
with the word W is chosen uniformly at random in the interval
[0, Size - W.size()). This means that Idx + W.size() will always be
strictly less than Size, i.e., the last byte of the current unit will
never be overwritten.

This is fixed by adding 1 to the exclusive upper bound.

Addresses https://bugs.llvm.org/show_bug.cgi?id=49989.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D101625
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerMutate.cpp
Commit ac512890b47032fcee167a702ab14da59137723c by mascasa
[libFuzzer] Deflake entropic exec-time test.
The file was modifiedcompiler-rt/test/fuzzer/EntropicScalePerExecTimeTest.cpp
The file was modifiedcompiler-rt/test/fuzzer/entropic-scale-per-exec-time.test
Commit 7417541fd8d764c42e5c7f3647e73ae6913b0fd7 by thomasraoux
[mlir][vector] Add canonicalization for extract/insert -> shapecast

Differential Revision: https://reviews.llvm.org/D101643
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
Commit f44c76d6e919641655615d62ea8b432175571a0b by thomasraoux
[mlir][vector] Extend vector transfer unrolling to support permutations and broadcast

Differential Revision: https://reviews.llvm.org/D101637
The file was modifiedmlir/test/Dialect/Vector/vector-transfer-unroll.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit 64a390c1bc75eb55eeed3061df15dc581fd563e6 by Duncan P. N. Exon Smith
Modules: Remove an extra early return, NFC

Remove an early return from an `else` block that's immediately followed
by an equivalent early return after the `else` block.

Differential Revision: https://reviews.llvm.org/D101671
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
Commit d98e5e02adb5c37f892c51a6f1264179c5d32531 by zarko
[AIX] Remove unused vector registers from allocation order in the default AltiVec ABI

The previous implementation of the default AltiVec ABI marked registers V20-V31
as reserved.  This failed to prevent reserved VFRC registers being allocated.
In this patch instead of marking the registers reserved we remove unallowed
registers from the allocation order completely.

This is a slight rework of an implementation by @nemanjai

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D100050
The file was modifiedllvm/lib/Target/PowerPC/PPCCallingConv.td
The file was addedllvm/test/CodeGen/PowerPC/aix-dfltabi-rsrvd-reg.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
Commit 4d6ebe8ac07fc63ae17eb1024c90ca1ad9a0fa81 by Stanislav.Mekhanoshin
[AMDGPU] Change FLAT Scratch SADDR to VADDR form in moveToVALU

Extend the legalization of global SADDR loads and stores
with changing to VADDR to the FLAT scratch instructions.

Differential Revision: https://reviews.llvm.org/D101408
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h
The file was modifiedllvm/test/CodeGen/AMDGPU/move-load-addr-to-valu.mir
Commit d51275cbc071e318df94d7f5a469b17b8960dab0 by thomasraoux
[mlir][spirv] Add support to convert std.splat op

Differential Revision: https://reviews.llvm.org/D101511
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp
The file was modifiedmlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
Commit 1d299252dd52ade0e87485be29443aa69be9e910 by paul.robinson
[DebuggerTuning] Move a comment to a more useful place.

The comment about how to make use of debugger tuning within DwarfDebug
really belongs inside the DwarfDebug declaration, where it will be
easier to find.
The file was modifiedllvm/include/llvm/Target/TargetOptions.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
Commit 49e7be2e5ba1759ae9d4ce9843ce2467cf7823a5 by Louis Dionne
[libc++] Disentangle std::pointer_safety

This patch gets rid of technical debt around std::pointer_safety which,
I claim, is entirely unnecessary. I don't think anybody has used
std::pointer_safety in actual code because we do not implement the
underlying garbage collection support. In fact, P2186 even proposes
removing these facilities entirely from a future C++ version. As such,
I think it's entirely fine to get rid of complex workarounds whose goals
were to avoid breaking the ABI back in 2017.

I'm putting this up both to get reviews and to discuss this proposal for
a breaking change. I think we should be comfortable with making these
tiny breaks if we are confident they won't hurt anyone, which I'm fairly
confident is the case here.

Differential Revision: https://reviews.llvm.org/D100410
The file was modifiedlibcxx/include/__memory/pointer_safety.h
The file was modifiedlibcxx/src/memory.cpp
The file was removedlibcxx/test/libcxx/utilities/memory/util.dynamic.safety/get_pointer_safety_cxx03.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.dynamic.safety/declare_reachable.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.dynamic.safety/declare_no_pointers.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.dynamic.safety/get_pointer_safety.pass.cpp
The file was modifiedlibcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist
The file was modifiedlibcxx/include/memory
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/docs/ReleaseNotes.rst
The file was removedlibcxx/test/libcxx/utilities/memory/util.dynamic.safety/get_pointer_safety_new_abi.pass.cpp
The file was modifiedlibcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist
Commit 9f3f6d7bd81ea26af9bcc2a2ac71a08affa341d4 by stellaraccident
Move MLIR python sources to mlir/python.

* NFC but has some fixes for CMake glitches discovered along the way (things not cleaning properly, co-mingled depends).
* Includes previously unsubmitted fix in D98681 and a TODO to fix it more appropriately in a smaller followup.

Differential Revision: https://reviews.llvm.org/D101493
The file was addedmlir/cmake/modules/AddMLIRPython.cmake
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/affine.py
The file was addedmlir/test/python/ir/module.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/dump_oplib.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/config.py
The file was removedmlir/lib/Bindings/Python/requirements.txt
The file was removedmlir/test/Bindings/Python/dialects/linalg/opdsl/emit_structured_generic.py
The file was removedmlir/test/Bindings/Python/pass_manager.py
The file was removedmlir/lib/Bindings/Python/mlir/_dlloader.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/types.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/std.py
The file was modifiedmlir/docs/Bindings/Python.md
The file was removedmlir/lib/Bindings/Python/StandardOps.td
The file was removedmlir/lib/Bindings/Python/mlir/dialects/_ods_common.py
The file was addedmlir/python/mlir/dialects/CMakeLists.txt
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/yaml_helper.py
The file was removedmlir/lib/Bindings/Python/mlir/_cext_loader.py
The file was removedmlir/test/Bindings/Python/dialects/memref.py
The file was removedmlir/lib/Bindings/Python/TensorOps.td
The file was removedmlir/lib/Bindings/Python/mlir/runtime/np_to_memref.py
The file was addedmlir/python/mlir/dialects/builtin.py
The file was addedmlir/python/mlir/runtime/np_to_memref.py
The file was addedmlir/test/python/ir/attributes.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/async_dialect/passes/__init__.py
The file was addedmlir/test/python/dialects/ods_helpers.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/python_test.py
The file was removedmlir/test/Bindings/Python/ir_affine_map.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/gpu/__init__.py
The file was addedmlir/test/python/dialects/linalg/opdsl/test_core_named_ops.py
The file was removedmlir/test/Bindings/Python/dialects/linalg/opsrun.py
The file was addedmlir/test/python/ir/debug.py
The file was removedmlir/test/Bindings/Python/dialects/linalg/opdsl/test_core_named_ops.py
The file was removedmlir/lib/Bindings/Python/LinalgOps.td
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/__init__.py
The file was removedmlir/test/Bindings/CMakeLists.txt
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/affine.py
The file was removedmlir/test/Bindings/Python/dialects/async_dialect.py
The file was addedmlir/test/python/ir/builtin_types.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/emitter.py
The file was addedmlir/test/python/dialects/gpu.py
The file was addedmlir/python/mlir/dialects/std.py
The file was addedmlir/test/python/lit.local.cfg
The file was addedmlir/python/mlir/dialects/gpu/passes/__init__.py
The file was addedmlir/test/python/dialects/builtin.py
The file was removedmlir/test/Bindings/Python/dialects/gpu.py
The file was addedmlir/test/python/dialects/linalg/opdsl/interfaces.py
The file was addedmlir/test/python/dialects/python_test.py
The file was removedmlir/test/Bindings/Python/ir_value.py
The file was removedmlir/test/Bindings/Python/ir_integer_set.py
The file was removedmlir/test/Bindings/Python/dialects/linalg/opdsl/shape_maps_iteration.py
The file was removedmlir/test/Bindings/Python/insertion_point.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/scalar_expr.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/gpu/passes/__init__.py
The file was addedmlir/python/mlir/dialects/_linalg_ops_ext.py
The file was removedmlir/test/Bindings/Python/ir_types.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/comprehension.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/comprehension.py
The file was addedmlir/test/python/dialects/linalg/opdsl/emit_structured_generic.py
The file was addedmlir/python/mlir/dialects/gpu/__init__.py
The file was removedmlir/test/Bindings/Python/dialects.py
The file was addedmlir/python/mlir/dialects/AsyncOps.td
The file was removedmlir/test/Bindings/Python/ir_array_attributes.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/dump_oplib.py
The file was addedmlir/python/mlir/dialects/MemRefOps.td
The file was addedmlir/python/mlir/runtime/__init__.py
The file was addedmlir/test/python/dialects/linalg/opdsl/doctests.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/emitter.py
The file was addedmlir/python/mlir/ir.py
The file was removedmlir/cmake/modules/AddMLIRPythonExtension.cmake
The file was addedmlir/python/mlir/dialects/ShapeOps.td
The file was modifiedmlir/cmake/modules/CMakeLists.txt
The file was removedmlir/test/Bindings/Python/ir_affine_expr.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/__init__.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/_linalg_ops_ext.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py
The file was removedmlir/test/Bindings/Python/dialects/linalg/opdsl/doctests.py
The file was addedmlir/python/mlir/conversions/__init__.py
The file was addedmlir/test/python/ir/operation.py
The file was addedmlir/python/mlir/dialects/BuiltinOps.td
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/dsl.py
The file was addedmlir/test/python/dialects/memref.py
The file was removedmlir/lib/Bindings/Python/ShapeOps.td
The file was removedmlir/test/Bindings/Python/dialects/linalg/opdsl/assignments.py
The file was addedmlir/test/python/ir/dialects.py
The file was addedmlir/test/python/pass_manager.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/__init__.py
The file was removedmlir/lib/Bindings/Python/.style.yapf
The file was addedmlir/python/requirements.txt
The file was removedmlir/test/Bindings/Python/context_lifecycle.py
The file was addedmlir/python/mlir/dialects/linalg/__init__.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/builtin.py
The file was removedmlir/test/Bindings/Python/CMakeLists.txt
The file was addedmlir/python/mlir/_dlloader.py
The file was removedmlir/test/Bindings/Python/ir_attributes.py
The file was removedmlir/test/Bindings/Python/ir_location.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/config.py
The file was addedmlir/test/python/dialects/linalg/opdsl/assignments.py
The file was addedmlir/python/.style.yapf
The file was removedmlir/lib/Bindings/Python/mlir/transforms/__init__.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/_builtin_ops_ext.py
The file was addedmlir/test/python/dialects/linalg/ops.py
The file was addedmlir/test/python/ir/context_managers.py
The file was addedmlir/test/python/CMakeLists.txt
The file was removedmlir/test/Bindings/Python/dialects/builtin.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/memref.py
The file was addedmlir/python/mlir/dialects/linalg/passes/__init__.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/tensor.py
The file was addedmlir/python/mlir/dialects/_ods_common.py
The file was addedmlir/test/python/python_test_ops.td
The file was addedmlir/python/mlir/dialects/GPUOps.td
The file was addedmlir/python/mlir/_cext_loader.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/types.py
The file was addedmlir/python/mlir/execution_engine.py
The file was removedmlir/test/Bindings/Python/python_test_ops.td
The file was addedmlir/python/mlir/dialects/python_test.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/async_dialect/__init__.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/dsl.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/shape.py
The file was addedmlir/test/python/dialects/linalg/opdsl/lit.local.cfg
The file was addedmlir/python/mlir/passmanager.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/ops/__init__.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/passes/__init__.py
The file was modifiedmlir/lib/Bindings/Python/CMakeLists.txt
The file was addedmlir/python/mlir/transforms/__init__.py
The file was addedmlir/python/mlir/dialects/shape.py
The file was removedmlir/lib/Bindings/Python/GPUOps.td
The file was removedmlir/lib/Bindings/Python/mlir/execution_engine.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/ops/__init__.py
The file was addedmlir/python/mlir/dialects/TensorOps.td
The file was removedmlir/lib/Bindings/Python/mlir/conversions/__init__.py
The file was removedmlir/test/Bindings/Python/debug.py
The file was addedmlir/test/python/ir/context_lifecycle.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/scalar_expr.py
The file was addedmlir/test/python/execution_engine.py
The file was addedmlir/test/python/dialects/linalg/opsrun.py
The file was removedmlir/lib/Bindings/Python/MemRefOps.td
The file was addedmlir/python/mlir/dialects/async_dialect/passes/__init__.py
The file was addedmlir/python/mlir/dialects/memref.py
The file was removedmlir/lib/Bindings/Python/BuiltinOps.td
The file was removedmlir/test/Bindings/Python/dialects/linalg/ops.py
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/__init__.py
The file was removedmlir/lib/Bindings/Python/mlir/ir.py
The file was removedmlir/lib/Bindings/Python/AsyncOps.td
The file was addedmlir/python/mlir/dialects/async_dialect/__init__.py
The file was removedmlir/test/Bindings/Python/ods_helpers.py
The file was addedmlir/python/mlir/dialects/tensor.py
The file was addedmlir/test/python/ir/integer_set.py
The file was removedmlir/test/Bindings/Python/ir_module.py
The file was addedmlir/test/python/ir/array_attributes.py
The file was removedmlir/test/Bindings/Python/lit.local.cfg
The file was removedmlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/yaml_helper.py
The file was addedmlir/python/CMakeLists.txt
The file was addedmlir/test/python/dialects/async_dialect.py
The file was addedmlir/test/python/ir/affine_map.py
The file was addedmlir/test/python/ir/affine_expr.py
The file was removedmlir/test/Bindings/Python/ir_operation.py
The file was addedmlir/test/python/ir/value.py
The file was addedmlir/python/mlir/dialects/linalg/opdsl/lang/__init__.py
The file was addedmlir/python/mlir/dialects/LinalgOps.td
The file was removedmlir/lib/Bindings/Python/mlir/passmanager.py
The file was addedmlir/test/python/ir/location.py
The file was removedmlir/lib/Bindings/Python/mlir/runtime/__init__.py
The file was addedmlir/test/python/dialects/linalg/opdsl/shape_maps_iteration.py
The file was addedmlir/python/mlir/dialects/_builtin_ops_ext.py
The file was removedmlir/test/Bindings/Python/dialects/linalg/opdsl/lit.local.cfg
The file was removedmlir/test/Bindings/Python/.style.yapf
The file was modifiedmlir/test/CMakeLists.txt
The file was removedmlir/test/Bindings/Python/dialects/python_test.py
The file was addedmlir/test/python/ir/insertion_point.py
The file was modifiedmlir/CMakeLists.txt
The file was addedmlir/python/mlir/dialects/StandardOps.td
The file was removedmlir/test/Bindings/Python/execution_engine.py
The file was removedmlir/test/Bindings/Python/context_managers.py
The file was removedmlir/test/Bindings/Python/dialects/linalg/opdsl/interfaces.py
Commit 84f0bb619507caf7c4809400138dae1da578282a by Louis Dionne
[libc++] Fix template instantiation depth issues with std::tuple

This fixes the issue by implementing _And using the short-circuiting
SFINAE trick that we previously used only in std::tuple. One thing we
could look into is use the naive recursive implementation for disjunctions
with a small number of arguments, and use that trick with larger numbers
of arguments. It might be the case that the constant overhead for setting
up the SFINAE trick makes it only worth doing for larger packs, but that's
left for further work.

This problem was raised in https://reviews.llvm.org/D96523.

Differential Revision: https://reviews.llvm.org/D101661
The file was addedlibcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/recursion_depth.pass.cpp
The file was modifiedlibcxx/include/type_traits
Commit 39bbfb77264a4a7a216921c2b70a30ba0f27eb56 by Louis Dionne
[libc++] Use the internal Lit shell to run the tests

This makes the libc++ tests more portable -- almost all of them should
now work on Windows, except for some tests that assume a shell is
available on the target. We should probably provide a way to exclude
those anyway for the purpose of running tests on embedded targets.

Differential Revision: https://reviews.llvm.org/D89495
The file was modifiedlibcxx/test/libcxx/selftest/additional_compile_flags/substitutes-in-compile-flags.sh.cpp
The file was modifiedlibcxx/test/libcxx/selftest/sh.cpp/run-error.sh.cpp
The file was modifiedlibcxx/test/libcxx/selftest/sh.cpp/run-success.sh.cpp
The file was modifiedlibcxx/utils/libcxx/test/format.py
Commit e8f7241e0b48d557406ece7e0c2f273eea2d7e39 by 31459023+hctim
[scudo] Don't track free/use stats for transfer batches.

The Scudo C unit tests are currently non-hermetic. In particular, adding
or removing a transfer batch is a global state of the allocator that
persists between tests. This can cause flakiness in
ScudoWrappersCTest.MallInfo, because the creation or teardown of a batch
causes mallinfo's uordblks or fordblks to move up or down by the size of
a transfer batch on malloc/free.

It's my opinion that uordblks and fordblks should track the statistics
related to the user's malloc() and free() usage, and not the state of
the internal allocator structures. Thus, excluding the transfer batches
from stat collection does the trick and makes these tests pass.

Repro instructions of the bug:
1. ninja ./projects/compiler-rt/lib/scudo/standalone/tests/ScudoCUnitTest-x86_64-Test
2. ./projects/compiler-rt/lib/scudo/standalone/tests/ScudoCUnitTest-x86_64-Test --gtest_filter=ScudoWrappersCTest.MallInfo

Reviewed By: cryptoad

Differential Revision: https://reviews.llvm.org/D101653
The file was modifiedcompiler-rt/lib/scudo/standalone/local_cache.h
Commit ca02fab7e7b677f77e2c6e3dec172a3bb0a0b1c0 by anirudh_prasad
[AsmParser][SystemZ][z/OS] Implement HLASM location counter syntax ("*") for Z PC-relative instructions.

- This patch attempts to implement the location counter syntax (*) for the HLASM variant for PC-relative instructions.
- In the HLASM variant, for purely constant relocatable values, we expect a * token preceding it, with special support for " *" which is parsed as "<pc-rel-insn 0>"
- For combinations of absolute values and relocatable values, we don't expect the "*" preceding the token.

When you have a " * "  what’s accepted is:

```
*<space>.*{.*} -> <pc-rel-insn> 0
*[+|-][constant-value] -> <pc-rel-insn> [+|-]constant-value
```

When you don’t have a " * " what’s accepted is:

```
brasl  1,func           is allowed (MCSymbolRef type)
brasl  1,func+4         is allowed (MCBinary type)
brasl  1,4+func         is allowed (MCBinary type)
brasl  1,-4+func        is allowed (MCBinary type)
brasl  1,func-4         is allowed (MCBinary type)
brasl  1,*func          is not allowed (* cannot be used for non-MCConstantExprs)
brasl  1,*+func         is not allowed (* cannot be used for non-MCConstantExprs)
brasl  1,*+func+4       is not allowed (* cannot be used for non-MCConstantExprs)
brasl  1,*+4+func       is not allowed (* cannot be used for non-MCConstantExprs)
brasl  1,*-4+8+func     is not allowed (* cannot be used for non-MCConstantExprs)
```

Reviewed By: Kai

Differential Revision: https://reviews.llvm.org/D100987
The file was modifiedllvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
The file was modifiedllvm/include/llvm/MC/MCAsmInfo.h
The file was modifiedllvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
The file was modifiedllvm/test/MC/AsmParser/directive_rept-diagnostics.s
The file was modifiedllvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp
Commit ec339163a7a5bad134eef869356b359cc44dfc97 by frgossen
[MLIR][Linalg] Lower `linalg.tiled_loop` in a separate pass

Add dedicated pass `convert-linalg-tiled-loops-to-scf` to lower
`linalg.tiled_loop`s.

Differential Revision: https://reviews.llvm.org/D101768
The file was modifiedmlir/test/Dialect/Linalg/loops.mlir
The file was addedmlir/test/Dialect/Linalg/tiled-loops.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.td
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.h
Commit 456efbc0f14d8d145d19eaa046f3c1b49b1bf4c8 by frgossen
[MLIR][Linalg] Avoid forward declaration in `Loops.cpp`

Differential Revision: https://reviews.llvm.org/D101771
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
Commit 9621c1ef56c568ffe2db903af2f61137a4453430 by thomasraoux
[mlir][linalg] Fix vectorization bug in vector transfer indexing map calculation

The current implementation had a bug as it was relying on the target vector
dimension sizes to calculate where to insert broadcast. If several dimensions
have the same size we may insert the broadcast on the wrong dimension. The
correct broadcast cannot be inferred from the type of the source and
destination vector.

Instead when we want to extend transfer ops we calculate an "inverse" map to the
projected permutation and insert broadcast in place of the projected dimensions.

Differential Revision: https://reviews.llvm.org/D101738
The file was modifiedmlir/include/mlir/IR/AffineMap.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/lib/IR/AffineMap.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
Commit 753185031d939711f8733639a77a6fdc3bdbad22 by tomas.matheson
[CodeGen][ARM] Implement atomicrmw as pseudo operations at -O0

atomicrmw instructions are expanded by AtomicExpandPass before register allocation
into cmpxchg loops. Register allocation can insert spills between the exclusive loads
and stores, which invalidates the exclusive monitor and can lead to infinite loops.

To avoid this, reimplement atomicrmw operations as pseudo-instructions and expand them
after register allocation.

Floating point legalisation:
f16 ATOMIC_LOAD_FADD(*f16, f16) is legalised to
f32 ATOMIC_LOAD_FADD(*i16, f32) and then eventually
f32 ATOMIC_LOAD_FADD_16(*i16, f32)

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

Originally submitted as 3338290c187b254ad071f4b9cbf2ddb2623cefc0.
Reverted in c7df6b1223d88dfd15248fbf7b7b83dacad22ae3.
The file was modifiedllvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/test/Transforms/AtomicExpand/ARM/atomicrmw-fp.ll
The file was addedllvm/test/CodeGen/ARM/atomicrmw_exclusive_monitor_all.ll
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
Commit 63f8226f259a03d7a56403be496724b77314e19a by clementval
[OpenMPIRBuilder] Add createOffloadMaptypes and createOffloadMapnames functions

Add function to create the offload_maptypes and the offload_mapnames globals. These two functions
are used in clang. They will be used in the Flang/MLIR lowering as well.

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D101503
The file was modifiedllvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedllvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
Commit fd15e2b825f26dd7eac3b4a52aab36c88e52850a by ravishankarm
[mlir][Linalg] Use rank-reduced versions of subtensor and subtensor insert when possible.

Convert subtensor and subtensor_insert operations to use their
rank-reduced versions to drop unit dimensions.

Differential Revision: https://reviews.llvm.org/D101495
The file was modifiedmlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
The file was modifiedmlir/test/Dialect/MemRef/fold-subview-ops.mlir
The file was modifiedmlir/include/mlir/Dialect/MemRef/Transforms/Passes.td
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
The file was modifiedmlir/lib/Dialect/MemRef/Transforms/FoldSubViewOps.cpp
The file was modifiedmlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
Commit 15a42339fe5f5daa86651e181df9a4f89d3ededf by spatel
[ValueTracking] soften assert for invertible recurrence matching

There's a TODO comment in the code and discussion in D99912
about generalizing this, but I wasn't sure how to implement that,
so just going with a potential minimal fix to avoid crashing.

The test is a reduction beyond useful code (there's no user of
%user...), but it is based on https://llvm.org/PR50191, so this
is asserting on real code.

Differential Revision: https://reviews.llvm.org/D101772
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/icmp.ll
Commit cd460c4d11eeeca485353ad6a1961b543980b664 by tlively
[WebAssembly] Fixup order of ins variables for table instructions

WebAssembly instruction arguments should have their arguments ordered from
the deepest to the shallowest on the stack.
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrTable.td
Commit ea817d79be2686d1d5fad04d429dbe392ee22b5f by tejohnson
[SimplifyCFG] Look for control flow changes instead of side effects.

When passingValueIsAlwaysUndefined scans for an instruction between an
inst with a null or undef argument and its first use, it was checking
for instructions that may have side effects, which is a superset of the
instructions it intended to find (as per the comments, control flow
changing instructions that would prevent reaching the uses). Switch
to using isGuaranteedToTransferExecutionToSuccessor() instead.

Without this change, when enabling -fwhole-program-vtables, which causes
assumes to be inserted by clang, we can get different simplification
decisions. In particular, when building with instrumentation FDO it can
affect the optimizations decisions before FDO matching, leading to some
mismatches.

I had to modify d83507-knowledge-retention-bug.ll since this fix enables
more aggressive optimization of that code such that it no longer tested
the original bug it was meant to test. I removed the undef which still
provokes the original failure (confirmed by temporarily reverting the
fix) and also changed it to just invoke the passes of interest to narrow
the testing.

Similarly I needed to adjust code for UnreachableEliminate.ll to avoid
an undef which was causing the function body to get optimized away with
this fix.

Differential Revision: https://reviews.llvm.org/D101507
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/while-loops.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/d83507-knowledge-retention-bug.ll
Commit fa3e26266cd499856c573b68bee97fefc07f24ad by cjdb
[libcxx][iterator][ranges] adds `forward_iterator` and `forward_range`

Implements parts of:
    * P0896R4 The One Ranges Proposal`

Depends on D100271.

Differential Revision: https://reviews.llvm.org/D100275
The file was modifiedlibcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp
The file was removedlibcxx/test/libcxx/iterators/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__iterator/concepts.h
The file was modifiedlibcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.forward/subsumption.compile.pass.cpp
The file was modifiedlibcxx/include/__ranges/concepts.h
The file was modifiedlibcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/list/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp
The file was modifiedlibcxx/include/ranges
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.refinements/subsumption.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/map/range_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/ranges/range.refinements/forward_range.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/forwardlist/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/multimap/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.set/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/stream.iterators/istreambuf.iterator/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/range_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.forward/forward_iterator.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.set/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/multiset/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp
Commit 9d86095ff83b01e6c9c7d21e8efaacba03ba71e2 by tomas.matheson
Revert "[CodeGen][ARM] Implement atomicrmw as pseudo operations at -O0"

This reverts commit 753185031d939711f8733639a77a6fdc3bdbad22.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
The file was modifiedllvm/test/Transforms/AtomicExpand/ARM/atomicrmw-fp.ll
The file was removedllvm/test/CodeGen/ARM/atomicrmw_exclusive_monitor_all.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
Commit 2fec8860d8aef7ba74064de622fe9ce29f3b19fb by i
[sanitizer] Set IndentPPDirectives: AfterHash in .clang-format

Code patterns like this are common, `#` at the line beginning
(https://google.github.io/styleguide/cppguide.html#Preprocessor_Directives),
one space indentation for if/elif/else directives.
```
#if SANITIZER_LINUX
# if defined(__aarch64__)
# endif
#endif
```

However, currently clang-format wants to reformat the code to
```
#if SANITIZER_LINUX
#if defined(__aarch64__)
#endif
#endif
```

This significantly harms readability in my review.  Use `IndentPPDirectives:
AfterHash` to defeat the diagnostic. clang-format will now suggest:

```
#if SANITIZER_LINUX
#  if defined(__aarch64__)
#  endif
#endif
```

Unfortunately there is no clang-format option using indent with 1 for
just preprocessor directives. However, this is still one step forward
from the current behavior.

Reviewed By: #sanitizers, vitalybuka

Differential Revision: https://reviews.llvm.org/D100238
The file was modifiedcompiler-rt/lib/sanitizer_common/.clang-format
The file was modifiedcompiler-rt/lib/dfsan/.clang-format
The file was modifiedcompiler-rt/lib/asan/.clang-format
The file was modifiedcompiler-rt/lib/interception/.clang-format
The file was modifiedcompiler-rt/lib/msan/.clang-format
The file was modifiedcompiler-rt/lib/safestack/.clang-format
The file was modifiedcompiler-rt/test/.clang-format
The file was modifiedcompiler-rt/lib/tsan/.clang-format
The file was modifiedcompiler-rt/lib/hwasan/.clang-format
The file was modifiedcompiler-rt/lib/lsan/.clang-format
Commit ab40c027f0ce9492919a72ad339de40bdb84b354 by dimitry
[MC][ELF] Work around R_MIPS_LO16 relocation handling problem

This fixes PR49821, and avoids "ld.lld: error: test.o:(.rodata.str1.1):
offset is outside the section" errors when linking MIPS objects with
negative R_MIPS_LO16 implicit addends.

ld.lld handles R_MIPS_HI16/R_MIPS_LO16 separately, not as a whole, so it
doesn't know that an R_MIPS_HI16 with implicit addend 1 and an
R_MIPS_LO16 with implicit addend -32768 represents 32768, which is in
range of a MergeInputSection. We could introduce a new RelExpr member
(like R_RISCV_PC_INDIRECT for R_RISCV_PCREL_HI20 / R_RISCV_PCREL_LO12)
but the complexity is unnecessary given that GNU as keeps the original
symbol for this case as well.

Reviewed By: atanasyan, MaskRay

Differential Revision: https://reviews.llvm.org/D101773
The file was modifiedllvm/lib/MC/ELFObjectWriter.cpp
The file was addedllvm/test/MC/Mips/mips_lo16.s
Commit e1babfc2233bf725b7c3c4e1a5af2ba79bfaddd5 by dimitry
Revert "[MC][ELF] Work around R_MIPS_LO16 relocation handling problem"

This reverts commit ab40c027f0ce9492919a72ad339de40bdb84b354.

Some additional test cases are influenced by the workaround, and I need
to do a complete test run to identify and check them all.
The file was modifiedllvm/lib/MC/ELFObjectWriter.cpp
The file was removedllvm/test/MC/Mips/mips_lo16.s
Commit 90d18e106be252669659e2573cc3e6f2ea29a452 by ajcbik
[mlir][sparse] fixed typo: sparse -> sparse_tensor

Test passes either way, but this is full name of dialect

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D101774
The file was modifiedmlir/test/mlir-opt/commandline.mlir
Commit 9c5d86aac505228eddbfda86aa558467d0b7c5e6 by cjdb
[libcxx][iterator][ranges] adds `bidirectional_iterator` and `bidirectional_range`

Implements parts of:
    * P0896R4 The One Ranges Proposal`

Depends on D100275.

Differential Revision: https://reviews.llvm.org/D100278
The file was modifiedlibcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.bidir/subsumption.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__ranges/concepts.h
The file was modifiedlibcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/ranges
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/map/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/ranges/range.refinements/bidirectional_range.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/forwardlist/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.set/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/list/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__iterator/concepts.h
The file was modifiedlibcxx/test/std/containers/associative/multimap/range_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.bidir/bidirectional_iterator.compile.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.refinements/subsumption.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/associative/multiset/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.set/iterator_concept_conformance.compile.pass.cpp
Commit a6e09391bbe7cb42d591f2a8c169cf4e8980e121 by ravishankarm
[mlir][Linalg] Add a utility method to get reassociations maps for reshape.

Given the source and destination shapes, if they are static, or if the
expanded/collapsed dimensions are unit-extent, it is possible to
compute the reassociation maps that can be used to reshape one type
into another. Add a utility method to return the reassociation maps
when possible.

This utility function can be used to fuse a sequence of reshape ops,
given the type of the source of the producer and the final result
type. This pattern supercedes a more constrained folding pattern added
to DropUnitDims pass.

Differential Revision: https://reviews.llvm.org/D101343
The file was modifiedmlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
Commit 1c1406f24d8b1c8ebec76c516ea969072d24cc75 by aheejin
[WebAssembly] Reenable end-to-end test in wasm-eh.cpp

This was temporarily disabled while we were reimplementing the new spec.

Reviewed By: tlively

Differential Revision: https://reviews.llvm.org/D101735
The file was modifiedclang/test/CodeGenCXX/wasm-eh.cpp
Commit 08c08577f94fd7efd2a670d0e5c3c6f72882fa0a by Dávid Bolvanský
[InstCombine] cttz(sext(x)) -> cttz(zext(x))

```

----------------------------------------
define i32 @src(i16 %x, i1 %b) {
%0:
  %z = sext i16 %x to i32
  %p = cttz i32 %z, %b
  ret i32 %p
}
=>
define i32 @tgt(i16 %x, i1 %b) {
%0:
  %z = zext i16 %x to i32
  %p = cttz i32 %z, %b
  ret i32 %p
}
Transformation seems to be correct!
```

https://alive2.llvm.org/ce/z/evomeg

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D101764
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cttz.ll
Commit 2d5d720df0bba25f1aa2cea973d3d38dc5afac45 by Jonas Devlieghere
[debugserver] Include LLDB_VERSION_SUFFIX in debugserver version

The lack of a dot before the suffix is intentional, as the suffix itself
includes a dot or dash.

Differential revision: https://reviews.llvm.org/D101655
The file was modifiedlldb/tools/debugserver/source/debugserver_vers.c.in
Commit 8a40bf6d210fd2b5180841579d412826c381fb2b by efriedma
[AArch64][SVE] More unpredicated ld1/st1 patterns for reg+reg addressing modes

In some cases, we can improve the generated code by using a load with
the "wrong" element width: in particular, using ld1b/st1b when we see
reg+reg without a shift.

Differential Revision: https://reviews.llvm.org/D100527
The file was modifiedllvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-reg.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-reg.ll
The file was modifiedllvm/test/CodeGen/AArch64/named-vector-shuffles-sve.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit 1c0374e770956037764f9cae8a5e35ec7cefcdc5 by ezhulenev
[mlir] Add polynomial approximation for math::Log1p

This approximation matches the one in Eigen.

```
name                      old cpu/op  new cpu/op  delta
BM_mlir_Log1p_f32/10      83.2ns ± 7%  34.8ns ± 5%  -58.19%    (p=0.000 n=84+71)
BM_mlir_Log1p_f32/100      664ns ± 4%   129ns ± 4%  -80.57%    (p=0.000 n=82+82)
BM_mlir_Log1p_f32/1k      6.75µs ± 4%  0.81µs ± 3%  -88.07%    (p=0.000 n=88+79)
BM_mlir_Log1p_f32/10k     76.5µs ± 3%   7.8µs ± 4%  -89.84%    (p=0.000 n=80+80)
BM_eigen_s_Log1p_f32/10   70.1ns ±14%  72.6ns ±14%   +3.49%  (p=0.000 n=116+112)
BM_eigen_s_Log1p_f32/100   706ns ± 9%   717ns ± 3%   +1.60%   (p=0.018 n=117+80)
BM_eigen_s_Log1p_f32/1k   8.26µs ± 1%  8.26µs ± 1%     ~       (p=0.567 n=84+86)
BM_eigen_s_Log1p_f32/10k  92.1µs ± 5%  92.6µs ± 6%   +0.60%  (p=0.047 n=115+115)
BM_eigen_v_Log1p_f32/10   31.8ns ±24%  34.9ns ±17%   +9.72%    (p=0.000 n=98+96)
BM_eigen_v_Log1p_f32/100   169ns ±10%   177ns ± 5%   +4.66%   (p=0.000 n=119+81)
BM_eigen_v_Log1p_f32/1k   1.42µs ± 4%  1.46µs ± 8%   +2.70%   (p=0.000 n=93+113)
BM_eigen_v_Log1p_f32/10k  14.4µs ± 5%  14.9µs ± 8%   +3.61%  (p=0.000 n=115+110)
```

Reviewed By: ezhulenev, ftynse

Differential Revision: https://reviews.llvm.org/D101765
The file was modifiedmlir/test/mlir-cpu-runner/math_polynomial_approx.mlir
The file was modifiedmlir/test/Dialect/Math/polynomial-approximation.mlir
The file was modifiedmlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
Commit 404fa9a6cf7cd3c16ef9c3fc276d8f193e3c94dc by georgakoudis1
[Utils] Add prof metadata to matched unnamed values

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D101742
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll
The file was modifiedllvm/utils/UpdateTestChecks/common.py
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.expected
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected
Commit 88ca010cc1854059c9e4a668750cd981e44238bc by Dávid Bolvanský
[InstCombine] Added tests for PR50094, NFC
The file was modifiedllvm/test/Transforms/InstCombine/ctpop.ll
Commit 001ba65375f79a76491677cc2de05637f15a7a57 by jezng
[lld-macho] De-templatize mach_header operations

@thakis pointed out that `mach_header` and `mach_header_64`
actually have the same set of (used) fields, with the 64-bit version
having extra padding. So we can access the fields we need using the
single `mach_header` type instead of using templates to switch between
the two.

I also spotted a potential issue where hasObjCSection tries to parse a
file w/o checking if it does indeed match the target arch... As such,
I've added a quick magic number check to ensure we don't access invalid
memory during `findCommand()`.

Addresses PR50180.

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D101724
The file was modifiedlld/MachO/SyntheticSections.h
The file was modifiedlld/test/MachO/objc.s
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/ObjC.cpp
The file was modifiedlld/MachO/Target.h
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/Writer.h
The file was modifiedlld/MachO/Writer.cpp
Commit 183b0dad4e29f048957537ca2d08332e0c6fd372 by jezng
[lld-macho] Add ARM requirement to objc.s
The file was modifiedlld/test/MachO/objc.s
Commit 32b500431c02b3e4c09312b9f3c4d693f56ebae0 by listmail
Add some additional test cases inspired by PR50191
The file was modifiedllvm/test/Analysis/ValueTracking/known-non-equal.ll
Commit 9982f33e2c3aeba0b59555286d0d1e99697c62a0 by jonathan.l.peyton
[OpenMP] Refactor/Rework topology discovery code

This patch does the following:

1) Introduce kmp_topology_t as the runtime-friendly structure (the
corresponding global variable is __kmp_topology) to determine the
exact machine topology which can vary widely among current and future
architectures. The current design is not easy to expand beyond the assumed
three layer topology: sockets, cores, and threads so a rework capable of
using the existing KMP_AFFINITY mechanisms is required.

This new topology structure has:
* The depth and types of the topology
* Ratio count for each consecutive level (e.g., number of cores per
   socket, number of threads per core)
* Absolute count for each level (e.g., 2 sockets, 16 cores, 32 threads)
* Equivalent topology layer map (e.g., Numa domain is equivalent to
   socket, L1/L2 cache equivalent to core)
* Whether it is uniform or not

The hardware threads are represented with the kmp_hw_thread_t
structure. This structure contains the ids (e.g., socket 0, core 1,
thread 0) and other information grabbed from the previous Address
structure. The kmp_topology_t structure contains an array of these.

2) Generalize the KMP_HW_SUBSET envirable for the new
kmp_topology_t structure. The algorithm doesn't assume any order with
tiles,numa domains,sockets,cores,threads. Instead it just parses the
envirable, makes sure it is consistent with the detected topology
(including taking into account equivalent layers) and then trims away
the unneeded subset of hardware threads. To enable this, a new
kmp_hw_subset_t structure is introduced which contains a vector of
items (hardware type, number user wants, offset). Any keyword within
__kmp_hw_get_keyword() can be used as a name and can be shortened as
well. e.g.,
KMP_HW_SUBSET=1s,2numa,4tile,2c,3t can be used on the KNL SNC-4 machine.

3) Simplify topology detection functions so they only do the singular
task of detecting the machine's topology. Printing, and all
canonicalizing functionality is now done afterwards. So many lines of
duplicated code are eliminated.

4) Add new ll_caches and numa_domains to OMP_PLACES, and
consequently, KMP_AFFINITY's granularity setting. All the names within
__kmp_hw_get_keyword() are available for use in OMP_PLACES or
KMP_AFFINITY's granularity setting.

5) Simplify and future-proof code where explicit lists of allowed
affinity settings keywords inside if() conditions.

6) Add x86 CPUID leaf 4 cache detection to existing x2apic id method
so equivalent caches could be detected (in particular for the ll_caches
place).

Differential Revision: https://reviews.llvm.org/D100997
The file was addedopenmp/runtime/test/affinity/omp-places.c
The file was modifiedopenmp/runtime/src/kmp_global.cpp
The file was modifiedopenmp/runtime/src/kmp_settings.cpp
The file was modifiedopenmp/runtime/src/i18n/en_US.txt
The file was addedopenmp/runtime/test/affinity/kmp-affinity.c
The file was modifiedopenmp/runtime/src/kmp_affinity.h
The file was addedopenmp/runtime/test/affinity/libomp_test_topology.h
The file was addedopenmp/runtime/test/affinity/kmp-hw-subset.c
The file was modifiedopenmp/runtime/src/kmp_affinity.cpp
The file was modifiedopenmp/runtime/src/kmp.h
Commit 9b67096fe952250d081bf0127b357d41dd332b03 by ezhulenev
[mlir] Linalg: add vector transfer lowering patterns to the contraction lowering

This fixes a performance regression in vec-mat vectorization

Reviewed By: asaadaldien

Differential Revision: https://reviews.llvm.org/D101795
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp
Commit 2d6aff84c9d7ab7babec3511197337467e3b3082 by listmail
One more test case inspired by PR50191
The file was modifiedllvm/test/Analysis/ValueTracking/known-non-equal.ll
Commit 182831258bfe520140956a4da6c8c6177d37299a by jhuber6
[Attributor] Add AAExecutionDomainInfo interface to OpenMPOpt

Summary:
Add the AAExecutionDomainInfo attributor instance to OpenMPOpt.
This will infer information relating to domain information that an
instruction might be expecting in. Right now this only includes a very
crude check for instructions that will be executed by the master thread
by comparing a thread-id function with a constant zero.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D101578
The file was addedllvm/test/Transforms/OpenMP/single_threaded_execution.ll
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit 2df3426fd15e41880c2da1484b560cd9c5f1f842 by aeubanks
[NewPM] Invalidate AAManager after populating GlobalsAA

GlobalsAA is only created at the beginning of the inliner pipeline.  If
an AAManager is cached from previous passes, it won't get rebuilt to
include the newly created GlobalsAA.

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D101379
The file was modifiedllvm/include/llvm/Transforms/IPO/Inliner.h
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
The file was modifiedclang/test/Driver/debug-pass-structure.c
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
Commit e38ccb729b205b076356684e055efb7dfc673963 by listmail
Recommit "Generalize getInvertibleOperand recurrence handling slightly"

This was reverted because of a reported problem.  It turned out this patch didn't introduce said problem, it just exposed it more widely.  15a4233 fixes the root issue, so this simple a) rebases over that, and b) adds a much more extensive comment explaining why that weakened assert is correct.

Original commit message follows:

Follow up to D99912, specifically the revert, fix, and reapply thereof.

This generalizes the invertible recurrence logic in two ways:
* By allowing mismatching operand numbers of the phi, we can recurse through a pair of phi recurrences whose operand orders have not been canonicalized.
* By allowing recurrences through operand 1, we can invert these odd (but legal) recurrence.

Differential Revision: https://reviews.llvm.org/D100884
The file was modifiedllvm/test/Analysis/ValueTracking/known-non-equal.ll
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
Commit 73332d73e15f4fdf8e4240c585d0a334f23926f3 by sbc
[lld][WebAssembly] Do not merge comdat data segments

When running in relocatable mode any input data segments that are part
of a comdat group should not be merged with other segments of the same
name.  This is because the final linker needs to keep the separate so
they can be included/excluded individually.

Often this is not a problem since normally only one section with a given
name `foo` ends up in the output object file.  However, the problem
occurs when one input contains `foo` which part of a comdat and another
object contains a local symbol `foo` we were attempting to merge them.

This behaviour matches (I believe) that of the ELF linker.  See
`LinkerScript.cpp:addInputSec`.

Fixes: https://github.com/emscripten-core/emscripten/issues/9726

Differential Revision: https://reviews.llvm.org/D101703
The file was addedlld/test/wasm/relocatable-comdat.s
The file was modifiedlld/wasm/Writer.cpp
The file was addedlld/test/wasm/Inputs/comdat-data.s
The file was modifiedllvm/lib/Object/WasmObjectFile.cpp
Commit 7310403e3cdf8a436f94770e1a1498db05d2d091 by dblaikie
[demangler] Initial support for the new Rust mangling scheme

Add a demangling support for a small subset of a new Rust mangling
scheme, with complete support planned as a follow up work.

Intergate Rust demangling into llvm-cxxfilt and use llvm-cxxfilt for
end-to-end testing. The new Rust mangling scheme uses "_R" as a prefix,
which makes it easy to disambiguate it from other mangling schemes.

The public API is modeled after __cxa_demangle / llvm::itaniumDemangle,
since potential candidates for further integration use those.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D101444
The file was addedllvm/test/Demangle/rust.test
The file was modifiedllvm/include/llvm/Demangle/Demangle.h
The file was addedllvm/include/llvm/Demangle/RustDemangle.h
The file was addedllvm/lib/Demangle/RustDemangle.cpp
The file was modifiedllvm/unittests/Demangle/CMakeLists.txt
The file was modifiedllvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
The file was modifiedllvm/lib/Demangle/CMakeLists.txt
The file was addedllvm/unittests/Demangle/RustDemangleTest.cpp
Commit 47ee47e1e8916a58c9c2e4b639700ddb0d534e93 by llvmgnsyncbot
[gn build] Port 7310403e3cdf
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Demangle/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn
Commit a72499e47537c02a33d7c1c2e512d0b4a0ecbb89 by rtenneti
[libc] Introduce asctime, asctime_r to LLVM libc

[libc] Introduce asctime, asctime_r to LLVM libc

asctime and asctime_r share the same common code. They call asctime_internal
a static inline function.

asctime uses snprintf to return the string representation in a buffer.
It uses the following format (26 characters is the buffer size) as per
7.27.3.1 section in http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2478.pdf.
The buf parameter for asctime_r shall point to a buffer of at least 26 bytes.

snprintf(buf, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",...)

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D99686
The file was addedlibc/src/time/asctime_r.cpp
The file was modifiedlibc/config/linux/api.td
The file was modifiedlibc/spec/stdc.td
The file was addedlibc/test/src/time/asctime_test.cpp
The file was modifiedlibc/test/src/time/mktime_test.cpp
The file was modifiedlibc/src/time/time_utils.h
The file was modifiedlibc/src/time/CMakeLists.txt
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/test/src/time/TmHelper.h
The file was addedlibc/src/time/asctime_r.h
The file was addedlibc/src/time/asctime.h
The file was addedlibc/test/src/time/asctime_r_test.cpp
The file was addedlibc/src/time/asctime.cpp
The file was modifiedlibc/test/src/time/CMakeLists.txt
Commit 4ef1f90e4d564b872e3598ccef45adb740eb0f0d by sbc
[lld][WebAssembly] Convert more tests to asm format. NFC

Two of these are trivial.  The third (shared.s) did have some
expectations changes but only due to two data symbols being re-ordered.

Differential Revision: https://reviews.llvm.org/D101711
The file was removedlld/test/wasm/shared.ll
The file was removedlld/test/wasm/shared-export-dynamic.ll
The file was addedlld/test/wasm/shared-needed.s
The file was addedlld/test/wasm/shared-export-dynamic.s
The file was removedlld/test/wasm/shared-needed.ll
The file was addedlld/test/wasm/shared.s
Commit d14d84af2f5ebb8ae2188ce6884a29a586dc0a40 by aeubanks
[NewPM] Only invalidate modified functions' analyses in CGSCC passes

Previously, any change in any function in an SCC would cause all
analyses for all functions in the SCC to be invalidated. With this
change, we now manually invalidate analyses for functions we modify,
then let the pass manager know that all function analyses should be
preserved.

So far this only touches the inliner, argpromotion, funcattrs, and
updateCGAndAnalysisManager(), since they are the most used.

Slight compile time improvements:
http://llvm-compile-time-tracker.com/compare.php?from=326da4adcb8def2abdd530299d87ce951c0edec9&to=8942c7669f330082ef159f3c6c57c3c28484f4be&stat=instructions

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D100917
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/lib/Transforms/IPO/FunctionAttrs.cpp
The file was modifiedllvm/lib/Analysis/CGSCCPassManager.cpp
The file was modifiedllvm/test/Transforms/Inline/cgscc-incremental-invalidate.ll
The file was addedllvm/test/Transforms/Inline/analysis-invalidation.ll
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp
Commit 60ad0fd3c8bf18dc1a307b97e9e3eb21dd5e4cfb by jingham
Clarify the help for "breakpoint command add" and "watchpoint command add".

These two commands add a list of commands to the breakpoint/watchpoint. The current
implementation only supports replacing the current command list.  I started with
that as overwrite seems to be the most common operation.  But using "add" will
allow us to later offer other add-modes: "prepend", "append" and "insert".
That and "overwrite" then make up a useful set of options for this operation.
The file was modifiedlldb/source/Commands/CommandObjectWatchpointCommand.cpp
The file was modifiedlldb/source/Commands/CommandObjectBreakpointCommand.cpp
Commit 012f01e227eeb071dbce270aa36745fd6ca95af5 by aqjune
Precommit tests for D101720 (NFC)
The file was addedllvm/test/Transforms/InstCombine/select-safe-impliedcond-transforms.ll
Commit 24ce194cfe493bb743c288ed049fcd86c37aace2 by aqjune
[InstCombine] generalize select + select/and/or folding using implied conditions

This patch optimizes the remaining possible cases in D101191 by generalizing isImpliedCondition()-based
foldings.

Assume that there is `op a, (select b, _, _)` where op is one of `and i1`, `or i1` or their select forms.

We can do the following optimization based on the result of `isImpliedCondition(a, b)`:

If a = true implies…
- b = true:
    - select a, (select b, A, B), false => select a, A, false : https://alive2.llvm.org/ce/z/WCnZYh
    - and a, (select b, A, B) => select a, A, false : https://alive2.llvm.org/ce/z/uZhcMG
- b = false:
    - select a, (select b, A, B), false => select a, B, false : https://alive2.llvm.org/ce/z/c2hJpV
    - and a, (select b, A, B) => select a, B, false : https://alive2.llvm.org/ce/z/5ggwMM

If a = false implies…
- b = true:
    - select a, true, (select b, A, B) => select a, true, A : https://alive2.llvm.org/ce/z/tidKvH
    - or a, (select b, A, B) =>  select a, true, A : https://alive2.llvm.org/ce/z/cC-uyb
- b = false:
    - select a, true, (select b, A, B) => select a, true, B : https://alive2.llvm.org/ce/z/ZXpJq9
    - or a, (select b, A, B) => select a, true, B : https://alive2.llvm.org/ce/z/hnDrJj

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D101720
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/select-safe-impliedcond-transforms.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
The file was modifiedllvm/test/Transforms/InstCombine/select-safe-bool-transforms.ll
Commit 808fcddae406181cfc396df3dd065e821147c4c4 by sbc
[lld][WebAssembly] Fix crash with `-pie` without `--allow-undefined`

`shouldImport` was not returning true in PIC mode even though out
assumption elsewhere (in Relocations.cpp:scanRelocations) is that we
don't report undefined symbols in PIC mode today.  This was resulting
functions that were undefined and but also not imported which hits an
assert later on that all functions have valid indexes.

Differential Revision: https://reviews.llvm.org/D101716
The file was modifiedlld/test/wasm/pie.ll
The file was modifiedlld/wasm/Relocations.cpp
The file was modifiedlld/wasm/Writer.cpp
Commit 11326cbcdb9710311832774ccb08e69a607813ef by listmail
[IndVarSimplify][NFC] Removed mayThrow from if-condition in predicateLoopExits of IndVarSimplify

Instruction has mayHaveSideEffects method that returns true if mayThrow return true because this is called internally in the first method.  As such, the call being removed is redundant.

Patch By: vdsered (Daniil Seredkin)
Differential Revision: https://reviews.llvm.org/D101685
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 07ce5c99d791a43efeefbbae30f951703e84bc46 by rob.suderman
[mlir][tosa] Add lowerings for tosa.equal and tosa.arithmetic_right_shift

Lowerings equal and arithmetic_right_shift for elementwise ops to linalg dialect using linalg.generic

Reviewed By: rsuderman

Differential Revision: https://reviews.llvm.org/D101804
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Commit aa58281979710a1cee6f1635dc1074c4dfc44650 by springerm
[mlir] Fix bug in TransferOpReduceRank when all dims are broadcasts

TransferReadOps that are a scalar read + broadcast are handled by TransferReadToVectorLoadLowering.

Differential Revision: https://reviews.llvm.org/D101808
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit 2669abaecfc47d4d2436559ab8c1fb49ad6e35c3 by Alex Lorenz
[clang][CodeGen] Use llvm::stable_sort for multi version resolver options

The use of llvm::sort causes periodic failures on the bot with EXPENSIVE_CHECKS enabled,
as the regular sort pre-shuffles the array in the expensive checks mode, leading to a
non-deterministic test result which causes the CodeGenCXX/attr-cpuspecific-outoflinedefs.cpp
testcase to fail on the bot (http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/).
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
Commit 959eec1fddc83c90c208789f20cb6573b2a20642 by noreply
[NFC] Give better diagnose on clang-format not found error

Contributors often confused by whether this is a server or local issue.
The file was modifiedutils/arcanist/clang-format.sh
Commit 27b426b0c8ab388fa7729c0ca2fe1d97141bcb72 by gkm
[lld-macho] Implement builtin section renaming

ld64 automatically renames many sections depending on output type and assorted flags. Here, we implement the most common configs. We can add more obscure flags and behaviors as needed.

Depends on D101393

Differential Revision: https://reviews.llvm.org/D101395
The file was modifiedlld/test/MachO/load-command-sequence.s
The file was modifiedlld/test/MachO/x86-64-stubs.s
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/Options.td
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/Config.h
The file was modifiedlld/MachO/MergedOutputSection.cpp
The file was addedlld/test/MachO/builtin-rename.s
The file was modifiedlld/test/MachO/local-got.s
The file was modifiedlld/test/MachO/x86-64-relocs.s
The file was modifiedlld/MachO/MergedOutputSection.h
Commit ed51156084dd84aa10d78eac14a66b36663069bc by Reshabhkumar.Sharma
[ModuleUtils] NFC: Add unit tests for appendToUsedList

This patch adds initial unit tests for appendToUsedList
in the ModuleUtils. It specifically tests changes from
https://reviews.llvm.org/D101363 which intent to allow
insertion of globals in non-zero address spaces into the
llvm used lists.

Reviewed by: dblaikie

Differential Revision: https://reviews.llvm.org/D101746
The file was modifiedllvm/unittests/Transforms/Utils/CMakeLists.txt
The file was addedllvm/unittests/Transforms/Utils/ModuleUtilsTest.cpp
Commit 97f4789c38f6cab60c10c5132816bc4822503a79 by llvmgnsyncbot
[gn build] Port ed51156084dd
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Transforms/Utils/BUILD.gn