Progress:
In progressChanges

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

Summary

  1. [mlir][sparse] use proper type alias for filename ptr (details)
  2. Simplify allowing pragma float_control in a linkage specification (details)
  3. Revert "Revert of D49126 [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types." (details)
  4. [PredicateInfo] Use Intrinsic::getDeclaration now that it handles unnamed types. (details)
  5. [LoopFlatten] Fix bug where SCEVCouldNotCompute object is used (details)
  6. [trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization (details)
  7. tsan: remove unused pc arguments (details)
  8. tsan: remove mblock types (details)
  9. tsan: add more micro benchmarks (details)
  10. [MCA] Moving the target specific CustomBehaviour impl. from /tools/llvm-mca/ to /lib/Target/. (details)
  11. tsan: print alloc stack for Java objects (details)
  12. tsan: don't use caller/current PC in Java interfaces (details)
  13. tsan: strip __libc_start_main frame (details)
  14. sanitizer_common: avoid compiler-interted memset in deadlock detector (details)
  15. tsan: don't print __tsan_atomic* functions in report stacks (details)
  16. Add some missing CMake dependencies between MLIR dialects (NFC) (details)
  17. Emit strong definition for TypeID storage in Op/Type/Attributes definition (details)
  18. [ARM] Fix llvm-objdump disassembly of armv7m object files. (details)
  19. COFF/ELF: Place llvm.global_ctors elements in llvm.used if comdat is used (details)
  20. [DebugInfo][docs] Fix DISubprogram fields (details)
  21. [libcxx][ranges] Add ranges::take_view. (details)
  22. Optionally eliminate blocking runtime.await calls by converting functions to coroutines. (details)
  23. [ELF][test] Delete unneeded --triple=thumb* from llvm-objdump RUN lines (details)
  24. [ELF][test] Convert --start-address= and --stop-address= values to hexadecimal (details)
  25. [Bazel] Update for dbed061bf1 (details)
  26. [Bazel] Added missing targets to LLVM bazel rules. (details)
  27. Revert "[trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization" (details)
  28. [libc++] Add UNSUPPORTED for clang-14 since the underlying bug hasn't been fixed yet (details)
  29. [clang] Evaluate strlen of strcpy argument for -Wfortify-source. (details)
  30. [trace] Introduce Hierarchical Trace Representation (HTR) and add  command for Intel PT trace visualization (details)
  31. [mlir] Set the namespace of the BuiltinDialect to 'builtin' (details)
  32. Revert "Emit strong definition for TypeID storage in Op/Type/Attributes definition" (details)
  33. [clang] NFC: refactor multiple implementations of getDecltypeForParenthesizedExpr (details)
  34. [clang] fix concepts crash on substitution failure during normalization (details)
  35. [libc] add strncmp to strings (details)
  36. [profile] Add underscore to /alternatename for Win/x86 (details)
  37. [gn build] Add support for Win/x86 compiler-rt (details)
  38. [DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR (details)
  39. [NFC][Codegen][X86] Autogenerate check lines in avx.ll test (details)
  40. [AArch64][GlobalISel] Improve legalization for odd-sized G_ICMP/G_CONSTANT (details)
  41. [Bazel] Fix digest for bazel-skylib 1.0.3 (details)
  42. [gn build] Manually port dbed061b (details)
  43. [lld-macho] Downgrade "cannot export hidden symbol" to warning (details)
  44. [Attributor] Change function internalization to not replace uses in internalized callers (details)
  45. [gn build] Port 0f4b41e03853 (details)
  46. [Attributor] Don't test internalization in the CGSCC pass. (details)
  47. [tsan] Fix Darwin build after D106973 (details)
  48. Revert "[tsan] Fix Darwin build after D106973" (details)
  49. [tsan] Fix Darwin build after D106973 (details)
  50. NFC: Adapt operation.py to builtin operation print format changes. (details)
  51. Emit strong definition for TypeID storage in Op/Type/Attributes definition (details)
  52. Break apart the MLIR ExecutionEngine from core python module. (details)
  53. [AArch64][GlobalISel] Improve legalization for odd-type G_LOAD (details)
  54. [llvm-objcopy][MachO] Ignore all LC_SUB_* commands. (details)
  55. [libFuzzer] Fix CFI Directives for fuchsia (details)
  56. [asan][fuchsia] Implement PlatformUnpoisonStacks (details)
  57. [ThinLTO] Disallow importing for functions with indir branch to block address (details)
  58. [libc++] Implement the resolutions of LWG3506 and LWG3522. (details)
  59. [RISCV][test] Add new tests for mul optimization in the zba extension with SH*ADD (details)
  60. [RISCV] Optimize mul in the zba extension with SH*ADD (details)
  61. [MBP] findBestLoopTopHelper should exit if OldTop is not a chain header (details)
  62. [libc++] money_get::do_get() set failbit and eofbit if iterator begin equals end (details)
  63. [libc++] Remove unused variables in generate_private_header_tests.py. NFCI. (details)
  64. [libc++][modularisation] Split <compare> into internal headers. (details)
  65. [gn build] Port 61c35fb0c2c9 (details)
  66. NFC: Add missing import to integration test. (details)
  67. Update file names and extensions for MLIR Python execution engine changes. (details)
  68. [Preprocessor] -E -P: Ensure newline after 8 skipped lines. (details)
  69. libcang: Add missing function to libclang.map (details)
  70. [libc][NFC] Add noreturn and constexpr qualifiers where appropriate (details)
  71. [test] Fix tools/gold/X86/comdat-nodeduplicate.ll on non-X86 hosts (details)
  72. Add `all_of_zip` to STLExtras (details)
  73. Implement recursive support into OperationEquivalence::isEquivalentTo() (details)
  74. [NFC][X86] add missing tests in clang/test/CodeGen/attr-target-mv.c (details)
  75. [libc++] Remove excess whitespace in synopsis comment. NFCI. (details)
  76. tsan: fix java_symbolization test (details)
  77. tsan: remove /**/ at the of multi-line macros (details)
  78. tsan: switch from SSE3 to SSE4.2 (details)
  79. [NFC][InstSimplify] Use more intuitive variable names. (details)
  80. [libcxx][doc] Update the build documentation. (details)
  81. [clang-format] Fix aligning with linebreaks #2 (details)
  82. test-release.sh: Kill python2 (details)
  83. [RISCV] Add test case showing suboptimal BUILD_VECTOR lowering (details)
  84. [RISCV] Optimize floating-point "dominant value" BUILD_VECTORs (details)
  85. [LoopFlatten] Fix missed LoopFlatten opportunity (details)
  86. Fix FindZ3.cmake to support static libraries and Windows (details)
  87. [mlir] Remove the default isDynamicallyLegal hook (details)
  88. [mlir] Put back virtual ~ConversionTarget(), some users started relying on it (details)
  89. [AMDGPU][GlobalISel] Insert an and with exec before s_cbranch_vccnz if necessary (details)
  90. [lldb][AArch64] Annotate synchronous tag faults (details)
  91. NFC: Change quotes from Unicode to ASCII (details)
  92. [AArch64][GlobalISel] More widenToNextPow2 changes, this time for arithmetic/bitwise ops. (details)
  93. [AArch64][AsmParser] NFC: Parser.getTok() -> getTok() (details)
  94. [flang][driver] Forward `-fopenmp`/`-fopenacc` to the host compiler (details)
  95. tsan: rename deadlock detector Mutex to UserMutex (details)
  96. sanitizer_common: remove BlockingMutex and RWMutex (details)
  97. tsan: store ThreadRegistry in Context by value (details)
  98. Follow-up to D105207, only salvage affine SCEVs to avoid a crash (details)
  99. bugprone-forwarding-reference-overload: support non-type template parameters (details)
  100. [Utils] Do not remove comments in llc test script (details)
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_matvec.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir
The file was modifiedmlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.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/Other/debugcounter-predicateinfo.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/diamond.ll
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/lib/Transforms/Utils/PredicateInfo.cpp
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/testandor.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/PredicateInfo.h
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/edge.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/lib/IR/Module.cpp
The file was modifiedllvm/include/llvm/IR/Module.h
The file was modifiedllvm/test/Other/debugcounter-predicateinfo.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/diamond.ll
The file was modifiedllvm/lib/Transforms/Utils/PredicateInfo.cpp
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/edge.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/testandor.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/condprop.ll
The file was modifiedllvm/test/Transforms/Util/PredicateInfo/unnamed-types.ll
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/lib/Transforms/Scalar/LoopFlatten.cpp
The file was modifiedllvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll
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 addedlldb/source/Plugins/TraceExporter/common/CMakeLists.txt
The file was addedlldb/test/API/commands/trace/TestTraceExport.py
The file was modifiedlldb/source/Plugins/TraceExporter/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp
The file was addedlldb/docs/htr.rst
The file was addedlldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp
The file was addedlldb/source/Plugins/TraceExporter/common/TraceHTR.h
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_rtl_mutex.cpp
The file was modifiedcompiler-rt/lib/tsan/go/tsan_go.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_inl.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.cpp
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_interface_ann.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.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_stack_trace.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_mman.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_mman.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.cpp
The file was modifiedcompiler-rt/lib/tsan/tests/unit/tsan_mman_test.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
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 addedcompiler-rt/test/tsan/bench_memory_access.cpp
The file was modifiedcompiler-rt/test/tsan/bench.h
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/include/llvm/Support/TargetRegistry.h
The file was modifiedllvm/include/llvm/MCA/CustomBehaviour.h
The file was removedllvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.h
The file was addedllvm/include/llvm/Config/TargetMCAs.def.in
The file was modifiedllvm/include/llvm/Support/TargetSelect.h
The file was addedllvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.h
The file was modifiedllvm/tools/llvm-mca/CMakeLists.txt
The file was modifiedllvm/CMakeLists.txt
The file was addedllvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
The file was removedllvm/tools/llvm-mca/lib/AMDGPU/AMDGPUCustomBehaviour.cpp
The file was addedllvm/lib/Target/AMDGPU/MCA/CMakeLists.txt
The file was removedllvm/tools/llvm-mca/lib/CMakeLists.txt
The file was removedllvm/tools/llvm-mca/lib/AMDGPU/CMakeLists.txt
The file was modifiedllvm/tools/llvm-mca/llvm-mca.cpp
The file was modifiedllvm/lib/Target/AMDGPU/CMakeLists.txt
The file was modifiedllvm/tools/llvm-mca/CodeRegionGenerator.h
The file was modifiedllvm/docs/CommandGuide/llvm-mca.rst
The file was modifiedllvm/include/llvm/Config/llvm-config.h.cmake
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/test/tsan/java.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
The file was modifiedcompiler-rt/test/tsan/java_symbolization.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.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/test/tsan/java_symbolization.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.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_free3.cpp
The file was modifiedcompiler-rt/test/tsan/atomic_stack.cpp
Commit 6cba96332b3ae2cbf3f9b62dfb407f3275f6cf79 by joker.eph
Add some missing CMake dependencies between MLIR dialects (NFC)
The file was modifiedmlir/lib/Dialect/OpenACC/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/SparseTensor/IR/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/AttrOrTypeDefGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.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/v5te-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/v6m-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6t2-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v7m-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v5tej-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/v7m-subfeatures.s
The file was modifiedllvm/lib/Object/ELFObjectFile.cpp
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6-subfeatures.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v6-subarch.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/ARM/v7a-neg-subfeature.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/v6k-subarch.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/v7a-subfeature.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/lib/CodeGen/CGDeclCXX.cpp
The file was modifiedclang/test/CodeGenCXX/static-member-variable-explicit-specialization.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-template-static-init.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/SourceLevelDebugging.rst
The file was modifiedllvm/docs/LangRef.rst
Commit 0f4b41e038537ab2ab6fa2aa048e55c28a03ab68 by zoecarver
[libcxx][ranges] Add ranges::take_view.

Differential Revision: https://reviews.llvm.org/D106507
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/begin.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.transform/ctad.compile.pass.cpp
The file was modifiedlibcxx/include/module.modulemap
The file was modifiedlibcxx/include/ranges
The file was modifiedlibcxx/test/support/test_range.h
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/ctor.pass.cpp
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/eq.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/size.pass.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/borrowing.compile.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/types.h
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/sentinel/base.pass.cpp
The file was addedlibcxx/include/__ranges/take_view.h
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/ctad.compile.pass.cpp
The file was addedlibcxx/test/libcxx/diagnostics/detail.headers/ranges/take_view.module.verify.cpp
The file was modifiedlibcxx/docs/Status/RangesPaper.csv
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/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 modifiedmlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
The file was addedmlir/test/Dialect/Async/async-to-async-runtime-eliminate-blocking.mlir
Commit f17e7df04ade78932e568ddd5b56d5e6c89bbac2 by i
[ELF][test] Delete unneeded --triple=thumb* from llvm-objdump RUN lines
The file was modifiedlld/test/ELF/arm-thunk-nosuitable.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-orphan.s
The file was modifiedlld/test/ELF/arm-thunk-multipass-plt.s
The file was modifiedlld/test/ELF/arm-thunk-largesection.s
The file was modifiedlld/test/ELF/arm-force-pi-thunk.s
The file was modifiedlld/test/ELF/arm-thumb-interwork-shared.s
The file was modifiedlld/test/ELF/arm-thumb-undefined-weak.s
The file was modifiedlld/test/ELF/arm-thumb2-adr.s
The file was modifiedlld/test/ELF/arm-thumb2-ldrlit.s
The file was modifiedlld/test/ELF/arm-extreme-range-pi-thunk.s
The file was modifiedlld/test/ELF/arm-thumb-mix-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thunk-edgecase.s
The file was modifiedlld/test/ELF/arm-thumb-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thumb-thunk-empty-pass.s
The file was modifiedlld/test/ELF/arm-thumb-blx.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript.s
The file was modifiedlld/test/ELF/arm-thunk-multipass.s
The file was modifiedlld/test/ELF/arm-thunk-re-add.s
The file was modifiedlld/test/ELF/arm-thumb-ldrlit.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-large.s
The file was modifiedlld/test/ELF/arm-thumb-narrow-branch-check.s
The file was modifiedlld/test/ELF/arm-thumb-interwork-thunk.s
The file was modifiedlld/test/ELF/arm-thumb-pc8-weak.s
The file was modifiedlld/test/ELF/arm-thumb-plt-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thumb-adr.s
The file was modifiedlld/test/ELF/arm-thumb-condbranch-thunk.s
The file was modifiedlld/test/ELF/arm-thumb-branch.s
The file was modifiedlld/test/ELF/arm-thumb-undefined-weak-narrow.test
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-sort.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-dotexpr.s
The file was modifiedlld/test/ELF/arm-thumb-branch-rangethunk.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-thunk-multipass-plt.s
The file was modifiedlld/test/ELF/arm-thunk-multipass.s
The file was modifiedlld/test/ELF/aarch64-cortex-a53-843419-large.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-large.s
The file was modifiedlld/test/ELF/arm-thumb-mix-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thumb-range-thunk-os.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-dotexpr.s
The file was modifiedlld/test/ELF/arm-thunk-linkerscript-sort.s
The file was modifiedlld/test/ELF/arm-thunk-re-add.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/include/llvm/Config/llvm-config.h
The file was modifiedutils/bazel/llvm-project-overlay/llvm/BUILD.bazel
The file was modifiedutils/bazel/llvm_configs/llvm-config.h.cmake
The file was modifiedutils/bazel/llvm-project-overlay/llvm/config.bzl
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/llvm-project-overlay/llvm/BUILD.bazel
The file was modifiedutils/bazel/configure.bzl
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.h
The file was removedlldb/source/Plugins/TraceExporter/common/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp
The file was removedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp
The file was removedlldb/docs/htr.rst
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt
The file was removedlldb/source/Plugins/TraceExporter/common/TraceHTR.h
The file was modifiedlldb/source/Plugins/TraceExporter/CMakeLists.txt
The file was removedlldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
The file was removedlldb/test/API/commands/trace/TestTraceExport.py
The file was removedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out
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/Analysis/security-syntax-checks.m
The file was modifiedclang/test/Sema/warn-fortify-source.c
The file was modifiedclang/include/clang/AST/Expr.h
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaChecking.cpp
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 addedlldb/source/Plugins/TraceExporter/common/TraceHTR.h
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CMakeLists.txt
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/TraceExporterCTFOptions.td
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.cpp
The file was addedlldb/source/Plugins/TraceExporter/common/CMakeLists.txt
The file was addedlldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp
The file was addedlldb/test/API/commands/trace/TestTraceExport.py
The file was addedlldb/test/API/commands/trace/intelpt-trace/export_ctf_test_program.out
The file was modifiedlldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.h
The file was modifiedlldb/source/Plugins/TraceExporter/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/Transforms/single-parallel-loop-collapsing.mlir
The file was modifiedmlir/test/CAPI/pass.c
The file was modifiedmlir/test/Conversion/MemRefToLLVM/convert-static-memref-ops.mlir
The file was modifiedmlir/test/Transforms/sccp.mlir
The file was modifiedmlir/test/mlir-lsp-server/document-symbols.test
The file was modifiedmlir/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedmlir/test/mlir-opt/commandline.mlir
The file was modifiedmlir/include/mlir/IR/BuiltinDialect.td
The file was modifiedmlir/test/Dialect/SCF/loop-range.mlir
The file was modifiedmlir/lib/Bindings/Python/IRCore.cpp
The file was modifiedmlir/test/IR/print-ir-defuse.mlir
The file was modifiedmlir/docs/Tutorials/UnderstandingTheIRStructure.md
The file was modifiedmlir/test/Transforms/test-canonicalize.mlir
The file was modifiedflang/test/Fir/cg-ops.fir
The file was modifiedflang/lib/Optimizer/Dialect/FIRType.cpp
The file was modifiedmlir/test/Transforms/test-canonicalize-filter.mlir
The file was modifiedmlir/include/mlir/Pass/PassManager.h
The file was modifiedmlir/test/python/pass_manager.py
The file was modifiedmlir/test/Dialect/Standard/canonicalize-cf.mlir
The file was modifiedmlir/include/mlir/IR/Dialect.h
The file was modifiedmlir/docs/SymbolsAndSymbolTables.md
The file was modifiedmlir/test/Transforms/sccp-structured.mlir
The file was modifiedmlir/test/Dialect/Builtin/invalid.mlir
The file was modifiedmlir/lib/IR/Operation.cpp
The file was modifiedmlir/test/Transforms/test-symbol-dce.mlir
The file was modifiedmlir/test/Dialect/Linalg/fusion-sequence.mlir
The file was modifiedmlir/test/Transforms/test-legalizer-analysis.mlir
The file was modifiedmlir/test/mlir-lsp-server/hover.test
The file was modifiedmlir/test/Pass/dynamic-pipeline.mlir
The file was modifiedmlir/test/Transforms/canonicalize.mlir
The file was modifiedmlir/unittests/IR/InterfaceAttachmentTest.cpp
The file was modifiedmlir/test/Analysis/test-alias-analysis.mlir
The file was modifiedmlir/test/Transforms/canonicalize-block-merge.mlir
The file was modifiedmlir/test/Transforms/parallel-loop-collapsing.mlir
The file was modifiedmlir/test/Analysis/test-alias-analysis-modref.mlir
The file was modifiedmlir/test/Pass/ir-printing.mlir
The file was modifiedmlir/lib/IR/Dialect.cpp
The file was modifiedmlir/test/Dialect/LLVMIR/terminator.mlir
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
The file was modifiedmlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir
The file was modifiedmlir/test/IR/invalid-ops.mlir
The file was modifiedmlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLOps.td
The file was modifiedmlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir
The file was modifiedmlir/test/Transforms/cse.mlir
The file was modifiedmlir/test/Pass/pipeline-options-parsing.mlir
The file was modifiedmlir/test/mlir-lsp-server/diagnostics.test
The file was modifiedmlir/test/python/ir/operation.py
The file was modifiedmlir/lib/IR/BuiltinDialect.cpp
The file was modifiedmlir/docs/PassManagement.md
The file was modifiedmlir/test/IR/print-op-on-diagnostic.mlir
The file was modifiedmlir/test/Pass/pass-timing.mlir
The file was modifiedmlir/test/Conversion/MemRefToLLVM/convert-dynamic-memref-ops.mlir
The file was modifiedmlir/include/mlir/Transforms/LoopUtils.h
The file was modifiedmlir/test/Pass/pipeline-parsing.mlir
The file was modifiedmlir/test/python/integration/dialects/linalg/opsrun.py
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-runtime-to-llvm.mlir
The file was modifiedmlir/test/Dialect/ArmSVE/memcpy.mlir
The file was modifiedmlir/test/Pass/crash-recovery.mlir
The file was modifiedmlir/test/Pass/run-reproducer.mlir
The file was modifiedmlir/test/Pass/invalid-pass.mlir
The file was modifiedmlir/test/Dialect/Affine/canonicalize.mlir
The file was modifiedmlir/test/Pass/pipeline-stats.mlir
The file was modifiedmlir/test/Pass/dynamic-pipeline-fail-on-parent.mlir
The file was modifiedmlir/test/IR/wrapping_op.mlir
The file was modifiedmlir/test/Transforms/canonicalize-td.mlir
The file was modifiedmlir/test/IR/visitors.mlir
The file was modifiedmlir/test/Transforms/canonicalize-dce.mlir
The file was modifiedmlir/test/IR/print-ir-nesting.mlir
The file was modifiedmlir/test/Pass/dynamic-pipeline-nested.mlir
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
The file was modifiedmlir/test/python/ir/dialects.py
The file was modifiedmlir/test/CAPI/ir.c
The file was modifiedmlir/test/Dialect/SCF/parallel-loop-fusion.mlir
The file was modifiedmlir/test/Dialect/SCF/parallel-loop-tiling.mlir
The file was modifiedmlir/lib/IR/BuiltinTypes.cpp
The file was modifiedmlir/test/Transforms/sccp-callgraph.mlir
The file was modifiedmlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
The file was modifiedmlir/docs/Diagnostics.md
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/test/Dialect/Quant/canonicalize.mlir
The file was modifiedmlir/test/Dialect/SCF/canonicalize.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/DialectGen.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/OpDefinitionsGen.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/lib/Sema/SemaConcept.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/AST/ExprObjC.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 addedlibc/test/src/string/strncmp_test.cpp
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
The file was modifiedlibc/src/string/CMakeLists.txt
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/src/string/strncmp.cpp
The file was addedlibc/src/string/strncmp.h
The file was modifiedlibc/test/src/string/CMakeLists.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/build/toolchain/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/compiler-rt/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 addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
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/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.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-cmp.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
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/lib/Target/AMDGPU/BUILD.gn
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 removedllvm/utils/gn/secondary/llvm/tools/llvm-mca/lib/AMDGPU/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/tools/llvm-mca/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/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/test/Transforms/OpenMP/custom_state_machines.ll
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedllvm/lib/Transforms/IPO/Attributor.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/include/mlir/Support/TypeID.h
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
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.h
The file was modifiedmlir/python/mlir/execution_engine.py
The file was modifiedmlir/test/python/execution_engine.py
The file was modifiedmlir/lib/Bindings/Python/MainModule.cpp
The file was removedmlir/lib/Bindings/Python/ExecutionEngine.cpp
The file was addedmlir/lib/Bindings/Python/ExecutionEngineModule.cpp
The file was modifiedmlir/python/CMakeLists.txt
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/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
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 modifiedllvm/lib/ObjectYAML/MachOYAML.cpp
The file was addedllvm/test/tools/llvm-objcopy/MachO/sub-load-commands.test
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/Inputs/globals-import-blockaddr.ll
The file was modifiedllvm/test/ThinLTO/X86/globals-import-blockaddr.ll
The file was modifiedllvm/lib/Analysis/ModuleSummaryAnalysis.cpp
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.alloc/ctor_iter_iter_comp_alloc.pass.cpp
The file was modifiedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/deduct.pass.cpp
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_comp_cont_alloc.pass.cpp
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_comp_rcont_alloc.pass.cpp
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_iter_constraint.compile.pass.cpp
The file was modifiedlibcxx/include/queue
The file was modifiedlibcxx/docs/Status/Cxx2bIssues.csv
The file was addedlibcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_iter_iter_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/rv32zba.ll
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.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/test/CodeGen/RISCV/rv64zba.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
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 modifiedllvm/lib/CodeGen/MachineBlockPlacement.cpp
The file was addedllvm/test/CodeGen/ARM/mbp.ll
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_string_en_US.pass.cpp
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
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 addedlibcxx/include/__compare/common_comparison_category.h
The file was addedlibcxx/test/libcxx/diagnostics/detail.headers/compare/ordering.module.verify.cpp
The file was addedlibcxx/include/__compare/ordering.h
The file was addedlibcxx/test/libcxx/diagnostics/detail.headers/compare/common_comparison_category.module.verify.cpp
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedlibcxx/include/compare
The file was modifiedlibcxx/include/module.modulemap
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 removedclang/test/Preprocessor/line-directive-output-mincol.c
The file was addedclang/test/Preprocessor/skip-empty-lines.c
The file was modifiedclang/lib/Frontend/PrintPreprocessedOutput.cpp
The file was modifiedclang/test/Preprocessor/minimize-whitespace.c
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/unittests/ADT/STLExtrasTest.cpp
The file was modifiedllvm/include/llvm/ADT/STLExtras.h
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/lib/Transforms/CSE.cpp
The file was modifiedmlir/lib/Transforms/Utils/RegionUtils.cpp
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was addedmlir/test/IR/operation-equality.mlir
The file was addedmlir/test/lib/IR/TestOperationEquals.cpp
The file was modifiedmlir/test/lib/IR/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
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_interface_ann.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.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/buildgo.sh
The file was modifiedcompiler-rt/lib/tsan/go/build.bat
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
Commit 75f6a795ee0faf544c3f539d01008d1d5d876acb by bjoern
[clang-format] Fix aligning with linebreaks #2

This amends c5243c63cda3c740d6e9c7e501f6518c21688da3 to fix formatting
continued function calls with BinPacking = false.

Differential Revision: https://reviews.llvm.org/D106773
The file was modifiedclang/lib/Format/WhitespaceManager.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit 9ff030ca50e327d522e80ee20f4d5febcce94a24 by diana.picus
test-release.sh: Kill python2

Don't prefer python2's virtualenv when setting up the test-suite.
Always use python3 instead, since that's what we support everywhere else
anyway.

Differential Revision: https://reviews.llvm.org/D106941
The file was modifiedllvm/utils/release/test-release.sh
Commit a33f60db39836d94a79557b147515d42d30ecba3 by fraser
[RISCV] Add test case showing suboptimal BUILD_VECTOR lowering

The second test case added here was pointed out to me by @craig.topper
and shows how we "optimize" a two-element BUILD_VECTOR from being one
load from the constant pool to two loads from the constant pool.

The first test case shows that since materialization for the
floating-point +0.0 value is cheap and doesn't involve a load, the
optimization is more clearly beneficial here.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106962
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
Commit 02dd4b59bc0d34ecd41fcc314f5571572b3feebc by fraser
[RISCV] Optimize floating-point "dominant value" BUILD_VECTORs

This patch aims to improve the performance of BUILD_VECTORs which are
identified as containing a dominant element. Given that most
floating-point constants themselves require a load from the constant
pool, it was possible for the optimization to actually increase the
number of individual loads on small vectors. The exception is the zero
constant -- +0.0 -- which can be materialized efficiently.

While this optimization could do with a proper cost model to weigh the
benfits of a single vector load vs. the manipulation of individual
elements -- even for integer vectors which often require several
instructions to materialize -- without a concrete RVV implementation to
work with any heuristic is likely to be both more obtuse and inaccurate.

Until then, this patch fixes at least one known obvious deficiency.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106963
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit 2df8bf9339e43de63d8d28e07182e1d6d7ffb843 by rosie.sumpter
[LoopFlatten] Fix missed LoopFlatten opportunity

When the trip count of the inner loop is a constant, the InstCombine
pass now causes the transformation e.g. imcp ult i32 %inc, tripcount ->
icmp ult %j, tripcount-step (where %j is the inner loop induction
variable and %inc is add %j, step), which is now accounted for when
identifying the trip count of the loop. This is also an acceptable use
of %j (provided the step is 1) so is ignored as long as the compare
that it's used in is also the condition of the inner branch.

Differential Revision: https://reviews.llvm.org/D105802
The file was modifiedllvm/test/Transforms/LoopFlatten/loop-flatten.ll
The file was modifiedllvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopFlatten.cpp
Commit f1ab60e40d16970381a003e145be6d5932823597 by balazs.benics
Fix FindZ3.cmake to support static libraries and Windows

Use absolute path to link z3 to allow builds both on windows and linux
since the library name is platform dependent for Z3 (libz3 on Windows
and z3 on Linux) and MSVC does not recognized -L and -l options.
Fix CMAKE_CROSSCOMPILING that does not work correctly since it uses
Z3_BUILD_VERSION instead of Z3_BUILD_NUMBER
Fix building with the static version of z3 library (supersedes D80227).

- Build the Z3 version detection code as C++, since the static
   library brings in libstdc++ symbols
- Detect threading support and link against threading, in the
   (likely) case Z3 was built with threads

Exposed compilation error from building a program that is used to detect
z3 version in the warning message, to simplify troubleshooting.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D106131
The file was modifiedllvm/cmake/modules/FindZ3.cmake
Commit 1c9c2c91d4d4b62d99ea1472de4d01eb7d7e6ee0 by benny.kra
[mlir] Remove the default isDynamicallyLegal hook

This is redundant with the callback variant and untested. Also remove
the callback-less methods for adding a dynamically legal op, as they
are no longer useful.

Differential Revision: https://reviews.llvm.org/D106786
The file was modifiedmlir/lib/Transforms/Utils/DialectConversion.cpp
The file was modifiedmlir/include/mlir/Transforms/DialectConversion.h
The file was modifiedmlir/docs/DialectConversion.md
Commit d81a843846f4171ffe3f44b66bf3a9fda5c411cf by benny.kra
[mlir] Put back virtual ~ConversionTarget(), some users started relying on it
The file was modifiedmlir/include/mlir/Transforms/DialectConversion.h
Commit 971f4173f82da6e13ee4c5b1a0301ba0fde0d696 by Mirko.Brkusanin
[AMDGPU][GlobalISel] Insert an and with exec before s_cbranch_vccnz if necessary

While v_cmp will AND inactive lanes with 0, that is not the case for logical
operations.

This fixes a Vulkan CTS test that would hang otherwise.

Differential Revision: https://reviews.llvm.org/D105709
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-brcond.mir
Commit d510b5f199d6e7a3062b5a6ea43181c4cc00a605 by david.spickett
[lldb][AArch64] Annotate synchronous tag faults

In the latest Linux kernels synchronous tag faults
include the tag bits in their address.
This change adds logical and allocation tags to the
description of synchronous tag faults.
(asynchronous faults have no address)

Process 1626 stopped
* thread #1, name = 'a.out', stop reason = signal SIGSEGV: sync tag check fault (fault address: 0x900fffff7ff9010 logical tag: 0x9 allocation tag: 0x0)

This extends the existing description and will
show as much as it can on the rare occasion something
fails.

This change supports AArch64 MTE only but other
architectures could be added by extending the
switch at the start of AnnotateSyncTagCheckFault.
The rest of the function is generic code.

Tests have been added for synchronous and asynchronous
MTE faults.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D105178
The file was addedlldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py
The file was addedlldb/test/API/linux/aarch64/mte_tag_faults/main.c
The file was addedlldb/test/API/linux/aarch64/mte_tag_faults/Makefile
The file was modifiedlldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
The file was modifiedlldb/source/Plugins/Process/Linux/NativeThreadLinux.h
Commit d8fd2146daaa28d118fd7c29d63e817a8c955b81 by kbobyrev
NFC: Change quotes from Unicode to ASCII

This was causing some problems for Python scripts that we have.

Context: https://reviews.llvm.org/D106792
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/abseil-no-internal-dependencies.rst
Commit da61ab847577dd81d6267c532d9810fc19596033 by Amara Emerson
[AArch64][GlobalISel] More widenToNextPow2 changes, this time for arithmetic/bitwise ops.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
Commit 08d92dbbffa52db9b3fc3a871fb7feab6a0420c9 by cullen.rhodes
[AArch64][AsmParser] NFC: Parser.getTok() -> getTok()

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D106949
The file was modifiedllvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
Commit 8bf0a406087e8747383134847ab0f165e6475a97 by andrzej.warzynski
[flang][driver] Forward `-fopenmp`/`-fopenacc` to the host compiler

This patch only modifies `flang` - the bash wrapper script.

`-fopenmp`/`-fopenacc` are required to enable the OpenMP/OpenACC
extension in the frontend and to make sure that the required libraries
are linked when generating the final binary. This patch makes sure that
`-fopnemp`/`-fopenacc` is used for both unparsing and the code
generation (via the host compiler).

Differential Revision: https://reviews.llvm.org/D106871
The file was modifiedflang/tools/f18/flang.in
Commit b8f4232823d77c350ccf83cdd91b9f67fed2d31c by dvyukov
tsan: rename deadlock detector Mutex to UserMutex

It conflicts with sanitizer_common Mutex.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D107053
The file was modifiedcompiler-rt/lib/tsan/dd/dd_rtl.h
Commit 4e15ee2867756f8676aa75d77cda8542cbd7498c by dvyukov
sanitizer_common: remove BlockingMutex and RWMutex

Remove the legacy typedefs and use Mutex/Lock types directly.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D107043
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
The file was modifiedcompiler-rt/lib/tsan/dd/dd_rtl.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
The file was modifiedcompiler-rt/lib/msan/msan_interceptors.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_mutex.h
The file was modifiedcompiler-rt/lib/hwasan/hwasan_report.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cpp
The file was modifiedcompiler-rt/lib/tsan/dd/dd_rtl.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_libignore.h
Commit 0d68cfc99668e56615a8bced8826feb4535efd13 by dvyukov
tsan: store ThreadRegistry in Context by value

It's unclear why we allocate ThreadRegistry separately,
I assume it's some historical leftover.
Embed ThreadRegistry into Context.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D107045
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_debugging.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.cpp
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_rtl_report.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_mman.cpp
Commit 2537120c870c04893636f171f553024f378c2de8 by jeremy.morse
Follow-up to D105207, only salvage affine SCEVs to avoid a crash

SCEVToIterCountExpr only expects to be fed affine expressions, but
DbgRewriteSalvageableDVIs is feeding it non-affine induction variables.
Following this up with an obvious fix, will add test coverage too if
this avoids D105207 being reverted.
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit 68546c9d6fc54a7ca7ad487cd4b6a5dafea9b4f3 by aaron
bugprone-forwarding-reference-overload: support non-type template parameters

Many concepts emulation libraries, such as the one found in Range v3, tend to
use non-type template parameters for the enable_if type expression, due to
their versatility in template functions and constructors containing variadic
template parameter packs.

Unfortunately the bugprone-forwarding-reference-overload check does not
handle non-type template parameters, as was first noted in this bug report:
https://bugs.llvm.org/show_bug.cgi?id=38081

This patch fixes this long standing issue and allows for the check to be suppressed
with the use of a non-type template parameter containing enable_if or enable_if_t in
the type expression, so long as it has a default literal value.
The file was modifiedclang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-forwarding-reference-overload.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/bugprone-forwarding-reference-overload.rst
Commit 486489312743411ce2e25d7763e6d298f672f976 by sebastian.neubauer
[Utils] Do not remove comments in llc test script

When checking if two prefixes can be merged for a function,
update_llc_test_checks.py removed IR comments before comparing
llc outputs of different RUN lines.
This means, if one RUN line emited lines starting with ';' and another
RUN line emited the same lines except the ones starting with ';', both
RUNs would be merged (if they share a prefix).

However, CHECK-NEXT lines check the comments, otherwise they fail, so
the script should not merge RUNs if they contain different comments.

Differential Revision: https://reviews.llvm.org/D101312
The file was modifiedllvm/utils/update_cc_test_checks.py
The file was modifiedllvm/utils/update_llc_test_checks.py
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/amdgpu-no-merge-comments.test
The file was modifiedllvm/utils/update_analyze_test_checks.py
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_no_merge_comments.ll.expected
The file was addedllvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_no_merge_comments.ll
The file was modifiedllvm/utils/update_test_checks.py
The file was modifiedllvm/utils/UpdateTestChecks/common.py