Changes

Summary

  1. Bump the trunk major version to 14 (details)
  2. Emit strong definition for TypeID storage in Op/Type/Attributes definition (details)
  3. [AMDGPU] We would need FP if there is call and caller save VGPR spills (details)
  4. Revert "Emit strong definition for TypeID storage in Op/Type/Attributes definition" (details)
  5. Revert "sanitizers: increase .clang-format columns to 100" (details)
  6. [SLP][X86] Fix naming consistency of dot product tests. NFC. (details)
  7. [ORC] Fix missing include. (details)
  8. [LLDB] Skip HW breakpoints test_step_until on Arm/Linux (details)
  9. Revert "[LLDB] Skip HW breakpoints test_step_until on Arm/Linux" (details)
  10. [clang-format] Correctly attach enum braces with ShortEnums disabled (details)
  11. Revert "[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR" (details)
  12. [lldb] Add "memory tag write" command (details)
  13. [lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure (details)
  14. [ARM] Extra MVE reduction vectorizer tests. NFC (details)
  15. [mlir][memref] Fix collapsed shape ops memref.cast folding with changed type (details)
  16. [LLDB] Skip HW breakpoints test_step_until on Arm/Linux (details)
  17. [LLDB] Skip TestGuiBasicDebug.py on Arm/AArch64 Linux (details)
  18. [libcxx] Bump __libcpp_version to 14 after branch (details)
  19. [mlir][linalg] Introduce a separate EraseIdentityCopyOp Pattern. (details)
  20. Allow #pragma float_control(push|pop) within a language linkage specification (details)
  21. [mlir][linalg] Specialize LinalgOp canonicalization patterns (NFC). (details)
  22. [LV][ARM] Tighten up MLA reduction costing (details)
  23. [LV] Move recurrence backedge fixup code to VPlan::execute (NFC). (details)
  24. [LTO][Legacy] Add new API to check presence of ctor/dtor functions. (details)
  25. [clang-tidy] Fix crash on "reference-to-array" parameters in 'bugprone-easily-swappable-parameters' (details)
  26. [SLP]Improve graph reordering. (details)
  27. [X86][AVX] Move VPERM2F128 defs above VINSERTF128 defs. NFC. (details)
  28. [lldb] Add "memory tag write" --end-addr option (details)
  29. sanitizers: switch BlockingMutex(LINKER_INITIALIZED) to Mutex (details)
  30. sanitizer_common: prohibit Mutex(LINKER_INITIALIZED) (details)
  31. sanitizer_common: replace RWMutex/BlockingMutex with Mutex (details)
  32. [x86] improve CMOV codegen by pushing add into operands, part 3 (details)
  33. [SLP]Fix build on MacOS, NFC. (details)
  34. [InstSimplify] Simplify llvm.vscale when vscale_range attribute exists (details)
  35. [AsmParser] Remove unused declaration parseOptionalCommaInAlloca (NFC) (details)
  36. [mlir][spirv] Fix a few issues in ModuleCombiner (details)
  37. [CLANG][PATCH][FPEnv] Add support for option -ffp-eval-method and extend #pragma float_control similarly (details)
  38. [DebugInfo][InstrRef] Don't break up ret-sequences on debug-info instrs (details)
  39. [Utils] Support class template specializations in update_cc_test_checks (details)
  40. [Clang interpreter] Avoid storing pointers at unaligned locations (details)
  41. [libc] Simplify implementation of benchmarks (details)
  42. [DivRemPairs] make sure we have a valid CFG for hoisting division (details)
  43. [DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR (details)
  44. tsan: fix warnings in tests (details)
  45. tsan: extend signal_malloc test (details)
  46. tsan: increase max number of threads supported by test-only barrier (details)
  47. tsan: improve lots_of_threads test (details)
  48. Revert "[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR" (details)
  49. [libc++][nfc] Improve error diagnostics. (details)
  50. [RISCV] Restrict performANY_EXTENDCombine to prevent an infinite loop. (details)
  51. [RISCV] Fix grammar in a comment. NFC (details)
  52. Revert "[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure" (details)
  53. [NFC][PowerPC] Fix spe.ll to work with update_llc_test_checks.py again (details)
  54. [mlir] harden result type verification in llvm.call (details)
  55. [mlir] run the verifier before translating a module (details)
  56. [llvm] Replace LLVM_ATTRIBUTE_NORETURN with C++11 [[noreturn]] (details)
  57. [mlir][sparse] use proper type alias for filename ptr (details)
  58. Simplify allowing pragma float_control in a linkage specification (details)
  59. Revert "Revert of D49126 [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types." (details)
  60. [PredicateInfo] Use Intrinsic::getDeclaration now that it handles unnamed types. (details)
  61. [LoopFlatten] Fix bug where SCEVCouldNotCompute object is used (details)
  62. [trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization (details)
  63. tsan: remove unused pc arguments (details)
  64. tsan: remove mblock types (details)
  65. tsan: add more micro benchmarks (details)
  66. [MCA] Moving the target specific CustomBehaviour impl. from /tools/llvm-mca/ to /lib/Target/. (details)
  67. tsan: print alloc stack for Java objects (details)
  68. tsan: don't use caller/current PC in Java interfaces (details)
  69. tsan: strip __libc_start_main frame (details)
  70. sanitizer_common: avoid compiler-interted memset in deadlock detector (details)
  71. tsan: don't print __tsan_atomic* functions in report stacks (details)
  72. Add some missing CMake dependencies between MLIR dialects (NFC) (details)
  73. Emit strong definition for TypeID storage in Op/Type/Attributes definition (details)
  74. [ARM] Fix llvm-objdump disassembly of armv7m object files. (details)
  75. COFF/ELF: Place llvm.global_ctors elements in llvm.used if comdat is used (details)
  76. [DebugInfo][docs] Fix DISubprogram fields (details)
  77. [libcxx][ranges] Add ranges::take_view. (details)
  78. Optionally eliminate blocking runtime.await calls by converting functions to coroutines. (details)
  79. [ELF][test] Delete unneeded --triple=thumb* from llvm-objdump RUN lines (details)
  80. [ELF][test] Convert --start-address= and --stop-address= values to hexadecimal (details)
  81. [Bazel] Update for dbed061bf1 (details)
  82. [Bazel] Added missing targets to LLVM bazel rules. (details)
  83. Revert "[trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization" (details)
  84. [libc++] Add UNSUPPORTED for clang-14 since the underlying bug hasn't been fixed yet (details)
  85. [clang] Evaluate strlen of strcpy argument for -Wfortify-source. (details)
  86. [trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization (details)
  87. [mlir] Set the namespace of the BuiltinDialect to 'builtin' (details)
  88. Revert "Emit strong definition for TypeID storage in Op/Type/Attributes definition" (details)
  89. [clang] NFC: refactor multiple implementations of getDecltypeForParenthesizedExpr (details)
  90. [clang] fix concepts crash on substitution failure during normalization (details)
  91. [libc] add strncmp to strings (details)
  92. [profile] Add underscore to /alternatename for Win/x86 (details)
  93. [gn build] Add support for Win/x86 compiler-rt (details)
  94. [DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR (details)
  95. [NFC][Codegen][X86] Autogenerate check lines in avx.ll test (details)
  96. [AArch64][GlobalISel] Improve legalization for odd-sized G_ICMP/G_CONSTANT (details)
  97. [Bazel] Fix digest for bazel-skylib 1.0.3 (details)
  98. [gn build] Manually port dbed061b (details)
  99. [lld-macho] Downgrade "cannot export hidden symbol" to warning (details)
  100. [Attributor] Change function internalization to not replace uses in internalized callers (details)
  101. [gn build] Port 0f4b41e03853 (details)
  102. [Attributor] Don't test internalization in the CGSCC pass. (details)
  103. [tsan] Fix Darwin build after D106973 (details)
  104. Revert "[tsan] Fix Darwin build after D106973" (details)
  105. [tsan] Fix Darwin build after D106973 (details)
  106. NFC: Adapt operation.py to builtin operation print format changes. (details)
  107. Emit strong definition for TypeID storage in Op/Type/Attributes definition (details)
  108. Break apart the MLIR ExecutionEngine from core python module. (details)
  109. [AArch64][GlobalISel] Improve legalization for odd-type G_LOAD (details)
  110. [llvm-objcopy][MachO] Ignore all LC_SUB_* commands. (details)
  111. [libFuzzer] Fix CFI Directives for fuchsia (details)
  112. [asan][fuchsia] Implement PlatformUnpoisonStacks (details)
  113. [ThinLTO] Disallow importing for functions with indir branch to block address (details)
  114. [libc++] Implement the resolutions of LWG3506 and LWG3522. (details)
  115. [RISCV][test] Add new tests for mul optimization in the zba extension with SH*ADD (details)
  116. [RISCV] Optimize mul in the zba extension with SH*ADD (details)
  117. [MBP] findBestLoopTopHelper should exit if OldTop is not a chain header (details)
  118. [libc++] money_get::do_get() set failbit and eofbit if iterator begin equals end (details)
  119. [libc++] Remove unused variables in generate_private_header_tests.py. NFCI. (details)
  120. [libc++][modularisation] Split <compare> into internal headers. (details)
  121. [gn build] Port 61c35fb0c2c9 (details)
  122. NFC: Add missing import to integration test. (details)
  123. Update file names and extensions for MLIR Python execution engine changes. (details)
  124. [Preprocessor] -E -P: Ensure newline after 8 skipped lines. (details)
  125. libcang: Add missing function to libclang.map (details)
  126. [libc][NFC] Add noreturn and constexpr qualifiers where appropriate (details)
  127. [test] Fix tools/gold/X86/comdat-nodeduplicate.ll on non-X86 hosts (details)
  128. Add `all_of_zip` to STLExtras (details)
  129. Implement recursive support into OperationEquivalence::isEquivalentTo() (details)
  130. [NFC][X86] add missing tests in clang/test/CodeGen/attr-target-mv.c (details)
  131. [libc++] Remove excess whitespace in synopsis comment. NFCI. (details)
  132. tsan: fix java_symbolization test (details)
  133. tsan: remove /**/ at the of multi-line macros (details)
  134. tsan: switch from SSE3 to SSE4.2 (details)
  135. [NFC][InstSimplify] Use more intuitive variable names. (details)
  136. [libcxx][doc] Update the build documentation. (details)
Commit 08c766a7318ab37bf1d77e0c683cd3b00e700877 by tstellar
Bump the trunk major version to 14

and clear the release notes.
The file was modifiedclang-tools-extra/docs/conf.py
The file was modifiedlibunwind/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/version.gni
The file was modifiedllvm/utils/release/build_llvm_package.bat
The file was modifiedllvm/CMakeLists.txt
The file was modifiedlibcxx/include/__config
The file was modifiedclang/docs/analyzer/conf.py
The file was modifiedlibcxx/docs/conf.py
The file was modifiedpolly/docs/ReleaseNotes.rst
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedllvm/utils/lit/lit/__init__.py
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedlibunwind/docs/conf.py
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedlld/docs/conf.py
The file was modifiedpolly/docs/conf.py
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedlld/docs/ReleaseNotes.rst
The file was modifiedpstl/test/pstl/version.pass.cpp
The file was modifiedlibcxx/docs/ReleaseNotes.rst
The file was modifiedpstl/docs/ReleaseNotes.rst
The file was modifiedpstl/include/pstl/internal/pstl_config.h
Commit b349d4c5e1852091aad97d3750e286493cac7178 by joker.eph
Emit strong definition for TypeID storage in Op/Type/Attributes definition

By making an explicit template specialization for the TypeID provided by these classes,
the compiler will not emit an inline weak definition and rely on the linker to unique it.
Instead a single definition will be emitted in the C++ file alongside the implementation
for these classes. That will turn into a linker error what is now a hard-to-debug runtime
behavior where instances of the same class may be using a different TypeID inside of
different DSOs.

Differential Revision: https://reviews.llvm.org/D105903
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
The file was modifiedmlir/include/mlir/Support/TypeID.h
Commit 1a8c57179a129300c2b0c20032286ded8c7af77c by VenkataRamanaiah.Nalamothu
[AMDGPU] We would need FP if there is call and caller save VGPR spills

Since https://reviews.llvm.org/D98319, determineCalleeSavesSGPR() needs
to consider caller save VGPR spills as well while anticipating if we
require FP.

Fixes: SWDEV-295978

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D106758
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
The file was removedllvm/test/CodeGen/AMDGPU/need-fp-from-csr-vgpr-spill.ll
The file was addedllvm/test/CodeGen/AMDGPU/need-fp-from-vgpr-spills.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll
Commit 1cc29f027fe433770a478bb0a67956c5646f61b2 by joker.eph
Revert "Emit strong definition for TypeID storage in Op/Type/Attributes definition"

This reverts commit b349d4c5e1852091aad97d3750e286493cac7178.
This broke a bot that exposes some missing CMake dependencies that need
to be fixed first.
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
The file was modifiedmlir/include/mlir/Support/TypeID.h
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Commit 440e936c47f5271a741b13e96f8ff36388ea96b5 by dvyukov
Revert "sanitizers: increase .clang-format columns to 100"

This reverts commit 5d1df6d220f1d6f726d9643848679d781750db64.

There is a strong objection to this change:
https://reviews.llvm.org/D106436#2905618

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D106847
The file was modifiedcompiler-rt/lib/asan/.clang-format
The file was modifiedcompiler-rt/lib/hwasan/.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/tsan/.clang-format
The file was modifiedcompiler-rt/lib/lsan/.clang-format
The file was modifiedcompiler-rt/lib/safestack/.clang-format
The file was modifiedcompiler-rt/lib/sanitizer_common/.clang-format
The file was modifiedcompiler-rt/lib/dfsan/.clang-format
Commit cf0ddf7ee5522c731b89dc5174b3d370f782119b by llvm-dev
[SLP][X86] Fix naming consistency of dot product tests. NFC.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/dot-product.ll
Commit 0a1ca2ad4ce239abc8d844f33048af58648edb80 by Lang Hames
[ORC] Fix missing include.

Aims to fix bot failures for some module builds, e.g.
https://green.lab.llvm.org/green/blue/organizations/jenkins/lldb-cmake/detail/lldb-cmake/33934/pipeline/
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/OrcRPCExecutorProcessControl.h
Commit ab5b8ee1a7a18fe097419e21224ac4f15591bcd7 by omair.javaid
[LLDB] Skip HW breakpoints test_step_until on Arm/Linux

test_step_until xpasses on some machines while fails on others. I am
marking it as skipped for now.
The file was modifiedlldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
Commit 6cd0e35f43ac7aab8ff05acb4c5dfaa9071958d5 by omair.javaid
Revert "[LLDB] Skip HW breakpoints test_step_until on Arm/Linux"

This reverts commit ab5b8ee1a7a18fe097419e21224ac4f15591bcd7.

This caused some failure on buildbots so reverting it for now.
The file was modifiedlldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
Commit 71616722d4092f88861e9eb337e2902bbab2cbd4 by marek.kurdej+llvm.org
[clang-format] Correctly attach enum braces with ShortEnums disabled

Previously, with AllowShortEnumsOnASingleLine disabled, enums that would have otherwise fit on a single line would always put the opening brace on its own line.
This patch ensures that these enums will only put the brace on its own line if the existing attachment rules indicate that it should.

Reviewed By: HazardyKnusperkeks, curdeius

Differential Revision: https://reviews.llvm.org/D99840
The file was modifiedclang/unittests/Format/FormatTestCSharp.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/UnwrappedLineParser.cpp
The file was modifiedclang/include/clang/Format/Format.h
Commit 04b94c7caee48919d937350c312604d6c39365a4 by chris.jackson
Revert "[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR"

Crashes were reported on the upstreamm revision:
https://reviews.llvm.org/D105207

This reverts commit 796b84d26f4d461fb50e7b4e84e15a10eaca88fc.
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll
Commit 6a7a2ee8161da84d9a58a88b497b0b47c8df99f3 by david.spickett
[lldb] Add "memory tag write" command

This adds a new command for writing memory tags.
It is based on the existing "memory write" command.

Syntax: memory tag write <address-expression> <value> [<value> [...]]
(where "value" is a tag value)

(lldb) memory tag write mte_buf 1 2
(lldb) memory tag read mte_buf mte_buf+32
Logical tag: 0x0
Allocation tags:
[0xfffff7ff9000, 0xfffff7ff9010): 0x1
[0xfffff7ff9010, 0xfffff7ff9020): 0x2

The range you are writing to will be calculated by
aligning the address down to a granule boundary then
adding as many granules as there are tags.

(a repeating mode with an end address will be in a follow
up patch)

This is why "memory tag write" uses MakeTaggedRange but has
some extra steps to get this specific behaviour.

The command does all the usual argument validation:
* Address must evaluate
* You must supply at least one tag value
  (though lldb-server would just treat that as a nop anyway)
* Those tag values must be valid for your tagging scheme
  (e.g. for MTE the value must be > 0 and < 0xf)
* The calculated range must be memory tagged

That last error will show you the final range, not just
the start address you gave the command.

(lldb) memory tag write mte_buf_2+page_size-16 6
(lldb) memory tag write mte_buf_2+page_size-16 6 7
error: Address range 0xfffff7ffaff0:0xfffff7ffb010 is not in a memory tagged region

(note that we do not check if the region is writeable
since lldb can write to it anyway)

The read and write tag tests have been merged into
a single set of "tag access" tests as their test programs would
have been almost identical.
(also I have renamed some of the buffers to better
show what each one is used for)

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D105182
The file was modifiedlldb/test/API/functionalities/memory/tag/TestMemoryTag.py
The file was addedlldb/test/API/linux/aarch64/mte_tag_access/Makefile
The file was addedlldb/test/API/linux/aarch64/mte_tag_access/main.c
The file was removedlldb/test/API/linux/aarch64/mte_tag_read/Makefile
The file was addedlldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py
The file was removedlldb/test/API/linux/aarch64/mte_tag_read/TestAArch64LinuxMTEMemoryTagRead.py
The file was modifiedlldb/source/Commands/CommandObjectMemoryTag.cpp
The file was removedlldb/test/API/linux/aarch64/mte_tag_read/main.c
Commit 5db8e232126fc4c0f5d5b0339bdc5a49830268d1 by Raphael Isemann
[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure

This is only temporarily to gather some logs before this gets reverted. See
D106873 for a discussion about how/if we can make this change permanent.
The file was modifiedlldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py
Commit 037b7715dd0e60369271217f90004e4b2d7c88e0 by david.green
[ARM] Extra MVE reduction vectorizer tests. NFC
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
Commit 8ed66cb88b7b00d7e9a96f2030e7ec343cfe2c6a by nicolas.vasilache
[mlir][memref] Fix collapsed shape ops memref.cast folding with changed type

`memref.collapse_shape` has verification logic to make sure
result dim must be static if all the collapsing src dims are static.
Cast folding might add more static information for the src operand
of `memref.collapse_shape` which might change a valid collapsing
operation to be invalid. Add `CollapseShapeOpMemRefCastFolder` pattern
to fix this.

Minor changes to `convertReassociationIndicesToExprs` to use `context`
instead of `builder` to avoid extra steps to construct temporary
builders.

Reviewed By: nicolasvasilache, mravishankar

Differential Revision: https://reviews.llvm.org/D106670
The file was modifiedmlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
The file was modifiedmlir/lib/Dialect/Utils/ReshapeOpsUtils.cpp
The file was modifiedmlir/test/Dialect/MemRef/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit 30308d1eb966afa35ee2fd5c5b47b17eb0382896 by omair.javaid
[LLDB] Skip HW breakpoints test_step_until on Arm/Linux

test_step_until xpasses on some machines while fails on others.
Marking it as skipped for now.
The file was modifiedlldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py
Commit 0dc9c88aa38ed330ddffe92bae79d4066832c38e by omair.javaid
[LLDB] Skip TestGuiBasicDebug.py on Arm/AArch64 Linux

TestGuiBasicDebug.py randomly fails due to timeouts sending out false
negatives on LLDB Arm and AArch64 Linux buildbots. I havnt found a
reliable wayy to set pexpect timeout for this test to pass regularly.

Skipping it on Arm and AArch64 Linux to silence buildbot failures.
The file was modifiedlldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py
Commit 4fd42e2e803d8a532845f448fca4002ede3070f5 by david.spickett
[libcxx] Bump __libcpp_version to 14 after branch

This was missed in 08c766a7318ab37bf1d77e0c683cd3b00e700877
and caused test failures in the buildkite bots:
libcpp_version.pass.cpp:22:1:
error: static_assert failed due to requirement '14000 == libcpp_version'
"_LIBCPP_VERSION doesn't match __libcpp_version
The file was modifiedlibcxx/include/__libcpp_version
Commit ca0d244e99f4325711638359eb69f8129b41a63a by gysit
[mlir][linalg] Introduce a separate EraseIdentityCopyOp Pattern.

Split out an EraseIdentityCopyOp from the existing RemoveIdentityLinalgOps pattern. Introduce an additional check to ensure the pattern checks the permutation maps match. This is a preparation step to specialize RemoveIdentityLinalgOps to GenericOp only.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D105622
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
Commit b0ef3d8f666fa6008abb09340b73d9340d442569 by aaron
Allow #pragma float_control(push|pop) within a language linkage specification

Currently, we prohibit this pragma from appearing within a language
linkage specification, but this is useful functionality that is
supported by MSVC (which is where we inherited this feature from).
This patch allows you to use the pragma within an extern "C" {} (etc)
block.
The file was modifiedclang/test/Parser/fp-floatcontrol-syntax.cpp
The file was modifiedclang/lib/Sema/SemaAttr.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/docs/LanguageExtensions.rst
Commit 09635dc7bfa42bed2809e3ee4edc96d0decdb9db by gysit
[mlir][linalg] Specialize LinalgOp canonicalization patterns (NFC).

Specialize the DeduplicateInputs and RemoveIdentityLinalgOps patterns for GenericOp instead of implementing them for the LinalgOp interface.

This revsion is based on https://reviews.llvm.org/D105622 that moves the logic to erase identity CopyOps in a separate pattern.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D105291
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit 41cedb1c9a380628ac162bf76148cbd143f41450 by david.green
[LV][ARM] Tighten up MLA reduction costing

This makes a couple of changes to the costing of MLA reduction patterns,
to more accurately cost various patterns that can come up from
vectorization.

- The Arm implementation of getExtendedAddReductionCost is altered to
   only provide costs for legal or smaller types. Larger than legal types
   need to be split, which currently does not work very well, especially
   for predicated reductions where the predicate may be legal but needs to
   be split. Currently we limit it to legal or smaller input types.
- The getReductionPatternCost has learnt that reduce(ext(mul(ext, ext))
   is a pattern that can come up, and can be treated the same as
   reduce(mul(ext, ext)) providing the extension types match.
- And it has been adjusted to not count the ext in reduce(mul(ext, ext))
   as part of a reduce(mul) pattern.

Together these changes help to more accurately cost the mla reductions
in cases such as where the extend types don't match or the extend
opcodes are different, picking better vector factors that don't result
in expanded reductions.

Differential Revision: https://reviews.llvm.org/D106166
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
Commit c07dd2b885c3096694ac607794b62f7d60032c22 by flo
[LV] Move recurrence backedge fixup code to VPlan::execute (NFC).

As suggested in D105008, move the code that fixes up the backedge value
for first order recurrences to VPlan::execute.

Now all that remains in fixFirstOrderRecurrences is the code responsible
for creating the exit values in the middle block.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D106244
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 9559bd19908bf6421f2abed1578219dacdc49169 by wyehia
[LTO][Legacy] Add new API to check presence of ctor/dtor functions.

On AIX, the linker needs to check whether a given lto_module_t contains
any constructor/destructor functions, in order to implement the behavior
of the -bcdtors:all flag. See
https://www.ibm.com/docs/en/aix/7.2?topic=l-ld-command for the flag's
documentation.
In llvm IR, constructor (destructor) functions are added to a special
global array @llvm.global_ctors (@llvm.global_dtors).
However, because these two symbols are artificial, they are not visited
during the symbol traversal (using the
lto_module_get_[num_symbols|symbol_name|symbol_attribute] API).

This patch adds a new function to the libLTO interface that checks the
presence of one or both of these two symbols.

Reviewed By: steven_wu

Differential Revision: https://reviews.llvm.org/D106887
The file was modifiedllvm/tools/lto/lto.exports
The file was modifiedllvm/include/llvm-c/lto.h
The file was modifiedllvm/lib/LTO/LTOModule.cpp
The file was modifiedllvm/tools/lto/lto.cpp
The file was modifiedllvm/tools/llvm-lto/llvm-lto.cpp
The file was modifiedllvm/include/llvm/LTO/legacy/LTOModule.h
The file was addedllvm/test/tools/llvm-lto/ltomodule.ll
Commit 21832121e112d97f1e197b35959867f3a99226ee by whisperity
[clang-tidy] Fix crash on "reference-to-array" parameters in 'bugprone-easily-swappable-parameters'

An otherwise unexercised code path related to trying to model
"array-to-pointer decay" resulted in a null pointer dereference crash
when parameters of type "reference to array" were encountered.

Fixes crash report http://bugs.llvm.org/show_bug.cgi?id=50995.

Reviewed By: aaron.ballman

Differential Revision: http://reviews.llvm.org/D106946
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-implicits.cpp
The file was modifiedclang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-len2.cpp
Commit e408d1dfab42b27d0aa51b221e50fa6390fb5ed1 by a.bataev
[SLP]Improve graph reordering.

Reworked reordering algorithm. Originally, the compiler just tried to
detect the most common order in the reordarable nodes (loads, stores,
extractelements,extractvalues) and then fully rebuilding the graph in
the best order. This was not effecient, since it required an extra
memory and time for building/rebuilding tree, double the use of the
scheduling budget, which could lead to missing vectorization due to
exausted scheduling resources.

Patch provide 2-way approach for graph reodering problem. At first, all
reordering is done in-place, it doe not required tree
deleting/rebuilding, it just rotates the scalars/orders/reuses masks in
the graph node.

The first step (top-to bottom) rotates the whole graph, similarly to the previous
implementation. Compiler counts the number of the most used orders of
the graph nodes with the same vectorization factor and then rotates the
subgraph with the given vectorization factor to the most used order, if
it is not empty. Then repeats the same procedure for the subgraphs with
the smaller vectorization factor. We can do this because we still need
to reshuffle smaller subgraph when buildiong operands for the graph
nodes with lasrger vectorization factor, we can rotate just subgraph,
not the whole graph.

The second step (bottom-to-top) scans through the leaves and tries to
detect the users of the leaves which can be reordered. If the leaves can
be reorder in the best fashion, they are reordered and their user too.
It allows to remove double shuffles to the same ordering of the operands in
many cases and just reorder the user operations instead. Plus, it moves
the final shuffles closer to the top of the graph and in many cases
allows to remove extra shuffle because the same procedure is repeated
again and we can again merge some reordering masks and reorder user nodes
instead of the operands.

Also, patch improves cost model for gathering of loads, which improves
x264 benchmark in some cases.

Gives about +2% on AVX512 + LTO (more expected for AVX/AVX2) for {625,525}x264,
+3% for 508.namd, improves most of other benchmarks.
The compile and link time are almost the same, though in some cases it
should be better (we're not doing an extra instruction scheduling
anymore) + we may vectorize more code for the large basic blocks again
because of saving scheduling budget.

Differential Revision: https://reviews.llvm.org/D105020
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled-load.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/addsub.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled_store_crash.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extract.ll
Commit 124d58638275d1b98b2c3162ae292810b23cbee9 by llvm-dev
[X86][AVX] Move VPERM2F128 defs above VINSERTF128 defs. NFC.

This will be necessary for a future patch to lower VINSERTF128 custom folds to VPERM2F128
The file was modifiedllvm/lib/Target/X86/X86InstrSSE.td
Commit 6eded00e0c6b4e06225df74292c078030556b8ce by david.spickett
[lldb] Add "memory tag write" --end-addr option

The default mode of "memory tag write" is to calculate the
range from the start address and the number of tags given.
(just like "memory write" does)

(lldb) memory tag write mte_buf 1 2
(lldb) memory tag read mte_buf mte_buf+48
Logical tag: 0x0
Allocation tags:
[0xfffff7ff9000, 0xfffff7ff9010): 0x1
[0xfffff7ff9010, 0xfffff7ff9020): 0x2
[0xfffff7ff9020, 0xfffff7ff9030): 0x0

This new option allows you to set an end address and have
the tags repeat until that point.

(lldb) memory tag write mte_buf 1 2 --end-addr mte_buf+64
(lldb) memory tag read mte_buf mte_buf+80
Logical tag: 0x0
Allocation tags:
[0xfffff7ff9000, 0xfffff7ff9010): 0x1
[0xfffff7ff9010, 0xfffff7ff9020): 0x2
[0xfffff7ff9020, 0xfffff7ff9030): 0x1
[0xfffff7ff9030, 0xfffff7ff9040): 0x2
[0xfffff7ff9040, 0xfffff7ff9050): 0x0

This is implemented using the QMemTags packet previously
added. We skip validating the number of tags in lldb and send
them on to lldb-server, which repeats them as needed.

Apart from the number of tags, all the other client side checks
remain. Tag values, memory range must be tagged, etc.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D105183
The file was modifiedlldb/source/Commands/CommandObjectMemoryTag.cpp
The file was modifiedlldb/source/Commands/Options.td
The file was modifiedlldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py
Commit 56debbf52ed31e0ea83265e0f87e15c3ac15de05 by dvyukov
sanitizers: switch BlockingMutex(LINKER_INITIALIZED) to Mutex

Mutex does not support LINKER_INITIALIZED support.
As preparation to switching BlockingMutex to Mutex,
proactively replace all BlockingMutex(LINKER_INITIALIZED) to Mutex.
All of these are objects with static storage duration and Mutex ctor
is constexpr, so it should be equivalent.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106944
The file was modifiedcompiler-rt/lib/asan/asan_report.cpp
The file was modifiedcompiler-rt/lib/memprof/memprof_thread.cpp
The file was modifiedcompiler-rt/lib/asan/asan_thread.cpp
The file was modifiedcompiler-rt/lib/lsan/lsan_common.cpp
The file was modifiedcompiler-rt/lib/memprof/memprof_stats.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cpp
The file was modifiedcompiler-rt/lib/cfi/cfi.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/asan/asan_stats.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cpp
The file was modifiedcompiler-rt/lib/asan/asan_globals.cpp
Commit 48cbcb909d9b539680da6b3b8997e3620d085f4e by dvyukov
sanitizer_common: prohibit Mutex(LINKER_INITIALIZED)

Mutex does not support LINKER_INITIALIZED ctor.
But we used to support it with BlockingMutex.
To prevent potential bugs delete LINKER_INITIALIZED Mutex ctor.
Also mark existing ctor as explicit.

Depends on D106944.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106945
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mutex.h
Commit 960cb490dd16961c61b541efbcc95eb085464ad8 by dvyukov
sanitizer_common: replace RWMutex/BlockingMutex with Mutex

Mutex supports reader access, OS blocking, spinning,
portable and smaller than BlockingMutex.
Overall it's supposed to be better than RWMutex/BlockingMutex.
Replace RWMutex/BlockingMutex with Mutex.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106936
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mutex.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_win.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_mutex_test.cpp
Commit 4c41caa2871095cf1e936b0eea10079c60f864dc by spatel
[x86] improve CMOV codegen by pushing add into operands, part 3

In this episode, we are trying to avoid an x86 micro-arch quirk where complex
(3 operand) LEA potentially costs significantly more than simple LEA. So we
simultaneously push and pull the math around the CMOV to balance the operations.

I looked at the debug spew during instruction selection and decided against
trying a later DAGToDAG transform -- it seems very difficult to match if the
trailing memops are already selected and managing the creation of extra
instructions at that level is always tricky.

Differential Revision: https://reviews.llvm.org/D106918
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/add-cmov.ll
Commit 3ad6437fcced9122d8b0ef24b2cb6af5925e626e by a.bataev
[SLP]Fix build on MacOS, NFC.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit ca0fe3447fb85762838468537d93d4ef82c5a1af by JunMa
[InstSimplify] Simplify llvm.vscale when vscale_range attribute exists

Reduce llvm.vscale to constant based on vscale_range attribute.

Differential Revision: https://reviews.llvm.org/D106850
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was addedllvm/test/Transforms/InstSimplify/fold-vscale.ll
Commit aa6340cf87d7e1bbb894cf6357f859e5afb8a335 by kazu
[AsmParser] Remove unused declaration parseOptionalCommaInAlloca (NFC)
The file was modifiedllvm/include/llvm/AsmParser/LLParser.h
Commit 23326b9f1723a398681def87c80e608fa94485f2 by antiagainst
[mlir][spirv] Fix a few issues in ModuleCombiner

- Fixed symbol insertion into `symNameToModuleMap`. Insertion
  needs to happen whether symbols are renamed or not.
- Added check for the VCE triple and avoid dropping it.
- Disabled function deduplication. It requires more careful
  rules. Right now it can remove different functions.
- Added tests for symbol rename listener.
- And some other code/comment cleanups.

Reviewed By: ergawy

Differential Revision: https://reviews.llvm.org/D106886
The file was modifiedmlir/include/mlir/Dialect/SPIRV/IR/SPIRVOps.h
The file was modifiedmlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/IR/SPIRVStructureOps.td
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp
The file was modifiedmlir/test/Dialect/SPIRV/Linking/ModuleCombiner/deduplication.mlir
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp
The file was modifiedmlir/test/Dialect/SPIRV/Linking/ModuleCombiner/conflict-resolution.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/Linking/ModuleCombiner.h
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was addedmlir/test/Dialect/SPIRV/Linking/ModuleCombiner/symbol-rename-listener.mlir
Commit 66ddac22e2a7f268e91c26d694112970dfa607ae by melanie.blower
[CLANG][PATCH][FPEnv] Add support for option -ffp-eval-method and extend #pragma float_control similarly

The Intel compiler ICC supports the option "-fp-model=(source|double|extended)"
which causes the compiler to use a wider type for intermediate floating point
calculations. Also supported is a way to embed this effect in the source
program with #pragma float_control(source|double|extended).
This patch extends pragma float_control syntax, and also adds support
for a new floating point option "-ffp-eval-method=(source|double|extended)".
source: intermediate results use source precision
double: intermediate results use double precision
extended: intermediate results use extended precision

Reviewed By: Aaron Ballman

Differential Revision: https://reviews.llvm.org/D93769
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Lex/PPMacroExpansion.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Preprocessor/init-mips.c
The file was modifiedclang/include/clang/Basic/TargetInfo.h
The file was modifiedclang/docs/LanguageExtensions.rst
The file was modifiedclang/test/Preprocessor/init-s390x.c
The file was modifiedclang/docs/UsersManual.rst
The file was modifiedclang/include/clang/Lex/PreprocessorOptions.h
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/test/Preprocessor/init.c
The file was modifiedclang/test/Preprocessor/init-ppc64.c
The file was modifiedclang/test/Preprocessor/init-aarch64.c
The file was modifiedclang/test/Preprocessor/init-arm.c
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was modifiedclang/test/Preprocessor/init-ppc.c
The file was modifiedclang/lib/Basic/Targets/OSTargets.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/include/clang/Lex/Preprocessor.h
The file was modifiedclang/lib/Basic/Targets/X86.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/Basic/FPOptions.def
The file was modifiedclang/test/Preprocessor/init-x86.c
The file was modifiedclang/lib/Frontend/InitPreprocessor.cpp
The file was modifiedclang/test/CodeGen/fp-floatcontrol-pragma.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/include/clang/Basic/PragmaKinds.h
The file was modifiedclang/lib/Parse/ParsePragma.cpp
The file was modifiedclang/lib/Sema/SemaAttr.cpp
The file was modifiedclang/test/Preprocessor/init-v7k-compat.c
Commit 8612417e5a54cfef941ab45de55e48b4a0c4e8b4 by jeremy.morse
[DebugInfo][InstrRef] Don't break up ret-sequences on debug-info instrs

When we have a terminator sequence (i.e. a tailcall or return),
MIIsInTerminatorSequence is used to work out where the preceding ABI-setup
instructions end, i.e. the parts that were glued to the terminator
instruction. This allows LLVM to split blocks safely without having to
worry about ABI stuff.

The function only ignores DBG_VALUE instructions, meaning that the two
debug instructions I recently added can end terminator sequences early,
causing various MachineVerifier errors. This patch promotes the test for
debug instructions from "isDebugValue" to "isDebugInstr", thus avoiding any
debug-info interfering with this function.

Differential Revision: https://reviews.llvm.org/D106660
The file was addedllvm/test/DebugInfo/ARM/instr-ref-tcreturn.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Commit 0e79a94836d7127a87c36fdca43ffaf6a17d8964 by jrtc27
[Utils] Support class template specializations in update_cc_test_checks

ClassTemplateSpecializationDecl not within a ClassTemplateDecl
represents an explicit instatiation of a template and so should be
handled as if it were a normal CXXRecordDecl. Unfortunately, having an
equivalent for FunctionTemplateDecl remains a TODO in ASTDumper's
VisitFunctionTemplateDecl, with all the explicit instantiations just
being emitted inside the FunctionTemplateDecl along with all the other
specializations, meaning we can't easily support explicit function
instantiations in update_cc_test_checks.

Reviewed By: arichardson

Differential Revision: https://reviews.llvm.org/D106243
The file was modifiedllvm/utils/update_cc_test_checks.py
The file was addedclang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp
The file was addedclang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected
The file was addedclang/test/utils/update_cc_test_checks/explicit-template-instantiation.test
Commit 40080e7e7f42857c8edac4a53e476a68563f1a98 by jrtc27
[Clang interpreter] Avoid storing pointers at unaligned locations

The Clang interpreter's bytecode uses a packed stream of bytes
representation, but also wants to have some opcodes take pointers as
arguments, which are currently embedded in the bytecode directly.

However, CHERI, and thus Arm's upcoming experimental Morello prototype,
provide spatial memory safety for C/C++ by implementing language-level
(and sub-language-level) pointers as capabilities, which track bounds,
permissions and validity in hardware. This uses tagged memory with a
single tag bit at every capability-aligned address, and so storing
pointers to unaligned addresses results in the tag being stripped,
leading to a tag fault when the pointer is ultimately dereferenced at a
later point.

In order to support a stricter C/C++ implementation like CHERI, we no
longer store pointers directly in the bytecode, instead storing them in
a table and embedding the index in the bytecode.

Reviewed By: nand

Differential Revision: https://reviews.llvm.org/D97606
The file was modifiedclang/utils/TableGen/ClangOpcodesEmitter.cpp
The file was modifiedclang/lib/AST/Interp/Interp.h
The file was modifiedclang/lib/AST/Interp/Source.h
The file was modifiedclang/lib/AST/Interp/ByteCodeEmitter.cpp
The file was modifiedclang/lib/AST/Interp/Program.cpp
The file was modifiedclang/lib/AST/Interp/Program.h
The file was modifiedclang/lib/AST/Interp/Disasm.cpp
Commit d3c70d9f7765f8e731c0b892aea74b21d330d230 by gchatelet
[libc] Simplify implementation of benchmarks

This also allows to run the distribution benchmarks in other frameworks
like the Google Benchmark facility.
The file was modifiedlibc/benchmarks/MemorySizeDistributions.cpp
The file was modifiedlibc/benchmarks/MemorySizeDistributions.h
The file was modifiedlibc/benchmarks/LibcMemoryBenchmarkMain.cpp
The file was modifiedlibc/benchmarks/LibcMemoryBenchmark.cpp
The file was modifiedlibc/benchmarks/CMakeLists.txt
The file was modifiedlibc/benchmarks/LibcMemoryBenchmark.h
Commit 5b83261c1518a39636abe094123f1704bbfd972f by spatel
[DivRemPairs] make sure we have a valid CFG for hoisting division

This transform was added with e38b7e894808ec2
and as shown in:
https://llvm.org/PR51241
...it could crash without an extra check of the blocks.

There might be a more compact way to write this constraint,
but we can't just count the successors/predecessors without
affecting a test that includes a switch instruction.
The file was modifiedllvm/test/Transforms/DivRemPairs/X86/div-expanded-rem-pair.ll
The file was modifiedllvm/lib/Transforms/Scalar/DivRemPairs.cpp
Commit d675b594f4f1e1f6a195fb9a4fd02cf3de92292d by chris.jackson
[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR

Reapply commit 796b84d26f4d461fb50e7b4e84e15a10eaca88fc that was
reverted due to reports of crashes. A minor change now guards against
getVariableLocationOperand() returning a nullptr.

Differential Revision: https://reviews.llvm.org/D106659
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit 89edd1e95f5cc274c0e33cf45ffc85c37b3214f0 by dvyukov
tsan: fix warnings in tests

Compilers don't like attributes in this position:

warning: GCC does not allow 'noinline' attribute in this position on a function definition
error: attributes are not allowed on a function-definition

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106951
The file was modifiedcompiler-rt/test/tsan/longjmp3.cpp
The file was modifiedcompiler-rt/test/tsan/longjmp4.cpp
The file was modifiedcompiler-rt/test/tsan/race_top_suppression.cpp
The file was modifiedcompiler-rt/test/tsan/ignorelist2.cpp
The file was modifiedcompiler-rt/test/tsan/race_on_heap.cpp
Commit 9ef9d01a5046f4f58b51b59d658e4c05f41344a1 by dvyukov
tsan: extend signal_malloc test

Test that we report the warning for free()
and ensure the test finishes as we usually do with "DONE".

Depends on D106951.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106952
The file was modifiedcompiler-rt/test/tsan/signal_malloc.cpp
Commit acbb4fcd5e664ddfb515785f1839afc8f2570035 by dvyukov
tsan: increase max number of threads supported by test-only barrier

Currently the barrier supports only 256 threads,
this does not allow to write reliable tests that use more threads.
Bump max number of threads to 1024 to support writing
good stress tests.
Also replace sched_yield() with usleep(100) on the wait path.
If we write tests that create hundreds of threads (and dozens
of tests can run in parallel), yield would consume massive
amounts of CPU time for spinning.

Depends on D106952.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106953
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
Commit bfb597b24c311f8a03ad9530adef3b3c1e5ff853 by dvyukov
tsan: improve lots_of_threads test

The current 10 threads is not particularly "lots" and not stressful.
Create 10x300 threads and ensure they all are running at the same time.

Depends on D106953.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106954
The file was modifiedcompiler-rt/test/tsan/lots_of_threads.c
Commit 399289604348e2194120890e0632e2cbc35077f5 by chris.jackson
Revert "[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR"
Reverted due to buildbot failures.
This reverts commit d675b594f4f1e1f6a195fb9a4fd02cf3de92292d.
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
Commit 4e65688571221565cf1a5c1e4bb58ee2ab7c9c83 by koraq
[libc++][nfc] Improve error diagnostics.

The error message for disabled filesystem and locale support is now done
in the same fashion as ranges and format in D106763.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D106935
The file was modifiedlibcxx/include/filesystem
The file was modifiedlibcxx/include/locale.h
Commit 54588bcc052e5b08f90e672c33d0c1ad4eda2424 by craig.topper
[RISCV] Restrict performANY_EXTENDCombine to prevent an infinite loop.

The sign_extend we insert here can get turned into a zero_extend if
the sign bit is known zero. This can enable a setcc combine that
shrinks compares with zero_extend. This reduces the use count of
the zero_extend allowing other combines to turn it back into an
any_extend.

This restricts the combine to only cases where the result is used
by a CopyToReg. This works for my original motivating case. I
hope the CopyToReg use will prevent any converted extends from
turning back into an any_extend.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D106754
The file was addedllvm/test/CodeGen/RISCV/pr51206.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit 3106f85945468970b81d86c296d37b485415a398 by craig.topper
[RISCV] Fix grammar in a comment. NFC
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit 83c752bfa6071f34c8c4564a379d99b1b94f604a by Raphael Isemann
Revert "[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure"

This reverts commit 5db8e232126fc4c0f5d5b0339bdc5a49830268d1. The test has
been disabled since then on the bot and we got the logs we wanted.
The file was modifiedlldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py
Commit 6e8660a7d65a30e3abcb4c588047c1328ab7d28e by jrtc27
[NFC][PowerPC] Fix spe.ll to work with update_llc_test_checks.py again

Using split-file does not work with update_llc_test_checks.py. It's also
mostly redundant, as the single and double tests can just use a single
llc and FileCheck invocation for each FPU type using -check-prefixes
rather than -check-prefix, and update_llc_test_checks.py will merge what
it can. Only test_dasmconst needs to be SPE-only and so is pulled out
into its own mall file (rather than using sed to preprocess the file and
keep it commented out for EFPU2, which would work, but is ugly).

As well as cutting down on the number of RUN lines, this also results in
test_fma's CHECK lines being merged for both FPUs.

Reviewed By: kiausch

Differential Revision: https://reviews.llvm.org/D106969
The file was modifiedllvm/test/CodeGen/PowerPC/spe.ll
The file was addedllvm/test/CodeGen/PowerPC/spe-hwdouble.ll
Commit c1f719d1a749eaf4a4964292e3eed6ab2766f2c5 by zinenko
[mlir] harden result type verification in llvm.call

The verifier of the llvm.call operation was not checking for mismatches between
the number of operation results and the number of results in the signature of
the callee. Furthermore, it was possible to construct an llvm.call operation
producing an SSA value of !llvm.void type, which should not exist. Add the
verification and treat !llvm.void result type as absence of call results.
Update the GPU conversions to LLVM that were mistakenly assuming that it was
fine for llvm.call to produce values of !llvm.void type and ensure these calls
do not produce results.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D106937
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
The file was modifiedmlir/test/Conversion/GPUToVulkan/invoke-vulkan.mlir
Commit 49f745f59cbe1eda4653d917cc7d8d0b586fc6a4 by zinenko
[mlir] run the verifier before translating a module

In translation from MLIR to another IR, run the MLIR verifier on the parsed
module to ensure only valid modules are given to the translation. Previously,
we would send any module that could be parsed to the translation, including
semantically invalid modules, leading to surprising errors or lack thereof down
the pipeline.

Depends On D106937

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D106938
The file was modifiedmlir/lib/Translation/Translation.cpp
Commit 6da3d8b19c32c76bb503b1a71fc167a0487ef200 by i
[llvm] Replace LLVM_ATTRIBUTE_NORETURN with C++11 [[noreturn]]

[[noreturn]] can be used since Oct 2016 when the minimum compiler requirement was bumped to GCC 4.8/MSVC 2015.

Note: the definition of LLVM_ATTRIBUTE_NORETURN is kept for now.
The file was modifiedllvm/tools/llvm-ar/llvm-ar.cpp
The file was modifiedllvm/lib/Support/SmallVector.cpp
The file was modifiedllvm/tools/llvm-mt/llvm-mt.cpp
The file was modifiedllvm/include/llvm/Support/CrashRecoveryContext.h
The file was modifiedllvm/include/llvm/Support/Process.h
The file was modifiedllvm/tools/split-file/split-file.cpp
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
The file was modifiedllvm/tools/llvm-readobj/llvm-readobj.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/Coroutines.cpp
The file was modifiedllvm/include/llvm/TableGen/Error.h
The file was modifiedllvm/tools/llvm-rc/llvm-rc.cpp
The file was modifiedllvm/lib/Support/Process.cpp
The file was modifiedllvm/include/llvm/Support/Error.h
The file was modifiedllvm/lib/Support/Windows/Process.inc
The file was modifiedllvm/include/llvm/Support/Windows/WindowsSupport.h
The file was modifiedllvm/tools/llvm-lipo/llvm-lipo.cpp
The file was modifiedllvm/tools/llc/llc.cpp
The file was modifiedllvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
The file was modifiedllvm/lib/Support/Unix/Unix.h
The file was modifiedllvm/lib/LTO/LTOBackend.cpp
The file was modifiedllvm/tools/llvm-strings/llvm-strings.cpp
The file was modifiedllvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp
The file was modifiedllvm/lib/Support/CrashRecoveryContext.cpp
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.h
The file was modifiedllvm/lib/Support/Unix/Process.inc
The file was modifiedllvm/tools/lli/lli.cpp
The file was modifiedllvm/tools/llvm-readobj/llvm-readobj.h
The file was modifiedllvm/include/llvm/Support/ErrorHandling.h
The file was modifiedllvm/include/llvm/MC/MCContext.h
The file was modifiedllvm/tools/llvm-ifs/ErrorCollector.h
The file was modifiedllvm/tools/llvm-cvtres/llvm-cvtres.cpp
The file was modifiedllvm/tools/llvm-ifs/ErrorCollector.cpp
The file was modifiedllvm/tools/llvm-profgen/ErrorHandling.h
Commit 2b013a6c8a7de6d204ce610f69fd981b181cee2c by ajcbik
[mlir][sparse] use proper type alias for filename ptr

Reviewed By: gussmith23

Differential Revision: https://reviews.llvm.org/D106904
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir
Commit 71f0359a9defbf3e35828189629f166508390d5d by aaron
Simplify allowing pragma float_control in a linkage specification

This amends b0ef3d8f666fa6008abb09340b73d9340d442569 based on a suggestion from James Y Knight.
The file was modifiedclang/lib/Sema/SemaAttr.cpp
Commit dc5570d149ca6a0931413bf1ad469eb8f9517f82 by jeroen.dobbelaere
Revert "Revert of D49126 [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types."

This reverts commit 77080a1eb6061df2dcfae8ac84b85ad4d1e02031.

This change introduced issues detected with EXPENSIVE_CHECKS. Reverting to restore the
needed function cleanup. A next patch will then just improve on the name mangling.
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/condprop.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/edge.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/diamond.ll
The file was modifiedllvm/test/Other/debugcounter-predicateinfo.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/unnamed-types.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/PredicateInfo.h
The file was modifiedllvm/lib/Transforms/Utils/PredicateInfo.cpp
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/testandor.ll
Commit 03b8c69d06f810f13d0b74d06dabea37c43e5b78 by jeroen.dobbelaere
[PredicateInfo] Use Intrinsic::getDeclaration now that it handles unnamed types.

This is a second attempt to fix the EXPENSIVE_CHECKS issue that was mentioned  In D91661#2875179 by @jroelofs.

(The first attempt was in D105983)

D91661 more or less completely reverted D49126 and by doing so also removed the cleanup logic of the created declarations and calls.
This patch is a replacement for D91661 (which must itself be reverted first). It replaces the custom declaration creation with the
generic version and shows the test impact. It also tracks the number of NamedValues to detect if a new prototype was added instead
of looking at the available users of a prototype.

Reviewed By: jroelofs

Differential Revision: https://reviews.llvm.org/D106147
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/testandor.ll
The file was modifiedllvm/test/Other/debugcounter-predicateinfo.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/edge.ll
The file was modifiedllvm/lib/Transforms/Utils/PredicateInfo.cpp
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/condprop.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/unnamed-types.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/diamond.ll
The file was modifiedllvm/lib/IR/Module.cpp
The file was modifiedllvm/include/llvm/IR/Module.h
Commit bc43078fe835e19782a90ad2f464ebdc150911de by sjoerd.meijer
[LoopFlatten] Fix bug where SCEVCouldNotCompute object is used

The SCEV method getBackedgeTakenCount() returns a SCEVCouldNotCompute
object if the backedge-taken count is unpredictable. This fix ensures
there is no longer an attempt to use such an object to find the trip
count.

Patch by: Rosie Sumpter.

Differential Revision: https://reviews.llvm.org/D106970
The file was modifiedllvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopFlatten.cpp
Commit aad17c55a8116cd3831d4392d909139702019d65 by walter erquinigo
[trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization

This diff introduces Hierarchical Trace Representation (HTR) and creates the `thread trace export ctf  -f <filename> -t <thread_id>` command to export an Intel PT trace's HTR to Chrome Trace Format (CTF) for visualization.

See `lldb/docs/htr.rst` for context/documentation on HTR.

**Overview of Changes**
    - Add HTR documentation (see `lldb/docs/htr.rst`)
    - Add HTR structures (layer, block, block metadata)
    - Implement "Basic Super Block" HTR pass
    - Add 'thread trace export ctf' command to export the HTR of an Intel PT
      trace to Chrome Trace Format (CTF)

As this diff is the first iteration of HTR and trace visualization, future diffs will build on this work by generalizing the internal design of HTR and implementing new HTR passes that provide better trace summarization/visualization.

See attached video for an example of Intel PT trace visualization:
{F17851042}

Original Author: jj10306

Submitted by: wallace

Reviewed By: wallace, clayborg

Differential Revision: https://reviews.llvm.org/D105741
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h
The file was addedlldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp
The file was addedlldb/source/Plugins/TraceExporter/common/CMakeLists.txt
The file was addedlldb/docs/htr.rst
The file was addedlldb/test/API/commands/trace/TestTraceExport.py
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp
The file was modifiedlldb/source/Plugins/TraceExporter/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td
The file was addedlldb/source/Plugins/TraceExporter/common/TraceHTR.h
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out
Commit 5acdfb7eda96dd3931803897476eeeb97eb943cb by dvyukov
tsan: remove unused pc arguments

Remove pc argument of ThreadIgnoreEnd, ThreadIgnoreSyncEnd
and AcquireGlobal functions. It's unused and in some places
we don't even have a pc and pass 0 anyway.
Don't confuse readers and don't pretend that pc is needed
and that passing 0 is somehow deficient.

Use simpler convention for ThreadIgnoreBegin and ThreadIgnoreSyncBegin:
accept only pc instread of pc+save_stack. 0 pc means "don't save stack".

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106973
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_inl.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors.h
The file was modifiedcompiler-rt/lib/tsan/go/tsan_go.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.h
Commit b5bc386ca109599c56084619934f17a996997532 by dvyukov
tsan: remove mblock types

We used to count number of allocations/bytes based on the type
and maybe record them in heap block headers.
But that's all in the past, now it's not used for anything.
Remove the mblock type.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106971
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_stack_trace.cpp
The file was modifiedcompiler-rt/lib/tsan/tests/unit/tsan_mman_test.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_report.cpp
The file was modifiedcompiler-rt/lib/tsan/go/tsan_go.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_mman.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_mman.h
Commit c4cb9b64dd350f0d675e12d38ea54f4e0c3ceb37 by dvyukov
tsan: add more micro benchmarks

1. Add a set of micro benchmarks for memory accesses,
   mem* functions and unaligned accesses.
2. Add support for multiple benchmarks in a single binary
   (or it would require 12 new benchmark binaries).
3. Remove the "clock growth" machinery,
   it affects the current tsan runtime by increasing size of
   all vector clocks, but this won't be relevant for the new
   tsan runtime.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106961
The file was modifiedcompiler-rt/test/tsan/bench.h
The file was addedcompiler-rt/test/tsan/bench_memory_access.cpp
Commit dbed061bf13b74cbbe6de3062f7f50481dd45ac4 by patrickeholland
[MCA] Moving the target specific CustomBehaviour impl. from /tools/llvm-mca/ to /lib/Target/.

Differential Revision: https://reviews.llvm.org/D106775
The file was modifiedllvm/cmake/modules/LLVM-Config.cmake
The file was modifiedllvm/CMakeLists.txt
The file was modifiedllvm/tools/llvm-mca/llvm-mca.cpp
The file was removedllvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.h
The file was removedllvm/tools/llvm-mca/lib/AMDGPU/CMakeLists.txt
The file was addedllvm/include/llvm/Config/TargetMCAs.def.in
The file was modifiedllvm/include/llvm/Config/llvm-config.h.cmake
The file was modifiedllvm/tools/llvm-mca/CMakeLists.txt
The file was modifiedllvm/docs/CommandGuide/llvm-mca.rst
The file was modifiedllvm/lib/Target/AMDGPU/CMakeLists.txt
The file was addedllvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.h
The file was modifiedllvm/include/llvm/Support/TargetRegistry.h
The file was addedllvm/lib/Target/AMDGPU/MCA/CMakeLists.txt
The file was modifiedllvm/tools/llvm-mca/CodeRegionGenerator.h
The file was addedllvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
The file was modifiedllvm/include/llvm/Support/TargetSelect.h
The file was removedllvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.cpp
The file was modifiedllvm/include/llvm/MCA/CustomBehaviour.h
The file was removedllvm/tools/llvm-mca/lib/CMakeLists.txt
Commit 5237b140874a47670678b1f5b4566ffcea15b9b7 by dvyukov
tsan: print alloc stack for Java objects

We maintain information about Java allocations,
but for some reason never printed it in reports.
Print it.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106956
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
The file was modifiedcompiler-rt/test/tsan/java.h
The file was modifiedcompiler-rt/test/tsan/java_symbolization.cpp
Commit 6563bb53b5fd837a2a0368c58de1cf02ec921d27 by dvyukov
tsan: don't use caller/current PC in Java interfaces

Caller PC is plain harmful as native caller PC has nothing to do with Java code.
Current PC is not particularly useful and may be somewhat confusing for Java users
as it makes top frame to point to some magical __tsan function.
But obtaining and using these PCs adds runtime cost for every java event.
Remove these PCs. Rely only on official Java frames.
It makes execution faster, code simpler and reports better.

Depends on D106956.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106957
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
The file was modifiedcompiler-rt/test/tsan/java_symbolization.cpp
Commit 9dad34423b649f8d8ff2f4e6cee0c600f28f2d57 by dvyukov
tsan: strip __libc_start_main frame

We strip all frames below main but in some cases it may be not enough.
Namely, when main is instrumented but does not call any other instrumented code.
In this case __tsan_func_entry in main obtains PC pointing to __libc_start_main
(as we pass caller PC to __tsan_func_entry), but nothing obtains PC pointing
to main itself (as main does not call any instrumented code).
In such case we will not have main in the stack, and stripping everything
below main won't work.
So strip __libc_start_main explicitly as well.
But keep stripping of main because __libc_start_main is glibc/linux-specific,
so looking for main is more reliable (and usually main is present in stacks).

Depends on D106957.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106958
The file was modifiedcompiler-rt/test/tsan/java_symbolization.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
Commit 170a8c12843db3dc10b544c0fc5b3f19566ee940 by dvyukov
sanitizer_common: avoid compiler-interted memset in deadlock detector

Compilers tends to insert memset/memcpy for some struct/array operations,
and these don't play well inside of sanitizer runtimes.
Avoiding these calls was the intention behind internal_memset.
Remove the leftover ={} that can result in memset call.

Reviewed By: vitalybuka, pgousseau

Differential Revision: https://reviews.llvm.org/D106978
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp
Commit da7a5c09c86c3f639c63ce8843d6f21c915ae1c6 by dvyukov
tsan: don't print __tsan_atomic* functions in report stacks

Currently __tsan_atomic* functions do FuncEntry/Exit using caller PC
and then use current PC (pointing to __tsan_atomic* itself) during
memory access handling. As the result the top function in reports
involving atomics is __tsan_atomic* and the next frame points to user code.

Remove FuncEntry/Exit in atomic functions and use caller PC
during memory access handling. This removes __tsan_atomic*
from the top of report stacks, so that they point right to user code.

The motivation for this is performance.
Some atomic operations are very hot (mostly loads),
so removing FuncEntry/Exit is beneficial.
This also reduces thread trace consumption (1 event instead of 3).

__tsan_atomic* at the top of the stack is not necessary
and does not add any new information. We already say
"atomic write of size 4", "__tsan_atomic32_store" does not add
anything new.

It also makes reports consistent between atomic and non-atomic
accesses. For normal accesses we say "previous write" and point
to user code; for atomics we say "previous atomic write" and now
also point to user code.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106966
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp
The file was modifiedcompiler-rt/test/tsan/atomic_stack.cpp
The file was modifiedcompiler-rt/test/tsan/atomic_free3.cpp
Commit 6cba96332b3ae2cbf3f9b62dfb407f3275f6cf79 by joker.eph
Add some missing CMake dependencies between MLIR dialects (NFC)
The file was modifiedmlir/lib/Dialect/SparseTensor/IR/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/OpenACC/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/GPU/CMakeLists.txt
Commit 660a56956c32b0bcd850fc12fa8ad0225a6bb880 by joker.eph
Emit strong definition for TypeID storage in Op/Type/Attributes definition

By making an explicit template specialization for the TypeID provided by these classes,
the compiler will not emit an inline weak definition and rely on the linker to unique it.
Instead a single definition will be emitted in the C++ file alongside the implementation
for these classes. That will turn into a linker error what is now a hard-to-debug runtime
behavior where instances of the same class may be using a different TypeID inside of
different DSOs.

Differential Revision: https://reviews.llvm.org/D105903
The file was modifiedmlir/include/mlir/Support/TypeID.h
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
Commit 4adcff0b7004dc3c81fb8b1104044a188db8aa89 by efriedma
[ARM] Fix llvm-objdump disassembly of armv7m object files.

Apparently, the features were getting mixed up, so we'd try to
disassemble in ARM mode. Fix sub-architecture detection to compute the
correct triple if we're detecting it automatically, so the user doesn't
need to pass --triple=thumb etc.

It's possible we should be somehow tying the "+thumb-mode" target
feature more directly to Tag_CPU_arch_profile? But this seems to work
reasonably well, anyway.

While I'm here, fix up the other llvm-objdump tests that were explicitly
specifying an ARM triple; that shouldn't be necessary.

Differential Revision: https://reviews.llvm.org/D106912
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6-subfeatures.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6k-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v7a-neg-subfeature.s
The file was modifiedllvm/lib/Object/ELFObjectFile.cpp
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6m-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v5te-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v7m-neg-subfeatures.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v8r-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v5t-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v7m-subfeatures.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v5tej-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6-neg-subfeatures.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v7a-subfeature.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6t2-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v8a-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v7m-subarch.s
Commit 828767f325b5dd0356c5fd90e40a1c047010853e by i
COFF/ELF: Place llvm.global_ctors elements in llvm.used if comdat is used

On ELF, an SHT_INIT_ARRAY outside a section group is a GC root. The current
codegen abuses SHT_INIT_ARRAY in a section group to mean a GC root.

On PE/COFF, the dynamic initialization for `__declspec(selectany)` in a comdat
can be garbage collected by `-opt:ref`.

Call `addUsedGlobal` for the two cases to fix the abuse/bug.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D106925
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-template-static-init.cpp
The file was modifiedclang/test/CodeGenCXX/static-member-variable-explicit-specialization.cpp
The file was modifiedclang/lib/CodeGen/CGDeclCXX.cpp
Commit f623dc9a8c37c3f2ed0a2138563a8b9e37adc1ce by kyulee
[DebugInfo][docs] Fix DISubprogram fields

D45024 renamed the field in `DISubprogram` from `variables:` to
`retainedNodes:`. Some of the docs were updated in D89082 but this
updates the rest.

Reviewed By: scott.linder

Differential Revision: https://reviews.llvm.org/D106926
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/docs/SourceLevelDebugging.rst
Commit 0f4b41e038537ab2ab6fa2aa048e55c28a03ab68 by zoecarver
[libcxx][ranges] Add ranges::take_view.

Differential Revision: https://reviews.llvm.org/D106507
The file was modifiedlibcxx/include/ranges
The file was addedlibcxx/include/__ranges/take_view.h
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/base.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/sentinel/eq.pass.cpp
The file was modifiedlibcxx/include/module.modulemap
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/ctad.compile.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/ctor.pass.cpp
The file was addedlibcxx/test/libcxx/diagnostics/detail.headers/ranges/take_view.module.verify.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/sentinel/ctor.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/types.h
The file was modifiedlibcxx/docs/Status/RangesPaper.csv
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/begin.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/borrowing.compile.pass.cpp
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/range_concept_conformance.compile.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/size.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.transform/ctad.compile.pass.cpp
The file was modifiedlibcxx/test/support/test_range.h
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/end.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/sentinel/base.pass.cpp
Commit 6ea22d46261443c6d086d660508067db50de68ad by ezhulenev
Optionally eliminate blocking runtime.await calls by converting functions to coroutines.

Interop parallelism requires needs awaiting on results. Blocking awaits are bad for performance. TFRT supports lightweight resumption on threads, and coroutines are an abstraction than can be used to lower the kernels onto TFRT threads.

Reviewed By: ezhulenev

Differential Revision: https://reviews.llvm.org/D106508
The file was modifiedmlir/include/mlir/Dialect/Async/Passes.td
The file was addedmlir/test/Dialect/Async/async-to-async-runtime-eliminate-blocking.mlir
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
Commit f17e7df04ade78932e568ddd5b56d5e6c89bbac2 by i
[ELF][test] Delete unneeded --triple=thumb* from llvm-objdump RUN lines
The file was modifiedlld/test/ELF/arm-thumb-condbranch-thunk.s
The file was modifiedlld/test/ELF/arm-thunk-nosuitable.s
The file was modifiedlld/test/ELF/arm-extreme-range-pi-thunk.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript.s
The file was modifiedlld/test/ELF/arm-thumb-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-large.s
The file was modifiedlld/test/ELF/arm-thunk-multipass-plt.s
The file was modifiedlld/test/ELF/arm-thumb-plt-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-force-pi-thunk.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-orphan.s
The file was modifiedlld/test/ELF/arm-thunk-edgecase.s
The file was modifiedlld/test/ELF/arm-thumb-branch.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-dotexpr.s
The file was modifiedlld/test/ELF/arm-thunk-re-add.s
The file was modifiedlld/test/ELF/arm-thunk-largesection.s
The file was modifiedlld/test/ELF/arm-thumb-mix-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thumb-interwork-shared.s
The file was modifiedlld/test/ELF/arm-thumb2-ldrlit.s
The file was modifiedlld/test/ELF/arm-thumb-narrow-branch-check.s
The file was modifiedlld/test/ELF/arm-thumb-thunk-empty-pass.s
The file was modifiedlld/test/ELF/arm-thunk-multipass.s
The file was modifiedlld/test/ELF/arm-thumb-ldrlit.s
The file was modifiedlld/test/ELF/arm-thumb-undefined-weak-narrow.test
The file was modifiedlld/test/ELF/arm-thumb-blx.s
The file was modifiedlld/test/ELF/arm-thumb-branch-rangethunk.s
The file was modifiedlld/test/ELF/arm-thumb2-adr.s
The file was modifiedlld/test/ELF/arm-thumb-adr.s
The file was modifiedlld/test/ELF/arm-thumb-undefined-weak.s
The file was modifiedlld/test/ELF/arm-thumb-pc8-weak.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-sort.s
The file was modifiedlld/test/ELF/arm-thumb-interwork-thunk.s
Commit 660b753e2892d3359e6432cdf3296ec7778105a7 by i
[ELF][test] Convert --start-address= and --stop-address= values to hexadecimal

so that readers can connect them with the hexadecimal addresses in the output.
The file was modifiedlld/test/ELF/arm-thumb-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-large.s
The file was modifiedlld/test/ELF/arm-thunk-multipass.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-sort.s
The file was modifiedlld/test/ELF/aarch64-cortex-a53-843419-large.s
The file was modifiedlld/test/ELF/arm-thumb-mix-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thunk-re-add.s
The file was modifiedlld/test/ELF/arm-thunk-multipass-plt.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-dotexpr.s
Commit 668aa531d646dfb0eff746f4b6e627cfb6a7a271 by gcmn
[Bazel] Update for dbed061bf1

This adds Bazel configuration for the TargetMCA targets, which currently
only includes AMDGPU.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D106996
The file was modifiedutils/bazel/llvm-project-overlay/llvm/config.bzl
The file was modifiedutils/bazel/llvm_configs/llvm-config.h.cmake
The file was modifiedutils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h
The file was modifiedutils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Commit 3ff451ca6aca9a87030281fa3b20670d9b1d8f32 by gcmn
[Bazel] Added missing targets to LLVM bazel rules.

Added the following targets to the LLVM Bazel overlay:

AVR
Mips
MPS430
SystemZ
XCore

Reviewed By: GMNGeoffrey

Differential Revision: https://reviews.llvm.org/D106921
The file was modifiedutils/bazel/configure.bzl
The file was modifiedutils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Commit 4b88a94ebe08054ad88435cc89aaa3b84e41b938 by omair.javaid
Revert "[trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization"

This reverts commit aad17c55a8116cd3831d4392d909139702019d65.

Breaks LLDB build on 32 bit Arm/Linux bot:
https://lab.llvm.org/buildbot/#/builders/17/builds/9497

Differential Revision: https://reviews.llvm.org/D105741
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp
The file was removedlldb/test/API/commands/trace/TestTraceExport.py
The file was modifiedlldb/source/Plugins/TraceExporter/CMakeLists.txt
The file was removedlldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td
The file was removedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out
The file was removedlldb/source/Plugins/TraceExporter/common/CMakeLists.txt
The file was removedlldb/source/Plugins/TraceExporter/common/TraceHTR.h
The file was removedlldb/docs/htr.rst
The file was removedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt
Commit 6929bd6d0048134bed6c34ee485900c9d9f2b97b by Louis Dionne
[libc++] Add UNSUPPORTED for clang-14 since the underlying bug hasn't been fixed yet

This started breaking in the CI because we bumped the Clang version to 14,
which requires adjusting the markup in the test suite. I think it's actually
nice the we need to do that and that it doesn't happen automatically, since
it serves as a reminder that this is broken in Clang.
The file was modifiedlibcxx/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp
Commit e12e02df09a967f644cf28136a7361bce7a5bb91 by George Burgess IV
[clang] Evaluate strlen of strcpy argument for -Wfortify-source.

Also introduce Expr::tryEvaluateStrLen.

Differential Revision: https://reviews.llvm.org/D104887
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/test/Sema/warn-fortify-source.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Analysis/security-syntax-checks.m
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/include/clang/AST/Expr.h
Commit d52ba48821301c33650b97cd9f262615fcc0fdc1 by walter erquinigo
[trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization

This diff introduces Hierarchical Trace Representation (HTR) and creates the `thread trace export ctf  -f <filename> -t <thread_id>` command to export an Intel PT trace's HTR to Chrome Trace Format (CTF) for visualization.

See `lldb/docs/htr.rst` for context/documentation on HTR.

**Overview of Changes**
    - Add HTR documentation (see `lldb/docs/htr.rst`)
    - Add HTR structures (layer, block, block metadata)
    - Implement "Basic Super Block" HTR pass
    - Add 'thread trace export ctf' command to export the HTR of an Intel PT
      trace to Chrome Trace Format (CTF)

As this diff is the first iteration of HTR and trace visualization, future diffs will build on this work by generalizing the internal design of HTR and implementing new HTR passes that provide better trace summarization/visualization.

See attached video for an example of Intel PT trace visualization:
{F17851042}

Original Author: jj10306

Submitted by: wallace

Reviewed By: wallace, clayborg

Differential Revision: https://reviews.llvm.org/D105741
The file was addedlldb/docs/htr.rst
The file was modifiedlldb/source/Plugins/TraceExporter/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp
The file was addedlldb/test/API/commands/trace/TestTraceExport.py
The file was addedlldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out
The file was addedlldb/source/Plugins/TraceExporter/common/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h
The file was addedlldb/source/Plugins/TraceExporter/common/TraceHTR.h
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt
Commit f8479d9de59d0f2f3997319b0ec189eb086aa85a by riddleriver
[mlir] Set the namespace of the BuiltinDialect to 'builtin'

Historically the builtin dialect has had an empty namespace. This has unfortunately created a very awkward situation, where many utilities either have to special case the empty namespace, or just don't work at all right now. This revision adds a namespace to the builtin dialect, and starts to cleanup some of the utilities to no longer handle empty namespaces. For now, the assembly form of builtin operations does not require the `builtin.` prefix. (This should likely be re-evaluated though)

Differential Revision: https://reviews.llvm.org/D105149
The file was modifiedmlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir
The file was modifiedmlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
The file was modifiedmlir/test/mlir-lsp-server/diagnostics.test
The file was modifiedmlir/test/IR/print-op-on-diagnostic.mlir
The file was modifiedmlir/test/mlir-lsp-server/document-symbols.test
The file was modifiedmlir/docs/SymbolsAndSymbolTables.md
The file was modifiedmlir/test/Transforms/sccp-structured.mlir
The file was modifiedmlir/test/Pass/dynamic-pipeline-nested.mlir
The file was modifiedmlir/test/Transforms/test-legalizer-analysis.mlir
The file was modifiedmlir/test/Pass/dynamic-pipeline-fail-on-parent.mlir
The file was modifiedmlir/test/Dialect/ArmSVE/memcpy.mlir
The file was modifiedmlir/test/IR/print-ir-defuse.mlir
The file was modifiedmlir/test/Transforms/canonicalize-dce.mlir
The file was modifiedmlir/test/Transforms/cse.mlir
The file was modifiedmlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir
The file was modifiedmlir/test/Dialect/Quant/canonicalize.mlir
The file was modifiedmlir/test/Pass/ir-printing.mlir
The file was modifiedmlir/test/Pass/pipeline-options-parsing.mlir
The file was modifiedflang/test/Fir/cg-ops.fir
The file was modifiedmlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir
The file was modifiedmlir/test/Transforms/test-symbol-dce.mlir
The file was modifiedmlir/test/Dialect/SCF/parallel-loop-fusion.mlir
The file was modifiedmlir/test/Transforms/test-canonicalize.mlir
The file was modifiedmlir/lib/IR/BuiltinDialect.cpp
The file was modifiedmlir/test/Pass/pipeline-stats.mlir
The file was modifiedmlir/test/IR/print-ir-nesting.mlir
The file was modifiedmlir/test/Conversion/MemRefToLLVM/convert-static-memref-ops.mlir
The file was modifiedmlir/test/CAPI/pass.c
The file was modifiedmlir/test/Transforms/test-canonicalize-filter.mlir
The file was modifiedmlir/test/Analysis/test-alias-analysis.mlir
The file was modifiedmlir/test/IR/invalid-ops.mlir
The file was modifiedmlir/test/python/pass_manager.py
The file was modifiedmlir/lib/IR/Dialect.cpp
The file was modifiedmlir/test/Dialect/Builtin/invalid.mlir
The file was modifiedmlir/test/Transforms/canonicalize.mlir
The file was modifiedmlir/test/Pass/crash-recovery.mlir
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
The file was modifiedmlir/test/Conversion/MemRefToLLVM/convert-dynamic-memref-ops.mlir
The file was modifiedmlir/test/Pass/dynamic-pipeline.mlir
The file was modifiedmlir/test/Pass/run-reproducer.mlir
The file was modifiedmlir/test/Transforms/canonicalize-block-merge.mlir
The file was modifiedmlir/test/Transforms/single-parallel-loop-collapsing.mlir
The file was modifiedmlir/test/python/ir/dialects.py
The file was modifiedmlir/test/mlir-opt/commandline.mlir
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-runtime-to-llvm.mlir
The file was modifiedmlir/test/IR/wrapping_op.mlir
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLOps.td
The file was modifiedmlir/test/CAPI/ir.c
The file was modifiedmlir/include/mlir/IR/Dialect.h
The file was modifiedmlir/test/Pass/invalid-pass.mlir
The file was modifiedmlir/test/Transforms/sccp-callgraph.mlir
The file was modifiedmlir/docs/Tutorials/UnderstandingTheIRStructure.md
The file was modifiedmlir/test/Transforms/sccp.mlir
The file was modifiedmlir/lib/IR/BuiltinTypes.cpp
The file was modifiedmlir/test/python/integration/dialects/linalg/opsrun.py
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
The file was modifiedmlir/test/Dialect/LLVMIR/terminator.mlir
The file was modifiedflang/lib/Optimizer/Dialect/FIRType.cpp
The file was modifiedmlir/include/mlir/Pass/PassManager.h
The file was modifiedmlir/test/Dialect/SCF/parallel-loop-tiling.mlir
The file was modifiedmlir/test/Analysis/test-alias-analysis-modref.mlir
The file was modifiedmlir/lib/IR/Operation.cpp
The file was modifiedmlir/docs/PassManagement.md
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
The file was modifiedmlir/test/mlir-lsp-server/hover.test
The file was modifiedmlir/test/Pass/pass-timing.mlir
The file was modifiedmlir/unittests/IR/InterfaceAttachmentTest.cpp
The file was modifiedmlir/lib/Bindings/Python/IRCore.cpp
The file was modifiedmlir/test/Dialect/Linalg/fusion-sequence.mlir
The file was modifiedmlir/test/Dialect/Standard/canonicalize-cf.mlir
The file was modifiedmlir/include/mlir/IR/BuiltinDialect.td
The file was modifiedmlir/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedmlir/test/python/ir/operation.py
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/test/Pass/pipeline-parsing.mlir
The file was modifiedmlir/include/mlir/Transforms/LoopUtils.h
The file was modifiedmlir/test/Dialect/SCF/canonicalize.mlir
The file was modifiedmlir/test/Transforms/canonicalize-td.mlir
The file was modifiedmlir/docs/Diagnostics.md
The file was modifiedmlir/test/Dialect/Affine/canonicalize.mlir
The file was modifiedmlir/test/Dialect/SCF/loop-range.mlir
The file was modifiedmlir/test/IR/visitors.mlir
The file was modifiedmlir/test/Transforms/parallel-loop-collapsing.mlir
Commit 6e9e4b5a6a003b90f312af07214e8c4c2263559a by joker.eph
Revert "Emit strong definition for TypeID storage in Op/Type/Attributes definition"

This reverts commit 660a56956c32b0bcd850fc12fa8ad0225a6bb880.

This broke the GCC5 build
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
The file was modifiedmlir/include/mlir/Support/TypeID.h
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
Commit 0c7cd4a873138f2116403a733274c8cb7dbf925f by mizvekov
[clang] NFC: refactor multiple implementations of getDecltypeForParenthesizedExpr

This cleanup patch refactors a bunch of functional duplicates of
getDecltypeForParenthesizedExpr into a common implementation.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: aaronpuchert

Differential Revision: https://reviews.llvm.org/D100713
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/lib/AST/ExprObjC.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Sema/SemaConcept.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
Commit 87aa31827b293127619e2ef96e80baf709eae338 by mizvekov
[clang] fix concepts crash on substitution failure during normalization

When substitution failed on the first constrained template argument (but
only the first), we would assert / crash. Checking for failure was only
being performed from the second constraint on.

This changes it so the checking is performed in that case,
and the code is also now simplified a little bit to hopefully
avoid this confusion.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D106907
The file was modifiedclang/lib/Sema/SemaConcept.cpp
The file was modifiedclang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp
Commit c6d03b583b48c00171e79d3bcf61168c97f874b9 by michaelrj
[libc] add strncmp to strings

Add strncmp as a function to strings.h. Also adds unit tests, and adds
strncmp as an entrypoint for all current platforms.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D106901
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
The file was modifiedlibc/test/src/string/CMakeLists.txt
The file was modifiedlibc/src/string/CMakeLists.txt
The file was addedlibc/test/src/string/strncmp_test.cpp
The file was addedlibc/src/string/strncmp.h
The file was addedlibc/src/string/strncmp.cpp
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was modifiedlibc/config/windows/entrypoints.txt
Commit ef2627e1fa7c5009aae8b0bbfdec7ff4419ee5d3 by aeubanks
[profile] Add underscore to /alternatename for Win/x86

/alternatename should use the mangled name. On x86 we need an extra
underscore.

Copied from sanitizer_win_defs.h

Fixes https://crbug.com/1233589.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D107000
The file was modifiedcompiler-rt/lib/profile/InstrProfilingFile.c
Commit 43a44f1c54b76356673949f665a3a353a393c011 by aeubanks
[gn build] Add support for Win/x86 compiler-rt

This allows us to build the x86 profile runtime.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D106972
The file was modifiedllvm/utils/gn/secondary/compiler-rt/BUILD.gn
The file was modifiedllvm/utils/gn/build/toolchain/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/triples.gni
Commit 0ba8595287ea2203ef2250e2b0b41f284a055518 by chris.jackson
[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR

Reapply commit d675b594f4f1e1f6a195fb9a4fd02cf3de92292d that was
reverted due to buildbot failures. A simple fix has been applied to
remove an assertion.

Differential Revision: https://reviews.llvm.org/D105207
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
Commit 3d157fb627e0fdb1600c3051dcbd0c4c221083a6 by lebedev.ri
[NFC][Codegen][X86] Autogenerate check lines in avx.ll test
The file was modifiedllvm/test/CodeGen/X86/avx.ll
Commit c0a41c3d3b53b0d64286947cf11751ff6889be30 by Jessica Paquette
[AArch64][GlobalISel] Improve legalization for odd-sized G_ICMP/G_CONSTANT

We were handing types like s88 like

1) clamp to the range
2) widen to the next power of 2

This isn't desirable because it causes an odd breakdown for types like s88.
If we widen to the next power of 2 (s128) first, then we get a clean breakdown
when we clamp back to s64.

Differential Revision: https://reviews.llvm.org/D106998
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir
Commit 91842bf6aa93bf7b71c9b55687620df08d9e4170 by gcmn
[Bazel] Fix digest for bazel-skylib 1.0.3

I apparently left in the old digest when updating the version, so for my
local build Bazel just happily used the cached version, but anyone
attempting a fresth build would get a mismatch.

Differential Revision: https://reviews.llvm.org/D107010
The file was modifiedutils/bazel/WORKSPACE
Commit 3143ee4ddf5dd5b202f8d31abf703fe247f6008b by aeubanks
[gn build] Manually port dbed061b
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
The file was addedllvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/MCA/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/tools/llvm-mca/BUILD.gn
The file was removedllvm/utils/gn/secondary/llvm/tools/llvm-mca/lib/AMDGPU/BUILD.gn
Commit dc9ee3925179c2de79cd2d1ffafc41e70249352c by jezng
[lld-macho] Downgrade "cannot export hidden symbol" to warning

This matches ld64's behavior, and makes it easier to fit LLD
into existing build systems.

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D107011
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/test/MachO/export-options.s
Commit adbaa39dfce7a8361d89b6a3b382fd8f50b94727 by huberjn
[Attributor] Change function internalization to not replace uses in internalized callers

The current implementation of function internalization creats a copy of each
function and replaces every use. This has the downside that the external
versions of the functions will call into the internalized versions of the
functions. This prevents them from being fully independent of eachother. This
patch replaces the current internalization scheme with a method that creates
all the copies of the functions intended to be internalized first and then
replaces the uses as long as their caller is not already internalized.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D106931
The file was modifiedllvm/test/Transforms/OpenMP/custom_state_machines.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit 8ddf0b178c24482833223ce09da543618a4ca768 by llvmgnsyncbot
[gn build] Port 0f4b41e03853
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 97851a08e2684388dec24fbe46818704052f9dbe by huberjn
[Attributor] Don't test internalization in the CGSCC pass.

Summary:
Enabling internalization in the Attributor's CGSCC pass does something
different that we don't expect. Ignore this for now to pass the tests.
The file was modifiedllvm/test/Transforms/Attributor/internalize.ll
Commit 6a0fe68844150f16e16fe64d050509e4ba740d98 by Vitaly Buka
[tsan] Fix Darwin build after D106973
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp
Commit d42a06b2006ec5838ab6b065353597ac7c7add72 by Vitaly Buka
Revert "[tsan] Fix Darwin build after D106973"

It was invalid fix.

This reverts commit 6a0fe68844150f16e16fe64d050509e4ba740d98.
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp
Commit ca7c66ccb85b9468ba86ad12d91c940e4cb72dc3 by Vitaly Buka
[tsan] Fix Darwin build after D106973
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp
Commit dad10a9afbc383076bfa273f151de9e7bdb94eda by stellaraccident
NFC: Adapt operation.py to builtin operation print format changes.
The file was modifiedmlir/test/python/ir/operation.py
Commit 4bb0ad2382a1224c876dfd3671cf994a1a50e10d by joker.eph
Emit strong definition for TypeID storage in Op/Type/Attributes definition

By making an explicit template specialization for the TypeID provided by these classes,
the compiler will not emit an inline weak definition and rely on the linker to unique it.
Instead a single definition will be emitted in the C++ file alongside the implementation
for these classes. That will turn into a linker error what is now a hard-to-debug runtime
behavior where instances of the same class may be using a different TypeID inside of
different DSOs.

Recommit 660a56956c32b0bcd850fc12fa8ad0225a6bb880 after fixing gcc5
build.

Differential Revision: https://reviews.llvm.org/D105903
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
The file was modifiedmlir/include/mlir/Support/TypeID.h
Commit 0cdf4915019a8ebc6570229cf140ad879dfaef56 by stellaraccident
Break apart the MLIR ExecutionEngine from core python module.

* For python projects that don't need JIT/ExecutionEngine, cuts the number of files to compile roughly in half (with similar reduction in end binary size).

Differential Revision: https://reviews.llvm.org/D106992
The file was removedmlir/lib/Bindings/Python/ExecutionEngine.cpp
The file was modifiedmlir/python/CMakeLists.txt
The file was modifiedmlir/lib/Bindings/Python/MainModule.cpp
The file was removedmlir/lib/Bindings/Python/ExecutionEngine.h
The file was modifiedmlir/test/python/execution_engine.py
The file was addedmlir/lib/Bindings/Python/ExecutionEngineModule.cpp
The file was modifiedmlir/python/mlir/execution_engine.py
Commit 5a333dc5da9fac3407b78d52ad3bc18049f8a73b by Jessica Paquette
[AArch64][GlobalISel] Improve legalization for odd-type G_LOAD

Swap the order of widening so that we widen to the next power-of-2 first when
legalizing G_LOAD.

Also, provide a minimum type for the power of 2 to disallow s2 + s1. Clamping
ought to disallow s2 and s1, but I think it's better to be explicit about the
expected minimum size.

We probably need a similar change for G_STORE, but it seems to be a bit more
finnicky. So, let's just handle G_LOAD for now.

Differential Revision: https://reviews.llvm.org/D107013
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir
Commit d6704e5ed91478464e551ee9d5520584978553ee by danielrodriguez
[llvm-objcopy][MachO] Ignore all LC_SUB_* commands.

The LC_SUB_FRAMEWORK, LC_SUB_UMBRELLA, LC_SUB_CLIENT, and LC_SUB_LIBRARY
are used to indicate related libraries, binaries or framework names.
Their only payload is the string with the name of the object. Adding
those commands to the list of ignored/skipped load commands will avoid
an error that stop the process of copying/stripping and will copy their
contents verbatim.

Additionally, in order to have a test for this case, `yaml2obj` now
allows those four commands to contain a `Content`.

Differential Revision: https://reviews.llvm.org/D106412
The file was addedllvm/test/tools/llvm-objcopy/MachO/sub-load-commands.test
The file was modifiedllvm/lib/ObjectYAML/MachOYAML.cpp
The file was modifiedllvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
The file was modifiedllvm/lib/ObjectYAML/MachOEmitter.cpp
Commit a9c515983dc26992ce67668ad64f066353853ed1 by mvanotti
[libFuzzer] Fix CFI Directives for fuchsia

This commit fixes the CFI directives in the crash trampoline so
libunwind can get a backtrace during a crash.

In order to get a backtrace from a libfuzzer crash in fuchsia, we
resume execution in the crashed thread, forcing it to call the
StaticCrashHandler. We do this by setting a "crash trampoline" that has
all the necessary cfi directives for an unwinder to get full backtrace
for that thread.

Due to a bug in libunwind, it was not possible to restore the RSP
pointer, as it was always set to the call frame address (CFA). The
previous version worked around this issue by setting the CFA to the
value of the stack pointer at the point of the crash.

The bug in libunwind is now fixed[0], so I am correcting the CFI
annotations so that the CFA correctly points to the beginning of the
trampoline's call frame.

[0]: https://reviews.llvm.org/D106626

Reviewed By: mcgrathr

Differential Revision: https://reviews.llvm.org/D106725
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp
Commit c6ad3f2157ce374dbd2fd3e50699fc0303553714 by mvanotti
[asan][fuchsia] Implement PlatformUnpoisonStacks

This CL modifies the PlatformUnpoisonStacks so that fuchsia can
implement its own logic for unpoisoning the stacks.

For the general case, the behavior is the same as with regular asan: it
will unpoison everything from the current stack pointer until the base
of the stack (stack top).

In some situations, the current stack might not be the same as the
default stack. In those cases, the code will now unpoison the entire
default stack, and will also unpoison the current page of the stack.

Reviewed By: mcgrathr

Differential Revision: https://reviews.llvm.org/D106835
The file was modifiedcompiler-rt/lib/asan/asan_fuchsia.cpp
Commit 1a8087adaf1e34b695d420f62ff26d3d8489264d by aktoon
[ThinLTO] Disallow importing for functions with indir branch to block address

We don't allowing inlining for functions with blockaddress with uses other than strictly callbr. This is because if the blockaddress escapes the function via a global variable, inlining may lead to an invalid cross-function reference.

We check against such cases during inlining, however the check can fail for ThinLTO post-link because CFG simplification can incorrectly removes blocks based on wrong block reachability.

When we import a function with blockaddress taken in a global variable but without importing that variable, we won't go through value mapping to reflect the real address-taken-ness of the cloned blocks. For the imported clone, this leads to blocks reachable from indirect branch through global variable being incorrectly treated as unreachable and removed by SimplifyCFG.

Since inlining for such cases shouldn't be allowed in the first place, I'm marking them as ineligible for importing during pre-link to save the problem of missing address-taken-ness of imported clone as well as bad DCE and inlining.

Differential Revision: https://reviews.llvm.org/D106930
The file was modifiedllvm/test/ThinLTO/X86/globals-import-blockaddr.ll
The file was modifiedllvm/lib/Analysis/ModuleSummaryAnalysis.cpp
The file was modifiedllvm/test/ThinLTO/X86/Inputs/globals-import-blockaddr.ll
Commit 3894a8a4768fd6fa9bf18303a0db1687c7c687b3 by arthur.j.odwyer
[libc++] Implement the resolutions of LWG3506 and LWG3522.

Implement the changes in all language modes.

LWG3506 "Missing allocator-extended constructors for priority_queue"
makes the following changes:
- New allocator-extended constructors for priority_queue.
- New deduction guides targeting those constructors.

LWG3522: "Missing requirement on InputIterator template parameter
for priority_queue constructors". The iterator parameter should be
constrained to actually be an iterator type. `priority_queue{1,2}`
should be SFINAE-friendly ill-formed.

Also, do a drive-by fix in the allocator-extended move constructor:
there's no need to do a `make_heap` after moving from `__q.c` into
our own `c`, because that container was already heapified when it
was part of `__q`. [priqueue.cons.alloc] actually specifies the
behavior and does *not* mention calling `make_heap`. I think this
was just a copy-paste thinko. It dates back to the initial import
of libc++.

Differential Revision: https://reviews.llvm.org/D106824
Differential Revision: https://reviews.llvm.org/D106827
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_iter_constraint.compile.pass.cpp
The file was modifiedlibcxx/docs/Status/Cxx2bIssues.csv
The file was modifiedlibcxx/docs/Status/RangesIssues.csv
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_alloc.pass.cpp
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_comp_alloc.pass.cpp
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_comp_cont_alloc.pass.cpp
The file was modifiedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/deduct.pass.cpp
The file was modifiedlibcxx/include/queue
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_comp_rcont_alloc.pass.cpp
Commit 2a2d83d916aaed3dff1001366f1f7849082098e1 by powerman1st
[RISCV][test] Add new tests for mul optimization in the zba extension with SH*ADD

These test will show the following optimization by future patches.

(mul x, (power_of_2 + 2)) => (SH1ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 4)) => (SH2ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 8)) => (SH3ADD x, (SLLI x, bits))

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106647
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.ll
The file was modifiedllvm/test/CodeGen/RISCV/rv32zba.ll
Commit 264b8e2a20b3124b80bdf6f17dc29d5869336375 by powerman1st
[RISCV] Optimize mul in the zba extension with SH*ADD

This patch makes the following optimization, if the
immediate multiplier is not a simm12.

(mul x, (power_of_2 + 2)) => (SH1ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 4)) => (SH2ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 8)) => (SH3ADD x, (SLLI x, bits))

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106648
The file was modifiedllvm/test/CodeGen/RISCV/rv32zba.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.ll
Commit 50b62731452cb83979bbf3c06e828d26a4698dca by carrot
[MBP] findBestLoopTopHelper should exit if OldTop is not a chain header

Function findBestLoopTopHelper tries to find a new loop top block which can also
fall through to OldTop, but it's impossible if OldTop is not a chain header, so
it should exit immediately.

Differential Revision: https://reviews.llvm.org/D106329
The file was addedllvm/test/CodeGen/ARM/mbp.ll
The file was modifiedllvm/lib/CodeGen/MachineBlockPlacement.cpp
Commit 363a8a05988de8f5771fd1330b0fa9a4d2ae4944 by jasonliu.development
[libc++] money_get::do_get() set failbit and eofbit if iterator begin equals end

Summary:
Currently, if we pass in the same iterator for begin and end,
the long double version of do_get would throw a runtime error.

However, according to standard (https://eel.is/c++draft/locale.money.get#virtuals-1),
we should set the failbit and eofbit when no more characters are available.

Differential Revision: https://reviews.llvm.org/D100510
The file was modifiedlibcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_en_US.pass.cpp
The file was modifiedlibcxx/include/locale
The file was modifiedlibcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_string_en_US.pass.cpp
Commit 20c6ddc5bcc91aba6a5cccabae094d08301567fc by arthur.j.odwyer
[libc++] Remove unused variables in generate_private_header_tests.py. NFCI.
The file was modifiedlibcxx/utils/generate_private_header_tests.py
Commit 61c35fb0c2c9e25942a913ea88f541dc5abb15e4 by arthur.j.odwyer
[libc++][modularisation] Split <compare> into internal headers.

Differential Revision: https://reviews.llvm.org/D106107
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedlibcxx/include/compare
The file was addedlibcxx/test/libcxx/diagnostics/detail.headers/compare/common_comparison_category.module.verify.cpp
The file was modifiedlibcxx/include/module.modulemap
The file was addedlibcxx/test/libcxx/diagnostics/detail.headers/compare/ordering.module.verify.cpp
The file was addedlibcxx/include/__compare/common_comparison_category.h
The file was addedlibcxx/include/__compare/ordering.h
Commit ecd5dc6dccfff44267fa57737311f1ed0a108870 by llvmgnsyncbot
[gn build] Port 61c35fb0c2c9
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 7e2174c2535edc03864b2016ff00e4bb57947a8f by stellaraccident
NFC: Add missing import to integration test.
The file was modifiedmlir/test/python/integration/dialects/linalg/opsrun.py
Commit 768f56264150ad20f0d1416314a0affafb55bd0f by stellaraccident
Update file names and extensions for MLIR Python execution engine changes.
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Commit c6b0b16c0f55c34f4eaa05184815bbbe97f4b750 by llvm-project
[Preprocessor] -E -P: Ensure newline after 8 skipped lines.

The implementation of -fminimize-whitespace (D104601) revised the logic
when to emit newlines. There was no case to handle when more than
8 lines were skippped in -P (DisableLineMarkers) mode and instead fell
through the case intended for -fminimize-whitespace, i.e. emit nothing.
This patch will emit one newline in this case.

The newline logic is slightly reorganized. The `-P -fminimize-whitespace`
case is handled explicitly and emitting at least one newline is the new
fallback case. The choice between emitting a line marker or up to
7 empty lines is now a choice only with enabled line markers. The up to
8 newlines likely are fewer characters than a line directive, but
in -P mode this had the paradoxic effect that it would print up to
7 empty lines, but none at all if more than 8 lines had to be skipped.
Now with DisableLineMarkers, we don't consider printing empty lines
(just start a new line) which matches gcc's behavior.

The line-directive-output-mincol.c test is replaced with a more
comprehensive test skip-empty-lines.c also testing the more than
8 skipped lines behaviour with all flag combinations.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D106924
The file was addedclang/test/Preprocessor/skip-empty-lines.c
The file was removedclang/test/Preprocessor/line-directive-output-mincol.c
The file was modifiedclang/test/Preprocessor/minimize-whitespace.c
The file was modifiedclang/lib/Frontend/PrintPreprocessedOutput.cpp
Commit a4edb2b1ba0bda9042e87ca3f3e1b9f70598df9a by tstellar
libcang: Add missing function to libclang.map

This function is marked with CINDEX_LINKAGE, but was never added to the
export list / linker script.

Reviewed By: jrtc27

Differential Revision: https://reviews.llvm.org/D106974
The file was modifiedclang/tools/libclang/libclang.map
Commit 640ed21cceb28ddb3a9779fdfa11a4c4d97e29df by sivachandra
[libc][NFC] Add noreturn and constexpr qualifiers where appropriate

These functions make it clear to the compiler and user what the intended
behavior is so llvm can make them go as fast as possible.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D106807
The file was modifiedlibc/src/ctype/ctype_utils.h
The file was modifiedlibc/src/__support/integer_operations.h
The file was modifiedlibc/utils/HdrGen/Command.h
Commit 5060224d9eed8b8359ed5090bb7c577b8575e9e7 by nathan
[test] Fix tools/gold/X86/comdat-nodeduplicate.ll on non-X86 hosts

When running this test on an aarch64 machine, it fails:

```
/usr/bin/ld.gold: error: .../test/tools/gold/X86/Output/comdat-nodeduplicate.ll.tmp/ab.lto.o: incompatible target
```

Specify the elf_x86_64 emulation as all of the other gold plugin tests
do.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D107020
The file was modifiedllvm/test/tools/gold/X86/comdat-nodeduplicate.ll
Commit b70de61f48062c7810b474bc944394ecbd56a262 by joker.eph
Add `all_of_zip` to STLExtras

This takes two ranges and invokes a predicate on the element-wise pair in the
ranges. It returns true if all the pairs are matching the predicate and the ranges
have the same size.
It is useful with containers that aren't random iterator where we can't check the
sizes in O(1).

Differential Revision: https://reviews.llvm.org/D106605
The file was modifiedllvm/include/llvm/ADT/STLExtras.h
The file was modifiedllvm/unittests/ADT/STLExtrasTest.cpp
Commit 0be5d1a96c8973a4aa56b3fdd8fc22c8a95a7171 by joker.eph
Implement recursive support into OperationEquivalence::isEquivalentTo()

This allows to use OperationEquivalence to track structural comparison for equality
between two operations.

Differential Revision: https://reviews.llvm.org/D106422
The file was modifiedmlir/lib/IR/OperationSupport.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/test/IR/operation-equality.mlir
The file was addedmlir/test/lib/IR/TestOperationEquals.cpp
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was modifiedmlir/lib/Transforms/Utils/RegionUtils.cpp
The file was modifiedmlir/lib/Transforms/CSE.cpp
The file was modifiedmlir/test/lib/IR/CMakeLists.txt
Commit 58712987e56fb598ac49da7fbe6e6a78c787637b by freddy.ye
[NFC][X86] add missing tests in clang/test/CodeGen/attr-target-mv.c

Reviewed By: pengfei

Differential Revision: https://reviews.llvm.org/D106849
The file was modifiedclang/test/CodeGen/attr-target-mv.c
Commit d4840175c95f6edcba21baae411589468d5bc68f by arthur.j.odwyer
[libc++] Remove excess whitespace in synopsis comment. NFCI.
The file was modifiedlibcxx/include/compare
Commit 262cb5f5b492b77336e6dea3f720eec9632cced4 by dvyukov
tsan: fix java_symbolization test

We reliably remove bottom libc-guts frames only on linux/glibc.
Some bots failed on this test showing other bottom frames:

.annobin_libc_start.c libc-start.c (libc.so.6+0x249f4)
generic_start_main.isra.0 libc-start.c (libc.so.6+0x45b0c)

We can't reliably remove all of possible bottom frames.
So remove the assertion for that.

Differential Revision: https://reviews.llvm.org/D107037
The file was modifiedcompiler-rt/test/tsan/java_symbolization.cpp
Commit a1a37ddc3f0e4d4002b0661e4870b1e949fd5d81 by dvyukov
tsan: remove /**/ at the of multi-line macros

Prefer code readability over writeability.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106982
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
Commit cd0143c0f2a37332a1f7e29caa122db74b92a344 by dvyukov
tsan: switch from SSE3 to SSE4.2

Switch x86_64 requirement for optimized code from SSE3 to SSE4.2.
The new tsan runtime will need few instructions that are only
supported by SSE4:

_mm_max_epu32
_mm_extract_epi8
_mm_insert_epi32

SSE3 was introcued in 2004 and SSE4 in 2006:
https://en.wikipedia.org/wiki/SSE3
https://en.wikipedia.org/wiki/SSE4

We are still providing non-optimized C++ version of the code,
so either way it's possible to build tsan runtime for any CPU.

But for Go this will bump strict requirement for -race because
Go contains prebuilt versions and these will be built with -msse4.2.
But requiring a CPU produced at least in 2006 looks reasonable for
a debugging tool (more reasonable than disabling optimizations
for everybody).

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106948
The file was modifiedcompiler-rt/lib/tsan/CMakeLists.txt
The file was modifiedcompiler-rt/lib/tsan/go/build.bat
The file was modifiedcompiler-rt/lib/tsan/go/buildgo.sh
Commit e2fe26e77b02633207bdd36a14e2dcf210cc2fe7 by JunMa
[NFC][InstSimplify] Use more intuitive variable names.
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/fold-vscale.ll
Commit 92b758cf3d706b117d59490cd85d23b764cc749f by koraq
[libcxx][doc] Update the build documentation.

These are the hunks of
  D106770 [libc++][doc] Update the release notes
that are relevant for main.
The file was modifiedlibcxx/docs/BuildingLibcxx.rst