Changes

Summary

  1. [ARM] Fix a test case typo. NFC. (details)
  2. [flang] Update tests for opaque pointers (details)
  3. [flang] Update memcpy intrinsic mangling for opaque pointers (details)
  4. [OrcV2Examples] Fix test with opaque pointers (details)
  5. [SVE] Remove custom lowering of scalable vector MGATHER & MSCATTER operations. (details)
  6. [Docs] Update default in opaque pointer docs (NFC) (details)
  7. [clang-tidy] Remove extra ";" in ModernizeModuleTest.cpp (details)
  8. [VPlan] Remove dead VPlan-native special case from BranchOnCount (NFC). (details)
  9. Fix llvm.memset semantics description (details)
  10. [mlir][SCF] Add scf.foreach_thread.parallel_insert_slice canonicalization. (details)
  11. [flang][docs] Document CMake support (details)
  12. Revert "Drop qualifiers from return types in C (DR423)" (details)
  13. Revert "cmake: use llvm dir variables for clang/utils/hmaptool" (details)
  14. [flang] Add check for conflict of BIND(C) and Parameter attributes (details)
  15. [libunwind][ci][AIX] Add libunwind to buildbot CI (details)
  16. Revert "[clang][AIX] add option mdefault-visibility-export-mapping" (details)
  17. [mlir] add decompose and generalize to structured transform ops (details)
  18. [PS5] Support r and y specifiers of freebsd_kernel_printf format strings (details)
  19. Revert "unbreak Modules/cxx20-export-import.cpp with LLVM_APPEND_VC_REV after 8c8a2679a20f" (details)
  20. Update more DR status information for C. (details)
  21. [Binary] Remove OffloadBinary from the Objects enumeration (details)
  22. [SVE] Fixed custom lowering of ISD::INSERT_SUBVECTOR. (details)
  23. [MCParser] Set default alignment value when meeting invalid align (details)
  24. [llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineOrder (details)
  25. [lldb][NFC] Move generic DWARFASTParser code out of Clang-specific code (details)
  26. [gn build] Port f9b8f422e711 (details)
  27. Tidy up `pragma comment lib` handling and testing (details)
  28. [libc++][test] Enable some more string_view tests (details)
  29. [RISCV] Fix an inconsistency with compatible load/store handling (details)
  30. [libc++] Lets to_chars use header implementation. (details)
  31. Revert "[llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineOrder" (details)
  32. [llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineOrder (details)
  33. [OpenMP][libomp] Make LIBOMP_CONFIGURED_LIBFLAGS a list instead of string (details)
  34. [OpenMP] omp_get_proc_id uses sched_getcpu fallback on FreeBSD 13.1 and above. (details)
  35. [lldb][NFC] Move non-clang specific method to the generic DWARF Parser (details)
  36. [RISCV] Add test case showing unnecessary extend after i32 smax on rv64. NFC (details)
  37. [mlir] translate memref.reshape with static shapes but dynamic dims (details)
  38. [libc++] Fix typo in comment at __optional_storage_base (details)
  39. [analyzer][NFC] Add partial specializations for ProgramStateTraits (details)
  40. [analyzer][NFC] Uplift checkers after D126801 (details)
  41. [llvm][analyzer][NFC] Introduce SFINAE for specializing FoldingSetTraits (details)
  42. [PS5] Classify __m64 as integer, matching PS4 ABI (details)
  43. [PS5] Make passing unions in registers match PS4 ABI (details)
  44. [AMDGPU] gfx11 ds instructions (details)
  45. Fix a buglet in remove_dots(). (details)
  46. scan-build-py: Change scripts to explicitly require python3 (details)
  47. [SLP]Improve shuffles cost estimation where possible. (details)
  48. [mlir:MultiOpDriver] Don't add ops which are not in the allowed list (details)
  49. [AMDGPU] gfx11 vop3 and inherited vop instructions (details)
  50. Adapt IRForTarget::RewriteObjCSelector() for D126689. (details)
  51. [mlir][sparse][bufferization] fix doc on new init operation (details)
  52. [GVN] Add test for capture tracking use limit. (details)
  53. [PS5] Apply 'packed' attribute to base classes, matching PS4 ABI (details)
  54. [PS5] Pack non-POD members in packed structs, matching PS4 ABI (details)
  55. [OpenMP][libomp] do not try to dlopen libmemkind on macOS (details)
  56. [libc++][test] Fix unused variable warning in string_view tests (details)
  57. [DAGCombiner][RISCV] Improve computeKnownBits for (smax X, C) where C is non-negative. (details)
  58. [BOLT][NFC] Fix braces in BinaryEmitter (details)
  59. [InstCombine] make pattern matching more consistent; NFC (details)
  60. [InstCombine] add tests for mul with low-bit mask operand; NFC (details)
  61. [HLSL] Add WaveActiveCountBits as Langugage builtin function for HLSL (details)
  62. [RISCV] Inline one copy of needVSETVLI into the other [NFC] (details)
  63. Adapt IRForTarget::RewriteObjCConstStrings() for D126689. (details)
  64. [Inline][Remark][NFC] Optionally provide inline context to inline (details)
  65. [mlir] Add integer range inference analysis (details)
  66. [docs] Mention LLVMContext::setOpaquePointers for C++ API (details)
  67. [ELF] Remove support for legacy .zdebug sections (details)
  68. [CaptureTracking] Increase limit and use it for all visited uses. (details)
  69. [RISCV] Add custom isel for (add X, imm) used by load/stores. (details)
  70. Support warn_unused_result on typedefs (details)
  71. cmake fill `cmake_args` when cross-compiling external project with non-clang compiler (details)
  72. [AMDGPU] Improve codegen of extractelement/insertelement in some cases (details)
  73. AMDGPU: Move SpilledReg from MFI to SIRegisterInfo (details)
  74. Revert "[mlir] Add integer range inference analysis" (details)
  75. [PS5] Ignore 'packed' on one-byte bitfields, matching PS4 (details)
  76. [Clang][OpenMP] Avoid using `IgnoreImpCasts` if possible (details)
  77. Clean "./" from __FILE__ expansion. (details)
Commit 9245c4930f40b0fd95cba6fc5eae7a2cf4aed76b by martin
[ARM] Fix a test case typo. NFC.

The test looked for the wrong string, but it happened to match as
it was a substring of the actual output.

This fixes a typo from d8e67c1cccd8fcb62230166caea744592288da17.
The file was modifiedllvm/test/CodeGen/ARM/Windows/wineh-opcodes.ll
Commit e3bfd7e52d5fb48f5fc88d9a5fe7fa0d36f66f47 by npopov
[flang] Update tests for opaque pointers

There is still one remaining failure in Lower/forall/character-1.f90.
The file was modifiedflang/test/Fir/boxchar.fir
The file was modifiedflang/test/Fir/arrayset.fir
The file was modifiedflang/test/Fir/optional.fir
The file was modifiedflang/test/Fir/rebox.fir
The file was modifiedflang/test/Lower/OpenMP/omp-ordered-threads.f90
The file was modifiedflang/test/Lower/complex-part.f90
The file was modifiedflang/test/Fir/addrof.fir
The file was modifiedflang/test/Fir/embox.fir
The file was modifiedflang/test/Fir/alloc.fir
The file was modifiedflang/test/Fir/ignore-missing-type-descriptor.fir
The file was modifiedflang/test/Lower/common-block.f90
Commit f09b0c8422d2a81c15b581ed115af66d17755ac4 by npopov
[flang] Update memcpy intrinsic mangling for opaque pointers

Flang is manually mangling names for memset/memcpy/memmove
intrinsics, so we need to update the mangling to use the opaque
pointer format (p0 instead of p0i8).
The file was modifiedflang/test/Lower/character-assignment.f90
The file was modifiedflang/test/Lower/call-copy-in-out.f90
The file was modifiedflang/test/Lower/array-expression.f90
The file was modifiedflang/test/Lower/forall/character-1.f90
The file was modifiedflang/test/Lower/allocatable-assignment.f90
The file was modifiedflang/test/Lower/pointer-references.f90
The file was modifiedflang/test/Lower/derived-assignments.f90
The file was modifiedflang/test/Lower/character-concatenation.f90
The file was modifiedflang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
The file was modifiedflang/test/Lower/array-character.f90
The file was modifiedflang/test/Lower/host-associated.f90
The file was modifiedflang/test/Lower/array-constructor-2.f90
The file was modifiedflang/test/Lower/call-parenthesized-arg.f90
The file was modifiedflang/test/Lower/entry-statement.f90
The file was modifiedflang/test/Lower/structure-constructors.f90
The file was modifiedflang/test/Lower/character-substrings.f90
The file was modifiedflang/test/Lower/Intrinsics/achar.f90
Commit bd92b7b3c1f6d423712b8b36fe593f7dfcd373cf by npopov
[OrcV2Examples] Fix test with opaque pointers

The other two modules now use opaque pointers, so make sure this
one does as well.
The file was modifiedllvm/test/Examples/OrcV2Examples/Inputs/main-mod.ll
Commit 1fe4953d8939ab4f8f0a5de060c0a35758d835a8 by paul.walker
[SVE] Remove custom lowering of scalable vector MGATHER & MSCATTER operations.

Differential Revision: https://reviews.llvm.org/D126255
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit b0ce6a0ae5e34af704f7c6f3811399b5f40f8188 by npopov
[Docs] Update default in opaque pointer docs (NFC)

Also mention a relevant C API.
The file was modifiedllvm/docs/OpaquePointers.rst
Commit 35f0890c4edce1975b17d0901607f2fba9216462 by mikael.holmen
[clang-tidy] Remove extra ";" in ModernizeModuleTest.cpp

Without this fix we get

../../clang-tools-extra/unittests/clang-tidy/ModernizeModuleTest.cpp:270:2: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
};
^
1 error generated.

when compiling with -Werror.
The file was modifiedclang-tools-extra/unittests/clang-tidy/ModernizeModuleTest.cpp
Commit 4f1c86e3d5ef2fe6787be42c2c9143363d46673b by flo
[VPlan] Remove dead VPlan-native special case from BranchOnCount (NFC).

After 05776122b682684ad this special case doesn't exist any longer.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
Commit 53efdf33f85ab4e11c25e6dc947a0ca8b075d25f by github
Fix llvm.memset semantics description

The description was referring to a ``src`` parameter probably copied over from ``llvm.memcpy``
The file was modifiedllvm/docs/LangRef.rst
Commit 311967701a2a33b2753ec5db6977f3c3ef40c46e by nicolas.vasilache
[mlir][SCF] Add scf.foreach_thread.parallel_insert_slice canonicalization.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D126761
The file was modifiedmlir/test/Dialect/SCF/canonicalize.mlir
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
Commit 72911227d4c73c19035ea9ed05f785bb691a816c by andrzej.warzynski
[flang][docs] Document CMake support

One out-of-date section is also deleted.

Differential Revision: https://reviews.llvm.org/D126712
The file was modifiedflang/docs/FlangDriver.md
Commit c745f2ce6c03bc6d1e59cac69cc15923d4400191 by aaron
Revert "Drop qualifiers from return types in C (DR423)"

This reverts commit d374b65f2da1bdd3d9a7e9ac8ed4ad5467c882f9.

The changes lose AST fidelity (reported in #55778), but also may be
improperly dropping _Atomic qualifiers. I am rolling the changes back
until I've finished discussions in WG14 about the proper resolution to
DR423.
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTest.h
The file was modifiedclang/test/SemaObjC/block-omitted-return-type.m
The file was modifiedclang/test/Sema/c89.c
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/test/Sema/function.c
The file was modifiedclang/test/Sema/warn-missing-prototypes.c
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
The file was removedclang/test/Sema/wg14-dr423.c
The file was modifiedclang/test/CodeGen/xcore-stringtype.c
The file was modifiedclang/test/Sema/block-call.c
Commit 30ad481e87ca7cd2250bd5771ab66ddfe623eb10 by npopov
Revert "cmake: use llvm dir variables for clang/utils/hmaptool"

As discussed on the review, this change breaks the standalone
clang build. When building against an installed LLVM, the
LLVM_TOOLS_BINARY_DIR cmake variable points to the location of
the installed LLVM tools, not to the cmake build directory. This
means that we would end up trying to move hmaptool into something
like /usr/bin as part of the normal build, while this should only
be happening when running an install target.

This reverts commit bf1ab1f0eb9578914343f48096229ecccd0ecf52.
The file was modifiedclang/utils/hmaptool/CMakeLists.txt
Commit e2ac99b79d6f36de93775aa683a4e439cb4b5344 by qiaopeixin
[flang] Add check for conflict of BIND(C) and Parameter attributes

The entity with BIND(C) attribute cannot be a named constant, so the
BIND(C) and parameter attributes are conflicted. Add check for it.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D126654
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was addedflang/test/Semantics/declarations02.f90
Commit dfaee3c9cfa17fce6af317ddcae89c6f6550cf94 by xingxue
[libunwind][ci][AIX] Add libunwind to buildbot CI

Summary:
This patch changes scripts to add libunwind CI on AIX. Test config file ibm-libunwind-shared.cfg.in is introduced for testing on AIX.

Reviewed by: ldionne, MaskRay, libunwind, ibc++abi

Differential Revision: https://reviews.llvm.org/D126017
The file was modifiedlibcxx/utils/ci/run-buildbot
The file was modifiedlibcxx/cmake/caches/AIX.cmake
The file was addedlibunwind/test/configs/ibm-libunwind-shared.cfg.in
Commit d42fe9aa84203a8f51b43a901d72fdc39eea69f7 by hans
Revert "[clang][AIX] add option mdefault-visibility-export-mapping"

This caused assertions, see comment on the code review:

llvm/clang/lib/AST/Decl.cpp:1510:
clang::LinkageInfo clang::LinkageComputer::getLVForDecl(const clang::NamedDecl *, clang::LVComputationKind):
Assertion `D->getCachedLinkage() == LV.getLinkage()' failed.

> The option mdefault-visibility-export-mapping is created to allow
> mapping default visibility to an explicit shared library export
> (e.g. dllexport). Exactly how and if this is manifested is target
> dependent (since it depends on how they map dllexport in the IR).
>
> Three values are provided for the option:
>
> * none: the default and behavior without the option, no additional export linkage information is created.
> * explicit: add the export for entities with explict default visibility from the source, including RTTI
> * all: add the export for all entities with default visibility
>
> This option is useful for targets which do not export symbols as part of
> their usual default linkage behaviour (e.g. AIX), such targets
> traditionally specified such information in external files (e.g. export
> lists), but this mapping allows them to use the visibility information
> typically used for this purpose on other (e.g. ELF) platforms.
>
> Reviewed By: MaskRay
>
> Differential Revision: https://reviews.llvm.org/D126340

This reverts commit 8c8a2679a20f621994fa904bcfc68775e7345edc.
The file was removedclang/test/CodeGenCXX/mdefault-visibility-export-mapping.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/docs/UsersManual.rst
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was removedclang/test/CodeGenCXX/mdefault-visibility-export-mapping-alias.cpp
The file was removedclang/test/CodeGenCXX/mdefault-visibility-export-mapping-rtti.cpp
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was removedclang/test/CodeGen/mdefault-visibility-export-mapping.c
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.h
The file was modifiedclang/include/clang/Basic/LangOptions.h
Commit ce2e198bc2546f24a64fbeff62bf1489bcc53c27 by zinenko
[mlir] add decompose and generalize to structured transform ops

These ops complement the tiling/padding transformations by transforming
higher-level named structured operations such as depthwise convolutions into
lower-level and/or generic equivalents that are better handled by some
downstream transformations.

Differential Revision: https://reviews.llvm.org/D126698
The file was modifiedmlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/test/python/dialects/transform_structured_ext.py
The file was modifiedmlir/python/mlir/dialects/_structured_transform_ops_ext.py
The file was addedmlir/test/Dialect/Linalg/transform-op-generalize.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
The file was addedmlir/test/Dialect/Linalg/transform-op-decompose.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
Commit b2c6251c06700bfe8a69b780cb27928d3ba029db by paul.robinson
[PS5] Support r and y specifiers of freebsd_kernel_printf format strings
The file was modifiedclang/lib/AST/FormatString.cpp
The file was modifiedclang/test/Sema/format-strings-freebsd.c
Commit e37421669e223ac4e67a0158eae7d78af2ff0b88 by thakis
Revert "unbreak Modules/cxx20-export-import.cpp with LLVM_APPEND_VC_REV after 8c8a2679a20f"

This reverts commit 4463bd0f89181234e0cef982e21de2e96038f873.
8c8a2679a20f was reverted in d42fe9aa8420.
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h
Commit 0b46121c4130eec702066bca65802c21a9517539 by aaron
Update more DR status information for C.

This adds new files to track DRs 100-199 and 400-499, but the file
contents are still a work in progress. It also updates the associated
status in the DR tracking page.
The file was addedclang/test/C/drs/dr4xx.c
The file was addedclang/test/C/drs/dr1xx.c
The file was modifiedclang/test/C/drs/dr0xx.c
The file was modifiedclang/www/c_dr_status.html
Commit 6bdf352ed8fc5926e0f86fd6aa6b82300a4abc1c by jhuber6
[Binary] Remove OffloadBinary from the Objects enumeration

Summary:
We use the beginning and end of this enumeration to determine what is
and isn't an object format. The enumeration for the OffloadBinary was
put here by mistake which led to it being mistakenly classified as an
Object file.
The file was modifiedllvm/include/llvm/Object/Binary.h
Commit 48ea26a3878f6e45d4c29f09a1ef0e71301a08fd by paul.walker
[SVE] Fixed custom lowering of ISD::INSERT_SUBVECTOR.

LowerINSERT_SUBVECTOR emits AArch64ISD::UUNPK## when lowering
scalable vector floating point INSERT_SUBVECTOR. However, these
nodes only make sense for integer types and thus isel patterns do
not exist for floating point, which leads to isel failures.

This patch ensures floating point operands are cast to integer
before the core lowering takes place.

Fixes: #55037

Differential Revision: https://reviews.llvm.org/D126487
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-insert-vector.ll
Commit 4d73c46ccf863d49baad930e6b32bb3e4aa8c3ae by sguelton
[MCParser] Set default alignment value when meeting invalid align

Upon invalid alignment value, still set a default valid alignment value to avoid
hitting later asserts.

Fix #55273

Differential Revision: https://reviews.llvm.org/D125688
The file was modifiedllvm/test/MC/AsmParser/directive_align.s
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp
Commit 50de7f1e7787bf327d1d04c4daab97c1c180b58c by taolq
[llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineOrder

This patch introduces the abstract base class InlinePriority to serve as
the comparison function for the priority queue.  A derived class, such
as SizePriority, may choose to cache the priorities for different
functions for performance reasons.

This design shields the type used for the priority away from classes
outside InlinePriority and classes derived from it.  In turn,
PriorityInlineOrder no longer needs to be a template class.

Reviewed By: kazu

Differential Revision: https://reviews.llvm.org/D126300
The file was modifiedllvm/lib/Transforms/IPO/ModuleInliner.cpp
The file was modifiedllvm/include/llvm/Analysis/InlineOrder.h
Commit f9b8f422e711efbf225e4f0f3002396cfbe48118 by contact
[lldb][NFC] Move generic DWARFASTParser code out of Clang-specific code

This patch moves ParseChildArrayInfo out of DWARFASTParserClang in order
to decouple Clang-specific logic from DWARFASTParser.

Reviewed By: clayborg

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

Signed-off-by: Luís Ferreira <contact@lsferreira.net>
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was addedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
Commit 883b09b6647ea50f0e7292d92d9c38607d005c3b by llvmgnsyncbot
[gn build] Port f9b8f422e711
The file was modifiedllvm/utils/gn/secondary/lldb/source/Plugins/SymbolFile/DWARF/BUILD.gn
Commit 5a6352bc70fb0f309de22ea75ef132f32d8be9b4 by paul.robinson
Tidy up `pragma comment lib` handling and testing

A bit of historical research shows that over the years:
Commit 99efc036 added `pragma comment lib` support for PS4.
Commit fd4db533 added `pragma comment lib` support for all ELF targets.
Commit 1d16515f reworked dependent-library support for all ELF targets.

The upshot is that some PS4-specific code became dead, and the
testing became somewhat fragmented.  I've removed the dead code and
combined the previous PS4-specific and linux-specific tests for the
diagnostics into one generic ELF test.
Also added a couple of PS5 runs while I was in there.
The file was modifiedclang/test/CodeGen/pragma-comment.c
The file was removedclang/test/Preprocessor/pragma-comment-linux.c
The file was modifiedclang/lib/Parse/ParsePragma.cpp
The file was removedclang/test/Preprocessor/pragma_ps4.c
The file was addedclang/test/Preprocessor/pragma-comment-elf.c
Commit 6423a9f0ec8ba70049ea76e7bcfc9a9d1a54e826 by joeloser93
[libc++][test] Enable some more string_view tests

Some test cases for `ends_with.ptr.pass` and `starts_with.ptr.pass` for
`string_view` are commented out, but work just fine. Uncomment them.

Differential Revision: https://reviews.llvm.org/D126849
The file was modifiedlibcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
The file was modifiedlibcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
Commit dcdb0bf25bc83e4ae4e7da87311dd93030e9c9ce by listmail
[RISCV] Fix an inconsistency with compatible load/store handling

Once we've computed the incoming predecessor state, we should use the same compatibility check with knowledge of MI as we did in phase 2 in order to be consistent across all phases.

Differential Revision: https://reviews.llvm.org/D126574
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.mir
The file was modifiedllvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
Commit 89818f2dc0b6edeaf9f74ada513ebe489de8ba40 by koraq
[libc++] Lets to_chars use header implementation.

This removes the duplicated code from the dylib. Instead the dylib will
call the new functions in the header. Since this code is unneeded it's
removed from the unstable ABI.

Depends on D125704

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D125761
The file was modifiedlibcxx/src/charconv.cpp
The file was modifiedlibcxx/src/include/ryu/digit_table.h
The file was modifiedlibcxx/include/__config
Commit 5c6ed60c517c47b25b6b25d8ac3666d0e746b0c3 by taolq
Revert "[llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineOrder"

This reverts commit 50de7f1e7787bf327d1d04c4daab97c1c180b58c.
The file was modifiedllvm/include/llvm/Analysis/InlineOrder.h
The file was modifiedllvm/lib/Transforms/IPO/ModuleInliner.cpp
Commit 14e8add939775c069d45aa60b48d86f960ed0553 by taolq
[llvm][ModuleInliner] Refactor InlineSizePriority and PriorityInlineOrder

This patch introduces the abstract base class InlinePriority to serve as
the comparison function for the priority queue.  A derived class, such
as SizePriority, may choose to cache the priorities for different
functions for performance reasons.

This design shields the type used for the priority away from classes
outside InlinePriority and classes derived from it.  In turn,
PriorityInlineOrder no longer needs to be a template class.

Reviewed By: kazu

Differential Revision: https://reviews.llvm.org/D126300
The file was modifiedllvm/lib/Transforms/IPO/ModuleInliner.cpp
The file was modifiedllvm/include/llvm/Analysis/InlineOrder.h
Commit e27ce281399dca8b08b6ca593172a1bd5dbdd5c1 by jonathan.l.peyton
[OpenMP][libomp] Make LIBOMP_CONFIGURED_LIBFLAGS a list instead of string

When configuring llvm with the openmp subproject, the build for the omp
target fails if LIBOMP_CONFIGURED_LIBFLAGS contains more than one item.
LIBOMP_CONFIGURED_LIBFLAGS should be a semicolon-separated list instead
of a string with items separated by spaces.

Differential Revision: https://reviews.llvm.org/D125370
The file was modifiedopenmp/runtime/cmake/LibompHandleFlags.cmake
Commit 2ba5d820e2b0e5016ec706e324060a329f9a83a3 by David CARLIER
[OpenMP] omp_get_proc_id uses sched_getcpu fallback on FreeBSD 13.1 and above.

Reviewers: jlpeyton, jdoerfert

Reviewed-By: jlpeyton

Differential-Revision: https://reviews.llvm.org/D126408
The file was modifiedopenmp/runtime/src/ompt-general.cpp
The file was modifiedopenmp/runtime/src/kmp_os.h
Commit 3da4f9c57b15b3d76b8acbaa8c2b420ad525fa25 by contact
[lldb][NFC] Move non-clang specific method to the generic DWARF Parser

This patch renames DW_ACCESS_to_AccessType function and move it to the abstract
DWARFASTParser, since there is no clang-specific code there. This is useful for
plugins other than Clang.

Reviewed By: shafik, bulbazord

Differential Revision: https://reviews.llvm.org/D114719
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h
Commit 01ba470826a84a8d73e88916605b838bb962f52a by craig.topper
[RISCV] Add test case showing unnecessary extend after i32 smax on rv64. NFC

One of the operands of the smax is a positive value so computeKnownBits
determines the result of the smax must always be positive. This allows
DAG combiner to convert the sign extend to zero extend before type
legalization.

After type legalization the smax is promoted to i64 by sign extending
its inputs and the zero extend becomes an AND instruction. We are unable
to remove the AND at this point and it becomes a pair of shifts or a
zext.w.

The result of smax has as many sign bits as the minimum of its inputs.
Had we kept the sign extend instead of turning it into a zero extend
it would be removed by DAG combiner after type legalization.
The file was modifiedllvm/test/CodeGen/RISCV/min-max.ll
Commit 5fee1799f4d8da59c251e2d04172fc2f387cbe54 by ashay
[mlir] translate memref.reshape with static shapes but dynamic dims

Prior to this patch, the lowering of memref.reshape operations to the
LLVM dialect failed if the shape argument had a static shape with
dynamic dimensions.  This patch adds the necessary support so that when
the shape argument has dynamic values, the lowering probes the dimension
at runtime to set the size in the `MemRefDescriptor` type.  This patch
also computes the stride for dynamic dimensions by deriving it from the
sizes of the inner dimensions.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D126604
The file was modifiedmlir/test/Conversion/MemRefToLLVM/convert-static-memref-ops.mlir
The file was modifiedmlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
Commit 7b291b6f5095bff1ef33e806aaea58f5b3156ce8 by koraq
[libc++] Fix typo in comment at __optional_storage_base

Small typo fix(es) for struct definition of __optional_storage_base for
a reference type.

Reviewed By: #libc, jloser, philnik

Differential Revision: https://reviews.llvm.org/D126621
The file was modifiedlibcxx/include/optional
Commit 33ca5a447e7f0f9778f5adc96e24a1ef4a899213 by balazs.benics
[analyzer][NFC] Add partial specializations for ProgramStateTraits

I'm also hoisting common code from the existing specializations into a
common trait impl to reduce code duplication.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D126801
The file was modifiedclang/lib/StaticAnalyzer/Checkers/cert/InvalidPtrChecker.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
Commit cf1f1b7240a35c5e1d4bc2cd3626ba8432949c98 by balazs.benics
[analyzer][NFC] Uplift checkers after D126801

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D126802
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
Commit 7d24641f8916c2af16870a7b8628c1458cf15462 by balazs.benics
[llvm][analyzer][NFC] Introduce SFINAE for specializing FoldingSetTraits

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D126803
The file was modifiedclang/include/clang/Basic/SourceLocation.h
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
The file was modifiedllvm/include/llvm/ADT/FoldingSet.h
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
Commit cc756f91c3803a7f91868ecf64929a90399cb4bb by paul.robinson
[PS5] Classify __m64 as integer, matching PS4 ABI
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedclang/test/CodeGen/X86/3dnow-builtins.c
Commit dc5175adef0804eb396690ea3fe35c6d450e6e64 by paul.robinson
[PS5] Make passing unions in registers match PS4 ABI
The file was modifiedclang/test/CodeGen/X86/avx-union.c
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit e4870c835791faa7b71f66820fdb6bcdcec636d7 by Joseph.Nash
[AMDGPU] gfx11 ds instructions

MC layer support for ds instructions

Contributors:
Piotr Sobczak <Piotr.Sobczak@amd.com>

Patch 14/N for upstreaming of AMDGPU gfx11 architecture.

Depends on D126463

Reviewed By: arsenm, #amdgpu

Differential Revision: https://reviews.llvm.org/D126468
The file was addedllvm/test/MC/AMDGPU/gfx11_ds.s
The file was modifiedllvm/lib/Target/AMDGPU/DSInstructions.td
The file was addedllvm/test/MC/Disassembler/AMDGPU/ds_gfx11.txt
Commit 35ab2a11bb55c39ef9fe389aeacc14bb55c5a12d by rnk
Fix a buglet in remove_dots().

The function promises to canonicalize the path, but neglected to do so
for the root component.

For example, calling remove_dots("/tmp/foo.c", Style::windows_backslash)
resulted in "/tmp\foo.c". Now it produces "\tmp\foo.c".

Also fix FIXME in the corresponding test.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D126412
The file was modifiedllvm/unittests/Support/Path.cpp
The file was modifiedllvm/unittests/Support/VirtualFileSystemTest.cpp
The file was modifiedclang/unittests/Basic/FileManagerTest.cpp
The file was modifiedllvm/lib/Support/Path.cpp
The file was modifiedclang/unittests/Frontend/PCHPreambleTest.cpp
Commit 4c1e487c413810655757ea19d0cf3d4f5c40898e by anders
scan-build-py: Change scripts to explicitly require python3

The "#!" line in all scan-build-py scripts were using just bare
"/usr/bin/python" which according to PEP-0394 can be either python3,
python2 or not exist at all.

E.g in latest debian and ubuntu releases "/usr/bin/python" does not
exist at all by default and user must install python-is-python2 or
python-is-python3 packages to get the bare version less "python"
command.

Until recently (70b06fe8a186 "scan-build-py: Force the opening in utf-8"
changed "libscanbuild") these scripts worked in both python2 and
python3, but now they (rightfully) are python3 only, and broke on
systems where the "python" command means python2.

By changing the "#!" to be "python3" it is not only explicit that the
scripts require python3 it also works on systems where "python" command
is python2 or nonexistent.

Differential Revision: https://reviews.llvm.org/D126804
The file was modifiedclang/tools/scan-build-py/bin/scan-build
The file was modifiedclang/tools/scan-build-py/libexec/intercept-cc
The file was modifiedclang/tools/scan-build-py/libexec/intercept-c++
The file was modifiedclang/tools/scan-build-py/bin/analyze-build
The file was modifiedclang/tools/scan-build-py/libexec/analyze-c++
The file was modifiedclang/tools/scan-build-py/libexec/analyze-cc
The file was modifiedclang/tools/scan-build-py/bin/intercept-build
Commit 9980c9971892378ea82475e000de8df210a58e69 by a.bataev
[SLP]Improve shuffles cost estimation where possible.

Improved/fixed cost modeling for shuffles by providing masks, improved
cost model for non-identity insertelements.

Differential Revision: https://reviews.llvm.org/D115462
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/resched.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/malformed_phis.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll
Commit 2aeffc6d8ddf3a6eab3b0481869b73678d91856c by chiahungduan
[mlir:MultiOpDriver] Don't add ops which are not in the allowed list

In strict mode, only the new inserted operation is allowed to add to the
worklist. Before this change, it would add the users of a replaced op
and it didn't check if the users are allowed to be pushed into the
worklist

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D126899
The file was modifiedmlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
Commit 3732cd59bea37b25d346393813f8fbddea96257b by Joseph.Nash
[AMDGPU] gfx11 vop3 and inherited vop instructions

This patch includes MC layer support for VOP3 encoded instructions and generic VOP support
classes.
Some VOP1 and VOP2 instructions which share an encoding with gfx10 and are using
the AssemblerPredicate = isGFX10Plus are also enabled. That predicate
will be changed to isGFX10Only in a later patch.

Patch 15/N for upstreaming of AMDGPU gfx11 architecture.

Depends on D126468

Reviewed By: dp

Differential Revision: https://reviews.llvm.org/D126475
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_all.txt
The file was addedllvm/test/MC/AMDGPU/gfx11_vop123.s
The file was modifiedllvm/lib/Target/AMDGPU/VOPInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
Commit 8eed95c83ecd0e42eaaca4f6591faafa4dad0d88 by Adrian Prantl
Adapt IRForTarget::RewriteObjCSelector() for D126689.

With opaque pointers, the LLVM IR expected by this function changed.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Commit bf7dbc2a30e8f71fde39cef2126baacd05f24b40 by ajcbik
[mlir][sparse][bufferization] fix doc on new init operation

The example was still using the -now- removed sparse_tensor.init_tensor.
Also, I made the input operands of the matrix multiplication sparse too
(since it looks a bit strange to multiply two dense matrices into a sparse).

Reviewed By: bixia

Differential Revision: https://reviews.llvm.org/D126897
The file was modifiedmlir/include/mlir/Dialect/Bufferization/IR/BufferizationOps.td
Commit 44c86e5cdc625ff61a467dfe38ac15dfa2913070 by flo
[GVN] Add test for capture tracking use limit.

Test for capture-tracking-max-uses-to-explore, adjusted in D126236.
The file was addedllvm/test/Transforms/GVN/capture-tracking-limit.ll
Commit bb7835e2a7fbb12d711736862e75497c83a45be2 by paul.robinson
[PS5] Apply 'packed' attribute to base classes, matching PS4 ABI
The file was modifiedclang/test/CodeGenCXX/alignment.cpp
The file was modifiedclang/lib/AST/RecordLayoutBuilder.cpp
Commit 30b7ffe74e66aa0c33c689429c593f261c2c9d13 by paul.robinson
[PS5] Pack non-POD members in packed structs, matching PS4 ABI
The file was modifiedclang/lib/AST/RecordLayoutBuilder.cpp
The file was modifiedclang/test/SemaCXX/class-layout.cpp
Commit 5d25dbff677e2854a285019a4cfbda969e64ace2 by jonathan.l.peyton
[OpenMP][libomp] do not try to dlopen libmemkind on macOS

The memkind library is only available for linux. Calling dlopen here
can also be problematic in a client app that fork'ed.

Differential Revision: https://reviews.llvm.org/D126579
The file was modifiedopenmp/runtime/src/kmp_alloc.cpp
Commit 4be36dc77fc96766988344b54f6ab5aade86e1c6 by joeloser93
[libc++][test] Fix unused variable warning in string_view tests

In 6423a9f0ec8ba70049ea76e7bcfc9a9d1a54e826, I accidentally thought this was
getting tested, but these variables are unused. Just remove the lines instead of
leaving them commented out.

Differential Revision: https://reviews.llvm.org/D126901
The file was modifiedlibcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
The file was modifiedlibcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
Commit fa20bf1636a8f3cbcbabcf6cdc21a817935201f7 by craig.topper
[DAGCombiner][RISCV] Improve computeKnownBits for (smax X, C) where C is non-negative.

If C is non-negative, the result of the smax must also be
non-negative, so all sign bits of the result are 0.

This allows DAGCombiner to remove a zext_inreg in the modified test.
This zext_inreg started as a sext that became zext before type
legalization then was promoted to a zext_inreg.

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D126896
The file was modifiedllvm/test/CodeGen/RISCV/min-max.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit 986e5dedf2e0b505e43b57436037401479927326 by maks
[BOLT][NFC] Fix braces in BinaryEmitter

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D126844
The file was modifiedbolt/lib/Core/BinaryEmitter.cpp
Commit 8689463bfb013af5c0e6d01b80f4582f7d269a08 by spatel
[InstCombine] make pattern matching more consistent; NFC

We could go either way on this and several similar matches.
Just matching as a binop is possibly slightly more efficient;
we don't need to re-confirm the opcode of the instruction.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
Commit 1882c25f124647ba5b5d798dc00c4cd9308536bf by spatel
[InstCombine] add tests for mul with low-bit mask operand; NFC
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit 6bea9ff91378571b3bedcdc12fac7bb916371871 by python3kgae
[HLSL] Add WaveActiveCountBits as Langugage builtin function for HLSL

One clang builtins are introduced
uint WaveActiveCountBits( bool bBit ) as Langugage builtin function for HLSL.

The detail for WaveActiveCountBits is at
https://github.com/microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics#uint-waveactivecountbits-bool-bbit-

This is only clang part change to make WaveActiveCountBits into AST.
llvm intrinsic for WaveActiveCountBits will be add in separate PR.

Reviewed By: Anastasia

Differential Revision: https://reviews.llvm.org/D126857
The file was modifiedclang/include/clang/Basic/Builtins.h
The file was addedclang/test/SemaHLSL/Wave.hlsl
The file was modifiedclang/include/clang/Basic/Builtins.def
Commit 76ac916d634436102c86da6cb89584b675984407 by listmail
[RISCV] Inline one copy of needVSETVLI into the other [NFC]

Calling the non-MI version directly was unsound (as fixed in dcdb0bf2), so remove that version to decrease likelyhood of future mistakes.
The file was modifiedllvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
Commit e7b929d756504c70d3ab0d0ba82f28eec7f7b363 by Adrian Prantl
Adapt IRForTarget::RewriteObjCConstStrings() for D126689.

With opaque pointers, the LLVM IR expected by this function changed.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Commit 8601f269f1094fd833db6bd10335441ecee99cf5 by mingmingl
[Inline][Remark][NFC] Optionally provide inline context to inline
advisor.

This patch has no functional change, and merely a preparation patch for
main functional change. The motivating use case is to annotate inline
remark pass name with context information (e.g. prelink or postlink,
CGSCC or always-inliner), see D125495 for more details.

Differential Revision: https://reviews.llvm.org/D126824
The file was modifiedllvm/lib/Analysis/InlineAdvisor.cpp
The file was modifiedllvm/include/llvm/Analysis/InlineAdvisor.h
Commit 1350c9887dca5ba80af8e3c1e61b29d6696eb240 by Krzysztof.Drewniak
[mlir] Add integer range inference analysis

This commit defines a dataflow analysis for integer ranges, which
uses a newly-added InferIntRangeInterface to compute the lower and
upper bounds on the results of an operation from the bounds on the
arguments. The range inference is a flow-insensitive dataflow analysis
that can be used to simplify code, such as by statically identifying
bounds checks that cannot fail in order to eliminate them.

The InferIntRangeInterface has one method, inferResultRanges(), which
takes a vector of inferred ranges for each argument to an op
implementing the interface and a callback allowing the implementation
to define the ranges for each result. These ranges are stored as
ConstantIntRanges, which hold the lower and upper bounds for a
value. Bounds are tracked separately for the signed and unsigned
interpretations of a value, which ensures that the impact of
arithmetic overflows is correctly tracked during the analysis.

The commit also adds a -test-int-range-inference pass to test the
analysis until it is integrated into SCCP or otherwise exposed.

Finally, this commit fixes some bugs relating to the handling of
region iteration arguments and terminators in the data flow analysis
framework.

Depends on D124020

Depends on D124021

Reviewed By: rriddle, Mogball

Differential Revision: https://reviews.llvm.org/D124023
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/include/mlir/Interfaces/InferIntRangeInterface.h
The file was modifiedmlir/include/mlir/Interfaces/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/lib/Analysis/DataFlowAnalysis.cpp
The file was addedmlir/lib/Interfaces/InferIntRangeInterface.cpp
The file was addedmlir/include/mlir/Analysis/IntRangeAnalysis.h
The file was addedmlir/test/lib/Transforms/TestIntRangeInference.cpp
The file was modifiedmlir/lib/Analysis/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.h
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was addedmlir/unittests/Interfaces/InferIntRangeInterfaceTest.cpp
The file was addedmlir/include/mlir/Interfaces/InferIntRangeInterface.td
The file was addedmlir/lib/Analysis/IntRangeAnalysis.cpp
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was modifiedmlir/unittests/Interfaces/CMakeLists.txt
The file was addedmlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
Commit dfa9221aa7e9c8daa6ebc92fa0c99521d3c4bc56 by i
[docs] Mention LLVMContext::setOpaquePointers for C++ API
The file was modifiedllvm/docs/OpaquePointers.rst
Commit e09f77d39426dfd1a2cb05ac9de070220a3ef26f by i
[ELF] Remove support for legacy .zdebug sections

.zdebug is unlikely used any longer: gcc -gz switched from legacy
.zdebug to SHF_COMPRESSED with binutils 2.26 (2016), which has been
several years. clang 14 dropped -gz=zlib-gnu support. According to
Debian Code Search (`gz=zlib-gnu`), no project uses -gz=zlib-gnu.

Remove .zdebug support to (a) simplify code and (b) allow removal of llvm-mc's
--compress-debug-sections=zlib-gnu.

In case the old object file `a.o` uses .zdebug, run `objcopy --decompress-debug-sections a.o`

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D126793
The file was modifiedlld/test/ELF/strip-debug.s
The file was modifiedlld/test/ELF/compressed-debug-input.s
The file was modifiedlld/ELF/InputSection.h
The file was modifiedlld/docs/ReleaseNotes.rst
The file was removedlld/test/ELF/relocatable-compressed-input.s
The file was modifiedlld/ELF/InputSection.cpp
Commit 78c6b1488f3022906d5d35212eb5ebe00143bbe6 by flo
[CaptureTracking] Increase limit and use it for all visited uses.

Currently the MaxUsesToExplore limit only applies to the number of users
per value, not the total number of users to explore.

The current limit of 20 pessimizes IR with opaque pointers in some
cases. Without opaque pointers, we have deeper pointer def-use chains in
general due to extra bitcasts and geps for structs with index 0.

With opaque pointers the def-use chain is not as deep but wider, due to
bitcasts & 0-geps missing.

To improve the situation for opaque pointers, this patch does 2 things:

1. Apply the limit to the total number of uses visited. From the
    wording in the description of the option it seems like this may be
    the original intention. With the current implementation we could
    still end up walking a lot of uses.
2. Increase the limit to 100. This is quite arbitrary, but enables
    a good number of additional optimizations.

Those adjustments have a noticeable compile-time impact though. In part
that is likely due to additional transformations (and conversely
the current baseline misses optimizations after switching to opaque
pointers).

This recovers some regressions that showed up after enabling opaque
pointers.

Limit=100:

* NewPM-O3: +0.21%
* NewPM-ReleaseThinLTO: +0.87%
* NewPM-ReleaseLTO-g: +0.46%

https://llvm-compile-time-tracker.com/compare.php?from=2e50ecb2ef4e1da1aeab05bcf66380068e680991&to=7e6fbe519d958d09f32f01d5d44a622f551e2031&stat=instructions

Limit=60:

* NewPM-O3: +0.14%
* NewPM-ReleaseThinLTO: +0.41%
* NewPM-ReleaseLTO-g: +0.21%

https://llvm-compile-time-tracker.com/compare.php?from=aeb19817d66f1a15754163c7f48e01e9ebdd6d45&to=520563fdc146319aae90d06f88d87f2e9e1247b7&stat=instructions

Limit=40:
* NewPM-O3: +0.11%
* NewPM-ReleaseThinLTO: +0.12%
* NewPM-ReleaseLTO-g: +0.09%

https://llvm-compile-time-tracker.com/compare.php?from=aeb19817d66f1a15754163c7f48e01e9ebdd6d45&to=c9182576e9fe3f1c84a71479665aef91a416318c&stat=instructions

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D126236
The file was modifiedllvm/lib/Analysis/CaptureTracking.cpp
The file was modifiedllvm/test/Transforms/GVN/capture-tracking-limit.ll
Commit dbead2388b48c1730f54f9aef074a81254573797 by craig.topper
[RISCV] Add custom isel for (add X, imm) used by load/stores.

If the imm is out of range for an ADDI, we will materialize it in
a register using multiple instructions. If the ADD is used by a
load/store, doPeepholeLoadStoreADDI can try to pull an ADDI from
the constant materialization into the load/store offset. This only
works if the ADD has a single use, otherwise the peephole would have
to rebuild multiple nodes.

This patch instead tries to solve the problem when the add is selected.
We check that the add is only used by loads/stores and if it is
we will select it to (ADDI (ADD X, Imm-Lo12), Lo12). This will enable
the simple case in doPeepholeLoadStoreADDI that can bypass an ADDI
used as a pointer. As a result we can remove the more complicated
peephole from doPeepholeLoadStoreADDI.

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D126576
The file was modifiedllvm/test/CodeGen/RISCV/mem.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/RISCV/split-offsets.ll
The file was modifiedllvm/test/CodeGen/RISCV/mem64.ll
Commit cb08f4aa4467cf562b62e542725f5351c5482495 by dblaikie
Support warn_unused_result on typedefs

While it's not as robust as using the attribute on enums/classes (the
type information may be lost through a function pointer, a declaration
or use of the underlying type without using the typedef, etc) but I
think there's still value in being able to attribute a typedef and have
all return types written with that typedef pick up the
warn_unused_result behavior.

Specifically I'd like to be able to annotate LLVMErrorRef (a wrapper for
llvm::Error used in the C API - the underlying type is a raw pointer, so
it can't be attributed itself) to reduce the chance of unhandled errors.

Differential Revision: https://reviews.llvm.org/D102122
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/include/clang/Basic/AttributeCommonInfo.h
The file was modifiedclang/lib/Basic/Attributes.cpp
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/test/Sema/c2x-nodiscard.c
The file was modifiedclang/test/SemaCXX/warn-unused-result.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p1.cpp
The file was modifiedclang/test/Sema/unused-expr.c
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
Commit 4e1b89064f62c9df012a5c390aec861368ae8112 by Saleem Abdulrasool
cmake fill `cmake_args` when cross-compiling external project with non-clang compiler

This makes it possible to crosscompile runtimes with cl.exe on Windows.

An external project is completely misconfigured otherwise because
cmake_args is set only for native builds or builds crosscompiled with
clang.

Differential Revision: https://reviews.llvm.org/D122578
Reviewed By: beanz, compnerd
The file was modifiedllvm/cmake/modules/LLVMExternalProjectUtils.cmake
Commit 2dfe41944658a006dc3f89316b1448cfec0131c6 by julien.pages
[AMDGPU] Improve codegen of extractelement/insertelement in some cases

This patch improves the codegen of extractelement and insertelement for vector
containing 8 elements. Before, a dag combine transformation was generating a
sequence of 8 select/cmp.
This patch changes the upper limit for this transformation and the movrel
instruction will eventually be used instead. Extractlement/insertelement for
vectors containing less than 8 elements are unchanged.

Differential Revision: https://reviews.llvm.org/D126389
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
Commit dd7e407d81081b06bc792bc436adfcb583ed9902 by Matthew.Arsenault
AMDGPU: Move SpilledReg from MFI to SIRegisterInfo

This isn't the most natural place for it, but it avoids a circular
include dependency in an out of tree patch.
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
Commit 4e5ce2056e3e85f109a074e80bdd23a10ca2bed9 by joker.eph
Revert "[mlir] Add integer range inference analysis"

This reverts commit 1350c9887dca5ba80af8e3c1e61b29d6696eb240.

Shared library build is broken with undefined references.
The file was removedmlir/test/lib/Transforms/TestIntRangeInference.cpp
The file was removedmlir/include/mlir/Analysis/IntRangeAnalysis.h
The file was removedmlir/lib/Analysis/IntRangeAnalysis.cpp
The file was modifiedmlir/unittests/Interfaces/CMakeLists.txt
The file was modifiedmlir/lib/Analysis/CMakeLists.txt
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was removedmlir/include/mlir/Interfaces/InferIntRangeInterface.h
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.h
The file was modifiedmlir/lib/Analysis/DataFlowAnalysis.cpp
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/include/mlir/Interfaces/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was removedmlir/unittests/Interfaces/InferIntRangeInterfaceTest.cpp
The file was removedmlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
The file was removedmlir/include/mlir/Interfaces/InferIntRangeInterface.td
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was removedmlir/lib/Interfaces/InferIntRangeInterface.cpp
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
Commit aa1cdf87b5a97c2476a80f3aa6ac5af3e5ec0494 by paul.robinson
[PS5] Ignore 'packed' on one-byte bitfields, matching PS4
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/test/Sema/struct-packed-align.c
Commit 3a96256b7e292de15ad57438202aeea4818956ba by i
[Clang][OpenMP] Avoid using `IgnoreImpCasts` if possible

This patch removes all `IgnoreImpCasts` in Sema, and only uses it if necessary. If the expression is not of the same type as the pointer value, a cast is inserted.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D126602
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
Commit 4ad17d2e96a382e5f595bab30920ba26762a6fa9 by ayzhao
Clean "./" from __FILE__ expansion.

This is alternative to https://reviews.llvm.org/D121733
and helps with Clang header modules in which FILE
may expand to "./foo.h" or "foo.h" depending on whether the file was
included directly or not.

Only do this when UseTargetPathSeparator is true, as we are already
changing the path in that case.

Reviewed By: ayzhao

Differential Revision: https://reviews.llvm.org/D126396
The file was modifiedclang/lib/Lex/PPMacroExpansion.cpp