Changes

Summary

  1. Add mlir builder for s390x (details)
  2. Fix builder syntax: the cmake invocation does not include shell expansion and quotes were left as-is in the arg list (details)
Commit 60bd268172440de2e96c188eb7c22e76a630b24a by ulrich.weigand
Add mlir builder for s390x

Differential Revision: https://reviews.llvm.org/D109745
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
The file was modifiedbuildbot/osuosl/master/config/status.py (diff)
Commit 5bf4dc40dbf8491c4afcf15233c989b56f83d706 by joker.eph
Fix builder syntax: the cmake invocation does not include shell expansion and quotes were left as-is in the arg list
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. [ORC-RT] Add target dependencies to ORC-RT regression tests. (details)
  2. [ORC][examples] Port LLJITWithRemoteDebugging to SimpleRemoteEPC (details)
  3. [fir][NFC] Rename operand of ArrayCoorOp (details)
  4. [OpenCL] Fix as_type3 invalid store creation (details)
  5. [VP] Vector predicated vector splice intrinsic (details)
  6. [libcxx] Run u16string tests for gdb pretty printers (details)
  7. [Bazel] fix for aa53785f23b2b89a9a423af131697b1f7c92869f (details)
  8. [lldb/gdb-remote] Remove last_stop_packet_mutex (details)
  9. [Flang] Fix failing plugin tests (details)
  10. [AArch64][GlobalISel] Make some vector G_SMULH/G_UMULH legal. (details)
  11. [llvm-objcopy] Rename relocation sections together with their targets. (details)
  12. [RemoveRedundantDebugValues] Enable machine verification after this pass (details)
  13. [AMDGPU] Require AMDGPU target for ASAN instrumentation tests (details)
  14. [AArch64][GlobalISel] Add selection tests for vector G_UMULH/G_SMULH. (details)
  15. [X86] Fix handling of i128<->fp on Windows (details)
  16. [AArch64][SVE] Fix extract_subvector patterns for unpacked fp types. (details)
  17. [SelectionDAG] Make WidenVecRes_EXTRACT_SUBVECTOR work for scalable vectors. (details)
  18. [PowerPC] Define XL-compatible macros only for AIX and Linux (details)
  19. [NFC][X86][LV] Add some test coverage for [un]masked gather/scatter (details)
  20. [PowerPC] Implement builtin for vbpermd (details)
  21. NFC: [Debugify] Fix a typo when checking variables in the original mode (details)
  22. [lldb] [Host] Remove TerminalStateSwitcher (details)
  23. Revert 9b944c184396ce55a3ad608779cc326ba12c9ee3 with fixes (details)
  24. [LTO][Legacy] Add -debug-pass-manager option to enable pass run/skip trace. (details)
  25. [lld/mac] Don't warn on both --icf=all and -no_deduplicate (details)
  26. [NFC][X86][LV] Add costmodel test coverage for interleaved i8 load/store stride=2 (details)
  27. [NFC][X86] Add codegen test coverage for interleaved load/store i8 stride=2 (details)
  28. [AArch64] Add TypePromotion tests and regenerate atomic test check lines (details)
  29. [mlir][Linalg] Rewrite CodegenStrategy to populate a pass pipeline. (details)
  30. [IndVarSimplify] Forget phi value after changing incoming value. (details)
  31. Introduced AllocationOpInterface to create deallocation operations on-the-fly that are compatible with the allocation operation implementing this interface. (details)
  32. [AArch64] Enable type promotion for AArch64 (details)
  33. [clang] Fix library name (libsupc++) in the admonition note. (details)
  34. Use rm -f to fix Windows failures from test changes (details)
  35. [lldb] Fix TestImportStdModule on some setups by testing minmax instead of abs (details)
  36. [WebAssemlby][Object] Fix dead code in WasmObjectFile.cpp (details)
  37. [CostModel][AArch64] Don't dereference CostTblEntry before null check. (details)
  38. [clang-tidy] Merges separate isa<>/assert/unreachable/dyn_cast<>/cast<> calls (details)
  39. [TTI] BasicTTI::getInterleavedMemoryOpCost(): use getScalarizationOverhead() (details)
  40. [MSP430] Recognize Bi as an indirect branch in analyzeBranch. NFC. (details)
  41. [InstCombine] add test for miscompile in dropRedundantMaskingOfLeftShiftInput(); NFC (PR51351) (details)
  42. [InstSimplify] add tests for (-1 << x) s>> x; NFC (details)
  43. [InstCombine] fix miscompile from dropRedundantMaskingOfLeftShiftInput() (details)
  44. [PowerPC][AIX] Warn when using pragma align(packed) on AIX. (details)
  45. [AArch64] Model Cortex-A55 Q register NEON instructions (details)
  46. [AArch64] Remove redundant declaration createAArch64ObjectTargetStreamer (NFC) (details)
  47. [fir][NFC] Update fir.iterate_while op (details)
  48. [libomptarget] [amdgpu] After a kernel dispatch packet is published, its contents must not be accessed. (details)
  49. [OpenCL][NFC] Refactor vloada_half and vstorea_half decls (details)
  50. [llvm-reduce] Reduce metadata references. (details)
  51. [PowerPC] swdiv builtins for XL compatibility (details)
  52. [fir] Update fir.call op (details)
  53. Fix LLDB build on old Linux kernels (details)
  54. [mlir][sparse] simplify negi code generation with subi (details)
  55. [InstSimplify] (-1 << x) s>> x --> -1 (details)
  56. [libc++] Move libc++ specific tests to `libcxx/test/libcxx` (details)
  57. [clang-cl] Accept `#pragma warning(disable : N)` for some N (details)
  58. [Driver] Check that short triples are supported for Fuchsia (details)
  59. Adapt `tsan/flush_memory.cpp` to run on non-local platforms. (details)
  60. [libc++][NFC] Reorganize CI jobs into commented sections (details)
  61. [AMDGPU] Enable machine verification after AMDGPUISelDAGToDAG (details)
  62. [clang] Minor cleanups after b2de52bec (details)
  63. [libcxx] Add a CI configuration for standalone building in llvm-project/runtimes (details)
  64. [lldb] Remove Expression's dependency on CPlusPlusLanguagePlugin (details)
  65. [Mangler] Calculate the argument list byte count suffix correctly when returning large values (details)
  66. [NFC] Add contributor name to CREDITS.TXT (details)
  67. [X86][Costmodel] Load/store i8 Stride=2 VF=2 interleaving costs (details)
  68. [X86][Costmodel] Load/store i8 Stride=2 VF=4 interleaving costs (details)
  69. [X86][Costmodel] Load/store i8 Stride=2 VF=8 interleaving costs (details)
  70. [X86][Costmodel] Load/store i8 Stride=2 VF=16 interleaving costs (details)
  71. [X86][Costmodel] Load/store i8 Stride=2 VF=32 interleaving costs (details)
  72. [LoopFlatten] Bail if we can't perform flattening after IV widening (details)
  73. [NFC][AMDGPU] Add missing gfx90a test cases to fsub.ll. (details)
  74. [NFC][X86][LV] Add costmodel test coverage for interleaved i32 load/store stride=2 (details)
  75. [NFC][X86][Codegen] Add test coverage for interleaved i32 load/store stride=2 (details)
  76. [PowerPC] The builtins load8r and store8r are Power 7 plus. (details)
  77. Revert "[LTO][Legacy] Add -debug-pass-manager option to enable pass run/skip trace." (details)
  78. [fir] Move parser/printer/verifier of fir.string_lit and add builders (details)
  79. [NFC][clang] Add newline to end of 2005-01-02-ConstantInits.c (details)
  80. [test] Update some test cases to use -passes when specifying the pipeline (details)
  81. [libc++] [compare] Named comparison functions, is_eq etc. (details)
  82. [flang] Make builtin types more easily accessible; use them (details)
  83. [OpenMP] Add missing distribute definitions to AAKernelInfo (details)
  84. [OpenMP][NFC] Fix linting messages in OpenMPOpt (details)
  85. [OpenMP] Apply OpenMP assumptions to applicable call sites (details)
  86. [gn build] Port 969359e3b86b (details)
  87. [BasicAA] Pass DecomposedGEP to constantOffsetHeuristic() (NFC) (details)
  88. [clang] NFC: remove duplicated code around type constraint and templ arg subst (details)
  89. [M68k] Avoid UB in disassembler (details)
  90. [libc++][ci] Run alternative builds earlier to reduce latency (details)
  91. [clang] don't instantiate templates with injected arguments (details)
  92. [libc++][libc++abi] Add tests for vendor-specific properties (details)
  93. [libc++] Rename testing configurations to match Lit stdlib= parameter (details)
  94. [VFS] InMemoryFilesystem's UniqueIDs are a function of path and content. (details)
  95. [libc++] Add the std::views::common range adaptor (details)
  96. [BasicAA] Pass whole DecomposedGEP to subtraction API (NFC) (details)
  97. [runtimes] Ensure required deps for tests targets are actually built (details)
  98. [BasicAA] Move DecomposedGEP out of header (NFC) (details)
  99. [libc++] Fix missed rename of libcxx-trunk-shared.cfg.in (details)
  100. [AArch64][GlobalISel] Widen G_BUILD_VECTOR source & dest element types to s8. (details)
  101. [mlir][tosa] Ranked check for transpose was wrong. (details)
  102. [libc++] Simplify the _LIBCPP_CONSTEXPR markings on starts_with() etc. (details)
  103. [IntelJITListener] Fix order in JitListener/multiple.ll (details)
  104. [llvm-objdump/llvm-readobj/obj2yaml/yaml2obj] Support STO_RISCV_VARIANT_CC and DT_RISCV_VARIANT_CC (details)
  105. [mlir][vector] Fold transfer ops and tensor.extract/insert_slice. (details)
  106. Revert "[clang-cl] Accept `#pragma warning(disable : N)` for some N" (details)
  107. [clang] Fix sentence in the usage section of ThinLTO docs. (details)
  108. AMDGPU: Broadcast scalar boolean to vector boolean explicitly (details)
  109. Second attempt to fix Windows failures from test changes (details)
  110. Add the --relative-to-command-file to "command source" so you can (details)
  111. Make "process attach -c" work correctly, and add a test for it. (details)
  112. [ODS/AsmParser] Don't pass MLIRContext with DialectAsmParser. (details)
Commit 1380eae590202639d00d459bcacee9817162de60 by Lang Hames
[ORC-RT] Add target dependencies to ORC-RT regression tests.

check-orc-rt had no cmake target dependency on orc or llvm-jitlink, which
could lead to regression test failures in compiler-rt. This patch should
fix the issue.

Patch by Jack Andersen (jackoalan@gmail.com). Thanks Jack!

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D110659
The file was modifiedcompiler-rt/test/orc/CMakeLists.txt
The file was modifiedcompiler-rt/test/CMakeLists.txt
Commit ac2daacb310cbb1732de1c139be7a0e8e982169e by Stefan Gränitz
[ORC][examples] Port LLJITWithRemoteDebugging to SimpleRemoteEPC

Though this is a full port of the example, it is not yet fully functional due to a threading issue in the SimpleRemoteEPC implementation. The issue was discussed in D110530, but it needs a more thorough solution. For now we are dropping the dependency to the old `OrcRPC` here (it's been the last use-case in-tree). The test for the example is under review in ... and will be re-enabled once the threading issue is solved.
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/LLJITWithRemoteDebugging.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.h
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp
Commit 60527cee95da028dc06771e1ed1e17f6c78d3f1a by clementval
[fir][NFC] Rename operand of ArrayCoorOp

Rename `lenParams` to `typeparams` to be in sync with fir-dev.

This patch is part of the upstreaming effort from fir-dev branch.

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: Valentin Clement <clementval@gmail.com>

Reviewed By: jeanPerier

Differential Revision: https://reviews.llvm.org/D110645
The file was modifiedflang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
Commit 4da744a20ff58c9b3d8df0e2eb9e8b69d9e5cc3d by sven.vanhaastregt
[OpenCL] Fix as_type3 invalid store creation

With -fpreserve-vec3-type enabled, a cast was not created when
converting from a non-vec3 type to a vec3 type, even though a
conversion to vec3 was performed.  This resulted in creation of
invalid store instructions.

Differential Revision: https://reviews.llvm.org/D108470
The file was modifiedclang/test/CodeGenOpenCL/preserve_vec3.cl
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
Commit 72a08c0b940450424b4c5d5babfb374df14ef471 by simon.moll
[VP] Vector predicated vector splice intrinsic

This patch introduces the vector-predicated version of the
experimental_vector_splice intrinsic [1] at the IR level. It considers
the active vector length for both vectors and and uses a vector mask to
disable certain lanes in the result.

[1] https://reviews.llvm.org/D94708

Change originally authored by Vineet Kumar <vineet.kumar@bsc.es>

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D103898
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/include/llvm/IR/VPIntrinsics.def
The file was modifiedllvm/test/Verifier/vp-intrinsics.ll
The file was modifiedllvm/unittests/IR/VPIntrinsicTest.cpp
Commit e9564c3698edffc64439a8f957c7c28b19214613 by david.spickett
[libcxx] Run u16string tests for gdb pretty printers

As far as I can tell these were just missed out when the tests
were first added. No specific reason they should be skipped.
The file was modifiedlibcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
Commit 6cffc35746b4a3a7a237bfde8bf84597fdb40328 by krasimir
[Bazel] fix for aa53785f23b2b89a9a423af131697b1f7c92869f
The file was modifiedutils/bazel/llvm-project-overlay/clang/BUILD.bazel
Commit f6e3abc53021dbbba4944a4fa38c5731994823e9 by pavel
[lldb/gdb-remote] Remove last_stop_packet_mutex

This is a remnant of the non-stop mode.
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Commit 5c52753d9ff27c2d88f001f7fc37a8212f43a926 by andrzej.warzynski
[Flang] Fix failing plugin tests

The updated tests were originally added in
https://reviews.llvm.org/D109890 and are currently causing some
buildbots to fail.

This patch:
* adds missing items in the `REQUIRERS` list in tests
* adds `flangOmpReport` (the plugin library added in D109890) as a CMake
  dependency for tests (only when examples are enabled)

Differential Revision: https://reviews.llvm.org/D110682
The file was modifiedflang/test/Examples/omp-device-constructs.f90
The file was modifiedflang/test/Examples/omp-atomic.f90
The file was modifiedflang/test/CMakeLists.txt
The file was modifiedflang/test/Examples/omp-declarative-directive.f90
Commit e6ed880e4757498996d68c3e21bd9f5d06ebf3af by Amara Emerson
[AArch64][GlobalISel] Make some vector G_SMULH/G_UMULH legal.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir
Commit 7b424b933355c972da006e9afd560d4e534d08f8 by ikudrin
[llvm-objcopy] Rename relocation sections together with their targets.

As for now, llvm-objcopy renames only sections that are specified
explicitly in --rename-section, while GNU objcopy keeps names of
relocation sections in sync with their targets. For example:

> readelf -S test.o
...
  [ 1] .foo      PROGBITS
  [ 2] .rela.foo RELA

> objcopy --rename-section .foo=.bar test.o gnu.o
> readelf -S gnu.o
...
  [ 1] .bar      PROGBITS
  [ 2] .rela.bar RELA

> llvm-objcopy --rename-section .foo=.bar test.o llvm.o
> readelf -S llvm.o
...
  [ 1] .bar      PROGBITS
  [ 2] .rela.foo RELA

This patch makes llvm-objcopy to match the behavior of GNU objcopy better.

Differential Revision: https://reviews.llvm.org/D110352
The file was modifiedllvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
The file was addedllvm/test/tools/llvm-objcopy/ELF/rename-section-relocsec.test
Commit 27179b39f911a9d1c3e1afd1bc6f61ff5fcc8659 by jay.foad
[RemoveRedundantDebugValues] Enable machine verification after this pass

Machine verification after RemoveRedundantDebugValues has been disabled
since the pass was first added in D105279, but I guess this was just due
to copy-and-paste. Enabling it does not show any problems in check-llvm
in an LLVM_ENABLE_EXPENSIVE_CHECKS build.

Differential Revision: https://reviews.llvm.org/D110688
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
Commit 8f9f959b99e12ac675a8a45db62e5bd872a8d1dc by david.spickett
[AMDGPU] Require AMDGPU target for ASAN instrumentation tests

Should fix test failure on Arm/AArch64 quick bots which
only build those targets.

https://lab.llvm.org/buildbot/#/builders/171/builds/4077
The file was addedllvm/test/Instrumentation/AddressSanitizer/AMDGPU/lit.local.cfg
Commit b2b122ddfaa7e76a36d2a20a8d0a2dee5c49d5f2 by Amara Emerson
[AArch64][GlobalISel] Add selection tests for vector G_UMULH/G_SMULH.

We already import these patterns from SelectionDAG.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-mul.mir
Commit d6216e2cd1a5e07f8509215ee5422ff5ee358da8 by martin
[X86] Fix handling of i128<->fp on Windows

On Windows, i128 arguments are passed as indirect arguments, and
they are returned in xmm0.

This is mostly fixed up by `WinX86_64ABIInfo::classify` in Clang, making
the IR functions return v2i64 instead of i128, and making the arguments
indirect. However for cases where libcalls are generated in the target
lowering, the lowering uses the default x86_64 calling convention for
i128, where they are passed/returned as a register pair.

Add custom lowering logic, similar to the existing logic for i128
div/mod (added in 4a406d32e97b1748c4eed6674a2c1819b9cf98ea),
manually making the libcall (while overriding the return type to
v2i64 or passing the arguments as pointers to arguments on the stack).

X86CallingConv.td doesn't seem to handle i128 at all, otherwise
the windows specific behaviours would ideally be implemented as
overrides there, in generic code, handling these cases automatically.

This fixes https://bugs.llvm.org/show_bug.cgi?id=48940.

Differential Revision: https://reviews.llvm.org/D110413
The file was addedllvm/test/CodeGen/X86/i128-fpconv-win64-strict.ll
The file was addedllvm/test/CodeGen/X86/i128-fpconv-win64.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 87bcbd61b5e60ed1f465cc276029be9f667162ba by sander.desmalen
[AArch64][SVE] Fix extract_subvector patterns for unpacked fp types.

The patterns added in D110163 were incorrect, since it used the wrong
element widths for its shuffles.

Example for nxv2f16 extract_subvector(nxv8f16 %in, 6):
  <a|b|c|d|e|f|g|h>
               ^^^
           extract g and h.

  => UUNPKHI .h -> .s results in:
  <e  |f  |g  |h  >

  => UUNPKHI .s -> .d results in:
  <g      |h      >

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D110523
The file was modifiedllvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit 6709b193ea254edf3670a60e1efb3223f199c662 by sander.desmalen
[SelectionDAG] Make WidenVecRes_EXTRACT_SUBVECTOR work for scalable vectors.

The legalizer handles this by breaking up an EXTRACT_SUBVECTOR into
smaller parts, and combines those together, padding the result with
UNDEF vectors, e.g.

  nxv6i64 extract_subvector(nxv12i64, 6)
  <->
  nxv8i64 concat(
    nxv2i64 extract_subvector(nxv16i64, 6)
    nxv2i64 extract_subvector(nxv16i64, 8)
    nxv2i64 extract_subvector(nxv16i64, 10)
    nxv2i64 undef)

Reviewed By: frasercrmck, david-arm

Differential Revision: https://reviews.llvm.org/D110253
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/extract-subvector.ll
Commit c9539f957f57c0c2c59dab98f25215f241d4debf by nemanja.i.ibm
[PowerPC] Define XL-compatible macros only for AIX and Linux

Since XLC only ever shipped on PowerPC AIX and Linux, it is not reasonable to
provide the compatibility macros on any target other than those two. This patch
restricts those macros to AIX/Linux.

Differential revision: https://reviews.llvm.org/D110213
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-vec-error.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-trap-64bit-only.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-fetch.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-conversionfunc.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-pwr9-64bit.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-stfiw.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-multiply.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-darn.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-cipher.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-pwr8.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-pwr9-warning.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-multiply-64bit-only.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-LoadReseve-StoreCond-64bit-only.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-load-store-reversed-64bit-only.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-move-tofrom-regs.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-cmplx.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-pwr9-error.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-compare.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-popcnt.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-pwr9.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-trap.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-prefetch.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-test.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-math.c
The file was modifiedclang/lib/Basic/Targets/PPC.cpp
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-expect.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-fp.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-swdiv_nochk.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-sync.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-error.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-load-store-reversed.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-macros.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-rotate.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-cas.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat.c
The file was modifiedclang/test/CodeGen/builtins-ppc-xlcompat-LoadReseve-StoreCond.c
Commit ff05e25a84578e84ad0a065e8e34c04b217da409 by lebedev.ri
[NFC][X86][LV] Add some test coverage for [un]masked gather/scatter

While we did have test coverage for the intrinsics,
i don't believe there was LV-based test coverage.
The file was addedllvm/test/Analysis/CostModel/X86/gather-i16-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/scatter-i64-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/gather-i32-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/scatter-i32-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/scatter-i16-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/scatter-i8-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/gather-i64-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/masked-gather-i32-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/gather-i8-with-i8-index.ll
The file was addedllvm/test/Analysis/CostModel/X86/masked-scatter-i32-with-i8-index.ll
Commit 09b67aa1c38279daa54246e3f216186e35a3e5b9 by nemanja.i.ibm
[PowerPC] Implement builtin for vbpermd

The instruction has similar semantics to vbpermq but for doublewords.
It was added in Power9 and the ABI documents the builtin.

Differential revision: https://reviews.llvm.org/D107899
The file was modifiedclang/test/CodeGen/builtins-ppc-p8vector.c
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrAltivec.td
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was addedllvm/test/CodeGen/PowerPC/p9-vbpermd.ll
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedclang/test/CodeGen/builtins-ppc-p9vector.c
Commit f8dfc352568a7e74d41690ac5004a50675e03d56 by djtodoro
NFC: [Debugify] Fix a typo when checking variables in the original mode
The file was modifiedllvm/lib/Transforms/Utils/Debugify.cpp
Commit 52b04efa0197d5b1f65f4824a6528ea634bdf3db by mgorny
[lldb] [Host] Remove TerminalStateSwitcher

Remove TerminalStateSwitcher class.  It is not used anywhere and its API
is really weird.  This is the first step towards cleaning up Terminal.h.

Differential Revision: https://reviews.llvm.org/D110693
The file was modifiedlldb/include/lldb/Host/Terminal.h
The file was modifiedlldb/source/Host/common/Terminal.cpp
Commit 722e705f72dd3077a1f51dc62717828e7ccf23e8 by aaron
Revert 9b944c184396ce55a3ad608779cc326ba12c9ee3 with fixes

This reintroduces c0687e1984a82925918c874b7bb68ad34c32aed0 (Add support
for `NOLINTBEGIN` ... `NOLINTEND` comments) but with fixes to the tests.
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/Inputs/nolintbeginend/error_in_include.inc
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-typo-in-check-name.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-end-without-begin.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/index.rst
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-global-end-specific.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-at-eof.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-mismatched-delims.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-without-end.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-error-within-include.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/infrastructure/nolintnextline.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-mismatched-check-names.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-end-at-sof.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/Inputs/nolintbeginend/nolint_in_include.inc
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-specific-end-global.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/infrastructure/nolint.cpp
Commit a60405cf035dc114e7ee090139bed2577f4ea7ef by wyehia
[LTO][Legacy] Add -debug-pass-manager option to enable pass run/skip trace.

Reviewed by: steven_wu, fhahn, tejohnson

Differential Revision: https://reviews.llvm.org/D110075
The file was modifiedllvm/lib/LTO/LTOCodeGenerator.cpp
The file was modifiedllvm/lib/LTO/ThinLTOCodeGenerator.cpp
The file was modifiedllvm/tools/llvm-lto2/llvm-lto2.cpp
The file was addedllvm/test/tools/llvm-lto/lto-passes.ll
The file was modifiedllvm/tools/llvm-lto/llvm-lto.cpp
The file was modifiedllvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
The file was modifiedllvm/lib/LTO/LTO.cpp
Commit c19315ef60828b96ce77ab8adca58b3c529c8b70 by thakis
[lld/mac] Don't warn on both --icf=all and -no_deduplicate

Instead, just make the later flag win, like usual.
Implement this by making -no_deduplicate an actual alias for --icf=none
at the Options.td level.

Differential Revision: https://reviews.llvm.org/D110672
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/Options.td
The file was modifiedlld/test/MachO/icf-options.s
Commit c13b4b6b0d788959348292f1dd86764f3c45f96a by lebedev.ri
[NFC][X86][LV] Add costmodel test coverage for interleaved i8 load/store stride=2
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
Commit 465d2adbfb59039be50beb37c4aa22e4b45cea16 by lebedev.ri
[NFC][X86] Add codegen test coverage for interleaved load/store i8 stride=2
The file was addedllvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-2.ll
The file was addedllvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-2.ll
Commit a8031c92072137d7e9290511040a0d9c267bd461 by david.green
[AArch64] Add TypePromotion tests and regenerate atomic test check lines

This adds some extra tests for TypePromotion as per D110239, and
regenerated the check lines in atomic-ops.ll and cmpxchg-idions.ll to be
more easy to maintain with changing codegen (hopefully in a way that
does not reduce what is tested).
The file was addedllvm/test/CodeGen/AArch64/typepromotion-overflow.ll
The file was modifiedllvm/test/CodeGen/AArch64/signed-truncation-check.ll
The file was addedllvm/test/CodeGen/AArch64/typepromotion-signed.ll
The file was addedllvm/test/CodeGen/AArch64/typepromotion-phisret.ll
The file was modifiedllvm/test/CodeGen/AArch64/atomic-ops.ll
The file was modifiedllvm/test/CodeGen/AArch64/cmpxchg-idioms.ll
Commit 92ea624a1345fc9f0512bab2bd5d0d1ebeb8cf21 by nicolas.vasilache
[mlir][Linalg] Rewrite CodegenStrategy to populate a pass pipeline.

This revision retires a good portion of the complexity of the codegen strategy and puts the logic behind pass logic.

Differential revision: https://reviews.llvm.org/D110678
The file was addedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.h
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
The file was modifiedmlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/test/Dialect/Linalg/codegen-strategy.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/test/lib/Dialect/Linalg/TestConvVectorization.cpp
Commit 0b4a4cc72d81a522230a7270abdfa804aa49d89b by flo
[IndVarSimplify] Forget phi value after changing incoming value.

This fixes an issue exposed by D71539, where IndVarSimplify tries
to access an invalid cached SCEV expression after making changes to the
underlying PHI instruction earlier.

When changing the incoming value of a PHI, forget the cached SCEV for
the PHI.
The file was addedllvm/test/Transforms/IndVarSimplify/invalidate-modified-lcssa-phi.ll
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 09cd4a71ed1ecf531dd1582718c4a424d0e3048a by julian.gross
Introduced AllocationOpInterface to create deallocation operations on-the-fly that are compatible with the allocation operation implementing this interface.
Added interface implementations for AllocOp and CloneOp defined in the MemRef diallect.
Adapted the BufferDeallocation pass to be compatible with the interface introduced in this CL.

Differential Revision: https://reviews.llvm.org/D109350
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/lib/Transforms/BufferDeallocation.cpp
The file was modifiedmlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
The file was modifiedmlir/include/mlir/Interfaces/SideEffectInterfaces.td
Commit 8a645fc44b545acdea9fb3daf8642ab4b9e219a0 by david.green
[AArch64] Enable type promotion for AArch64

This enables the type promotion pass for AArch64, which acts as a
CodeGenPrepare pass to promote illegal integers to legal ones,
especially useful for removing extends that would otherwise require
cross-basic-block analysis.

I have enabled this generally, for both ISel and GlobalISel. In some
quick experiments it appeared to help GlobalISel remove extra extends in
places too, but that might just be missing optimizations that are better
left for later. We can disable it again if required.

In my experiments, this can improvement performance in some cases, and
codesize was a small improvement. SPEC was a very small improvement,
within the noise. Some of the test cases show extends being moved out of
loops, often when the extend would be part of a cmp operand, but that
should reduce the latency of the instruction in the loop on many cpus.
The signed-truncation-check tests are increasing as they are no longer
matching specific DAG combines.

We also hope to add some additional improvements to the pass in the near
future, to capture more cases of promoting extends through phis that
have come up in a few places lately.

Differential Revision: https://reviews.llvm.org/D110239
The file was modifiedllvm/test/CodeGen/AArch64/typepromotion-signed.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
The file was modifiedllvm/test/CodeGen/AArch64/O3-pipeline.ll
The file was modifiedllvm/test/CodeGen/AArch64/atomic-ops.ll
The file was modifiedllvm/test/CodeGen/AArch64/cmpxchg-idioms.ll
The file was modifiedllvm/test/CodeGen/AArch64/signed-truncation-check.ll
The file was modifiedllvm/test/CodeGen/AArch64/atomic-ops-lse.ll
The file was modifiedllvm/test/CodeGen/AArch64/typepromotion-phisret.ll
The file was modifiedllvm/test/CodeGen/AArch64/lack-of-signed-truncation-check.ll
The file was modifiedllvm/test/CodeGen/AArch64/typepromotion-overflow.ll
The file was modifiedllvm/test/CodeGen/AArch64/and-mask-removal.ll
Commit 7a7caf97012f53172743d650fd3c97bce99f86ef by shivam98.tkg
[clang] Fix library name (libsupc++) in the admonition note.

Differential Revision: https://reviews.llvm.org/D110715
The file was modifiedclang/docs/Toolchain.rst
Commit 2f1b99ca67da18d858a4b070716790a8f53891d6 by tejohnson
Use rm -f to fix Windows failures from test changes

Try to address Windows flakes from d87bdc272ba47b7d9109ff5c7191454ab2ae6fcb
by using 'rm -f' instead of just 'rm' as discussed in D110276. For example:
http://45.33.8.238/win/46115/step_7.txt
The file was modifiedlld/test/COFF/pdb-relative-source-lines.test
The file was modifiedclang/test/Driver/clang_f_opts.c
Commit f939a32e5c483686af16561211d77c06a5579011 by Raphael Isemann
[lldb] Fix TestImportStdModule on some setups by testing minmax instead of abs

Some downstream forks of LLDB change parts of the test setup in a way that
causes lldb to somehow resolve `std::abs` (probably to `::abs`). This patch
changes the tested function here to be `std::minmax` which (hopefully) doesn't
have any identically named functions that LLDB could find and call. Just to be
extra safe this also explicitly specified the template arguments so that in
case there is a `minmax` non-template function we still don't end up calling it
from this test.
The file was modifiedlldb/test/API/commands/expression/import-std-module/basic/TestImportStdModule.py
Commit 210cbcf4767bca807ee3e105f785d26c3a976cde by sbc
[WebAssemlby][Object] Fix dead code in WasmObjectFile.cpp

I introduced this by mistake in https://reviews.llvm.org/D109595.

Differential Revision: https://reviews.llvm.org/D110717
The file was modifiedllvm/lib/Object/WasmObjectFile.cpp
Commit 676f2809b5eb632cebac672112f42148771f4617 by llvm-dev
[CostModel][AArch64] Don't dereference CostTblEntry before null check.

Fix static analysis warning that we check for null Entry after dereferencing it.

I don't think this can actually happen as i8/i16 should legalize to use the i32 path which should return a cost - but I'd rather play it safe that rely on an implicit type legalization.
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
Commit 7674bd4d44921d2d110cfb56f2674d4e6e8a68e3 by llvm-dev
[clang-tidy] Merges separate isa<>/assert/unreachable/dyn_cast<>/cast<> calls

We can directly use cast<> instead of separate dyn_cast<> with assertions as cast<> will perform this for us.

Similarly we can replace a if(isa<>)+cast<>/dyn_cast<> with if(dyn_cast<>)
The file was modifiedclang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
Commit 17f1fc1e5452186795b04fd388532f8bca26c31b by llvm-dev
[TTI] BasicTTI::getInterleavedMemoryOpCost(): use getScalarizationOverhead()

getScalarizationOverhead() results in a somewhat better cost estimation than counting the insertion/extraction costs directly. Notably, this is still overestimating the costs.

Original Patch by: @lebedev.ri (Roman Lebedev)

Differential Revision: https://reviews.llvm.org/D110713
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-6.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-5.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-6.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/interleaving.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-4.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-4.ll
Commit 9886f21bc138217b3ca3549bd8bd96d6b70d92f6 by jay.foad
[MSP430] Recognize Bi as an indirect branch in analyzeBranch. NFC.

Recognize Bi as an unconditional branch, just like JMP. This allows
machine verification to run after MSP430BranchSelector without failing
this assertion:

virtual bool llvm::MSP430InstrInfo::analyzeBranch(llvm::MachineBasicBlock &, llvm::MachineBasicBlock *&, llvm::MachineBasicBlock *&, SmallVectorImpl<llvm::MachineOperand> &, bool) const: Assertion `I->getOpcode() == MSP430::JCC && "Invalid conditional branch"' failed.

Note that machine verification is currently disabled after
addPreEmitPass passes because of problems on other targets, so this is
currently NFC.

Differential Revision: https://reviews.llvm.org/D110691
The file was modifiedllvm/lib/Target/MSP430/MSP430InstrInfo.cpp
Commit ac4f30ac49aafc1ab31b7090f8d69662686a6cfc by spatel
[InstCombine] add test for miscompile in dropRedundantMaskingOfLeftShiftInput(); NFC (PR51351)
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll
Commit d3e2067c7c42200d487f7339e10b1e613576abef by spatel
[InstSimplify] add tests for (-1 << x) s>> x; NFC
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll
The file was modifiedllvm/test/Transforms/InstSimplify/shift.ll
Commit ea56dcb73012f65e6ffb1c320c97c6fbf45480e0 by spatel
[InstCombine] fix miscompile from dropRedundantMaskingOfLeftShiftInput()

The test is from https://llvm.org/PR51351.

There are 2 related logic bugs from over-generalizing "lshr" to "any shr",
but I'm not sure how to expose the difference for "MaskC" because instsimplify
already folds ashr of -1.

I'll extend instsimplify to catch the MaskD pattern as a follow-up, but this
patch should be enough to avoid the miscompile.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll
Commit 9b10e2b1cf01b37f441d83ebc41d2c2f9f81831e by sd.fertile
[PowerPC][AIX] Warn when using pragma align(packed) on AIX.

With xlc and xlC pragma align(packed) will pack bitfields the same way
as pragma align(bit_packed). xlclang, xlclang++ and clang will
pack bitfields the same way as pragma pack(1). Issue a warning when
source code using pragma align(packed) is used to alert the user it
may not be compatable with xlc/xlC.

Differential Revision: https://reviews.llvm.org/D107506
The file was addedclang/test/Sema/aix-pragma-align-packed-warn.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaDecl.cpp
Commit e9adcbde31454d3fe6db1d6e18f6e323ee80c759 by david.green
[AArch64] Model Cortex-A55 Q register NEON instructions

Cortex-A55 has 2 64bit NEON vector units, meaning a 128bit instruction
requires taking both units (and can only be issued as the first
instruction in a dual issue pair). This patch models that by splitting
the WriteV SchedWrite into two - the WriteVd that reads/writes only
64bit operands, and the WriteVq that read/writes 128bit registers. The
A55 schedule then uses this distinction to model the WriteVq as taking
both resource units, and starting a Schedule Group and WriteVd as taking
one as before.

I believe this is more correct, even if it does not lead to much better
performance.

Differential Revision: https://reviews.llvm.org/D108766
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedExynosM4.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedTSV110.td
The file was modifiedllvm/lib/Target/AArch64/AArch64Schedule.td
The file was modifiedllvm/test/tools/llvm-mca/AArch64/Cortex/A55-neon-instructions.s
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedA55.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrFormats.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedExynosM5.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedA57.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedCyclone.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedKryo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedA53.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedFalkor.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedExynosM3.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedThunderX.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedThunderX3T110.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedA64FX.td
Commit 9a640a1cb8806353233341bf855cf1508c50f880 by kazu
[AArch64] Remove redundant declaration createAArch64ObjectTargetStreamer (NFC)

Note that createAArch64ObjectTargetStreamer is declared in
AArch64TargetStreamer.h and defined in AArch64TargetStreamer.cpp.

Identified with readability-redundant-declaration.
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
Commit 6e2afdb7f508a08018def9f3b33179527159be92 by clementval
[fir][NFC] Update fir.iterate_while op

Add getFinalValueAttrName() and remove specified number of
inlined elements for SmallVector. This patch is mainly motivated
to help the upstreaming effort.

This patch is part of the upstreaming effort from fir-dev branch.

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: Valentin Clement <clementval@gmail.com>

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D110710
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
Commit 622627025332af4bfa01057210f315b2278a9439 by Dhruva.Chakrabarti
[libomptarget] [amdgpu] After a kernel dispatch packet is published, its contents must not be accessed.

Fixes: SWDEV-275232 (With contributions from Ammar Elwazir, Laurent Morichetti, and Tony Tye)

The current code is racy. After the packet is submitted, the GPU will increment the read index. If this wraps around before the memory is read from it'll refer to a signal from an unrelated packet. Change avoids reading from the packet post-submission.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D110679
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
Commit 26db178cc2b39167a2fd69acfc8ba7ea564f3746 by stuart.brady
[OpenCL][NFC] Refactor vloada_half and vstorea_half decls

Group them together with the vload_half and vstore_half decls for
simplicity.

Reviewed By: svenvh

Differential Revision: https://reviews.llvm.org/D110636
The file was modifiedclang/lib/Sema/OpenCLBuiltins.td
Commit d9562a8e4528411aa22bd960a6487c0e2708dd4e by llvm-project
[llvm-reduce] Reduce metadata references.

The ReduceMetadata pass before this patch removed metadata on a per-MDNode (or NamedMDNode) basis. Either all references to an MDNode are kept, or all of them are removed. However, MDNodes are uniqued, meaning that references to MDNodes with the same data become references to the same MDNodes. As a consequence, e.g. tbaa references to the same type will all have the same MDNode reference and hence make it impossible to reduce only keeping metadata on those memory access for which they are interesting.
Moreover, MDNodes can also be referenced by some intrinsics or other MDNodes. These references were not considered for removal leading to the possibility that MDNodes are not actually removed even if selected to be removed by the oracle.

This patch changes ReduceMetadata to reduces based on removable metadata references instead. MDNodes without references implicitly dropped anyway. References by intrinsic calls should be removed by ReduceOperands or ReduceInstructions. References in other MDNodes cannot be removed as it would violate the immutability of MDNodes.

Additionally, ReduceMetadata pass before this patch used `setMetadata(I, NULL)` to remove references, where `I` is the index in the array returned by `getAllMetadata`. However, `setMetadata` expects a MDKind (such as `MD_tbaa`) as first argument. `getAllMetadata` does not return those in consecutive order (otherwise it would not need to be a `std::pair` with `first` representing the MDKind).

Reviewed By: aeubanks, swamulism

Differential Revision: https://reviews.llvm.org/D110534
The file was addedllvm/test/tools/llvm-reduce/remove-metadata-args.ll
The file was modifiedllvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp
Commit 67a3d1e2755152608fcb1737f7d0519121e037b7 by quinn.pham
[PowerPC] swdiv builtins for XL compatibility

This patch is in a series of patches to provide builtins for compatibility with
the XL compiler. This patch implements the software divide builtin as
wrappers for a floating point divide. XL provided these builtins because it
didn't produce software estimates by default at `-Ofast`. When compiled
with `-Ofast` these builtins will produce the software estimate for divide.

Reviewed By: #powerpc, nemanjai

Differential Revision: https://reviews.llvm.org/D106959
The file was modifiedclang/lib/Basic/Targets/PPC.cpp
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was addedclang/test/CodeGen/builtins-ppc-xlcompat-swdiv.c
The file was modifiedllvm/test/CodeGen/PowerPC/fdiv.ll
Commit 576301d922a76db34bc344f04174ba38c09bb5ca by clementval
[fir] Update fir.call op

Move builders to .cpp file and update accordingly.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: kiranchandramohan

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

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: Valentin Clement <clementval@gmail.com>
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
Commit d35702efe73010409c75b1f1b64f205cc3b2f6d3 by walter erquinigo
Fix LLDB build on old Linux kernels

Usage of aux_size is guarded against elsewhere in this file, but is missing here.

Reviewed By: wallace

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

Original Author: calebzulawski
The file was modifiedlldb/source/Plugins/Process/Linux/IntelPTManager.cpp
Commit 7f1cb43d60a517660c579ef22351bc3ca413d52d by ajcbik
[mlir][sparse] simplify negi code generation with subi

The lack of negi details leaked from merger class into codegen part.
Also, special case for vector code was not needed, the type can be used directly!

Reviewed By: bixia

Differential Revision: https://reviews.llvm.org/D110677
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/Utils/Merger.cpp
Commit 4414e2ad97d5566d6bdd2c5c050b1929d6e26028 by spatel
[InstSimplify] (-1 << x) s>> x --> -1

This was noticed in:
https://llvm.org/PR51351

https://alive2.llvm.org/ce/z/aLxunD
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/shift.ll
Commit cbd92b1f456df13e0ac477758e2638e4a0930c9d by Louis Dionne
[libc++] Move libc++ specific tests to `libcxx/test/libcxx`

This is consistent with what we've been doing forever.
The file was removedlibcxx/test/std/ranges/range.adaptors/range.all/all.nodiscard.verify.cpp
The file was removedlibcxx/test/std/ranges/range.adaptors/range.transform/adaptor.nodiscard.verify.cpp
The file was modifiedlibcxx/test/libcxx/memory/allocator_volatile.verify.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.access.begin/incomplete.verify.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.access.end/incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.access/range.access.begin/incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.access/range.access.cbegin/incomplete.verify.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.access.cend/incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.adaptors/range.transform/adaptor.nodiscard.verify.cpp
The file was removedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.access/range.prim/data.incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.access/range.access.cend/incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.adaptors/range.all/all.nodiscard.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.access/range.prim/empty.incomplete.verify.cpp
The file was addedlibcxx/test/libcxx/ranges/range.access/range.access.end/incomplete.verify.cpp
Commit b2de52bec17b67887456ede40ac7c6959ce26d6a by thakis
[clang-cl] Accept `#pragma warning(disable : N)` for some N

clang-cl maps /wdNNNN to -Wno-flags for a few warnings that map
cleanly from cl.exe concepts to clang concepts.

This patch adds support for the same numbers to
`#pragma warning(disable : NNNN)`. It also lets
`#pragma warning(push)` and `#pragma warning(pop)` have an effect,
since these are used together with `warning(disable)`.

The optional numeric argument to `warning(push)` is ignored,
as are the other non-`disable` `pragma warning()` arguments.
(Supporting `error` would be easy, but we also don't support
`/we`, and those should probably be added together.)

The motivating example is that a bunch of code (including in LLVM)
uses this idiom to locally disable warnings about calls to deprecated
functions in Windows-only code, and 4996 maps nicely to
-Wno-deprecated-declarations:

    #pragma warning(push)
    #pragma warning(disable: 4996)
      f();
    #pragma warning(pop)

Implementation-wise:
- Move `/wd` flag handling from Options.td to actual Driver-level code
- Extract the function mapping cl.exe IDs to warning groups to the
  new file clang/lib/Basic/CLWarnings.cpp
- Create a diag::Group enum so that CLWarnings.cpp can refer to
  existing groups by ID (and give DllexportExplicitInstantiationDecl
  a named group), and add a function to map a diag::Group to the
  spelling of it's associated commandline flag
- Call that new function from PragmaWarningHandler

Differential Revision: https://reviews.llvm.org/D110668
The file was modifiedclang/include/clang/Basic/Diagnostic.h
The file was addedclang/include/clang/Basic/CLWarnings.h
The file was modifiedclang/lib/Basic/CMakeLists.txt
The file was modifiedclang/lib/Basic/DiagnosticIDs.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Lex/Pragma.cpp
The file was addedclang/test/Sema/pragma-warning.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticIDs.h
The file was modifiedclang/lib/Basic/Diagnostic.cpp
The file was addedclang/lib/Basic/CLWarnings.cpp
The file was modifiedclang/test/Driver/cl-options.c
The file was modifiedclang/utils/TableGen/ClangDiagnosticsEmitter.cpp
The file was modifiedclang/tools/diagtool/DiagnosticNames.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/include/clang/Basic/DiagnosticCategories.h
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
Commit d7ae43438a04bcb651ede50c19042e08514bf729 by phosek
[Driver] Check that short triples are supported for Fuchsia

{x86_64,aarch64}-unknown-fuchsia and {x86_64,aarch64}-fuchsia should
behave identically as targets, update the test to make sure that's the
case.

Differential Revision: https://reviews.llvm.org/D110687
The file was modifiedclang/test/Driver/fuchsia.cpp
The file was modifiedclang/test/Driver/fuchsia.c
Commit cac25e40428de19bd78b821dce47c36ebca2ce6c by Dan Liew
Adapt `tsan/flush_memory.cpp` to run on non-local platforms.

ad890aa2327feb6b6aee676fe85b2352fba2403e landed a test without
using the `%run` prefix which means the test fails to run for
platforms that need it (e.g. iOS simulators).

This patch adds the `%run` prefix. While we're here also split
the single `RUN` line into two to make debugging easier.

rdar://83637296

Differential Revision: https://reviews.llvm.org/D110734
The file was modifiedcompiler-rt/test/tsan/flush_memory.cpp
Commit 87b4490b3c8780fad54ba9afdffec43c628c7a74 by Louis Dionne
[libc++][NFC] Reorganize CI jobs into commented sections
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
Commit f9b68304a22ef82d827d282dd9014efc2e7ac875 by jay.foad
[AMDGPU] Enable machine verification after AMDGPUISelDAGToDAG

This was introduced in D32628 but it does not seem to be required any
more. At least it does not show any problems in check-llvm in an
LLVM_ENABLE_EXPENSIVE_CHECKS build.

Differential Revision: https://reviews.llvm.org/D110692
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
Commit 2240deb9766cc080b351016b0d7f975d7249b113 by thakis
[clang] Minor cleanups after b2de52bec
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/utils/TableGen/ClangDiagnosticsEmitter.cpp
Commit 565d45541f860d72b2e2f12001104edd78f5b0c3 by martin
[libcxx] Add a CI configuration for standalone building in llvm-project/runtimes

Generate the llvm-lit script in runtimes/CmakeFiles.txt unless invoked
from llvm/runtimes.

Differential Revision: https://reviews.llvm.org/D109593
The file was modifiedllvm/runtimes/CMakeLists.txt
The file was modifiedlibcxx/utils/ci/run-buildbot
The file was modifiedruntimes/CMakeLists.txt
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
Commit 385b2189cc4446745e1ea4ac803c22b3daef73ec by Alex Langford
[lldb] Remove Expression's dependency on CPlusPlusLanguagePlugin

This change accomplishes the following:
- Moves `IRExecutionUnit::FindBestAlternateMangledName` to `Language`.
- Renames `FindBestAlternateMangledName` to
  `FindBestAlternateFunctionMangledName`
- Changes the first parameter of said method from a `ConstString`
  representing a demangled name to a `Mangled`.
- Remove the use of CPlusPlusLanguage from Expression
The file was modifiedlldb/source/Expression/IRExecutionUnit.cpp
The file was modifiedlldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
The file was modifiedlldb/source/Expression/CMakeLists.txt
The file was modifiedlldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
The file was modifiedlldb/include/lldb/Target/Language.h
Commit 2dd883439c7886182902c0aa17b34c0a8ed88b66 by rnk
[Mangler] Calculate the argument list byte count suffix correctly when returning large values

`__stdcall`, `__fastcall` and `__vectorcall` return large values via a
hidden pointer argument. However, the size of that argument should not
be included in the argument list byte count suffix added to the
function's decorated name.

This patch fixes that issue so that LLVM generates the same decorated
name as MSVC does.

MSVC example: https://godbolt.org/z/nc35MKPhr

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D110719
The file was modifiedllvm/lib/IR/Mangler.cpp
The file was modifiedllvm/test/CodeGen/X86/vectorcall.ll
The file was modifiedllvm/test/CodeGen/X86/stdcall.ll
Commit 8911fbeafe573be241150ea2a92662ab95c9ae12 by muiez
[NFC] Add contributor name to CREDITS.TXT

Differential Revision: https://reviews.llvm.org/D110650
The file was modifiedlibcxx/CREDITS.TXT
Commit 7d52628eb0eba6cd27adf7f1b34dc3fb0d9b3a7e by lebedev.ri
[X86][Costmodel] Load/store i8 Stride=2 VF=2 interleaving costs

The only sched models that for cpu's that support avx2
but not avx512 are: haswell, broadwell, skylake, zen1-3

For load we have:
https://godbolt.org/z/caKqjr9hb - for intels `Block RThroughput: =2.0`; for ryzens, `Block RThroughput: <=1.0`
So pick cost of `2`.

For store we have:
https://godbolt.org/z/6TTn3eKj8 - for intels `Block RThroughput: =1.0`; for ryzens, `Block RThroughput: <=0.5`
So pick cost of `1`.

I'm directly using the shuffling asm the llc produced,
without any manual fixups that may be needed
to ensure sequential execution.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D110702
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
Commit 08face1f9a9111216c9a3ebf47ef401f633933b6 by lebedev.ri
[X86][Costmodel] Load/store i8 Stride=2 VF=4 interleaving costs

The only sched models that for cpu's that support avx2
but not avx512 are: haswell, broadwell, skylake, zen1-3

Identical to VF=2.

For load we have:
https://godbolt.org/z/sGE41GYo7 - for intels `Block RThroughput: =2.0`; for ryzens, `Block RThroughput: <=1.0`
So pick cost of `2`.

For store we have:
https://godbolt.org/z/ba5r3s9xa - for intels `Block RThroughput: =1.0`; for ryzens, `Block RThroughput: <=0.5`
So pick cost of `1`.

I'm directly using the shuffling asm the llc produced,
without any manual fixups that may be needed
to ensure sequential execution.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D110704
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
Commit 19621856712155a5bdffd3168e6cb36b84c78fa8 by lebedev.ri
[X86][Costmodel] Load/store i8 Stride=2 VF=8 interleaving costs

The only sched models that for cpu's that support avx2
but not avx512 are: haswell, broadwell, skylake, zen1-3

Identical to VF=2.

For load we have:
https://godbolt.org/z/4TEbdzbMM - for intels `Block RThroughput: =2.0`; for ryzens, `Block RThroughput: <=1.0`
So pick cost of `2`.

For store we have:
https://godbolt.org/z/MYfzGPf3Y - for intels `Block RThroughput: =1.0`; for ryzens, `Block RThroughput: <=0.5`
So pick cost of `1`.

I'm directly using the shuffling asm the llc produced,
without any manual fixups that may be needed
to ensure sequential execution.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D110705
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
Commit bac60c55e0ff88f0f61ffed330374699216e1329 by lebedev.ri
[X86][Costmodel] Load/store i8 Stride=2 VF=16 interleaving costs

The only sched models that for cpu's that support avx2
but not avx512 are: haswell, broadwell, skylake, zen1-3

For load we have:
https://godbolt.org/z/a9hv4z47v - for intels `Block RThroughput: =4.0`; for ryzens, `Block RThroughput: =2.0`
So pick cost of `4`.

For store we have:
https://godbolt.org/z/6GfPn1b79 - for intels `Block RThroughput: =3.0`; for ryzens, `Block RThroughput: <=2.0`
So pick cost of `3`.

I'm directly using the shuffling asm the llc produced,
without any manual fixups that may be needed
to ensure sequential execution.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D110708
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
Commit 2d42a192e02af9d89dde356a48270fc7d1ef5b16 by lebedev.ri
[X86][Costmodel] Load/store i8 Stride=2 VF=32 interleaving costs

The only sched models that for cpu's that support avx2
but not avx512 are: haswell, broadwell, skylake, zen1-3

For load we have:
https://godbolt.org/z/xz6x7c35P - for intels `Block RThroughput: =6.0`; for ryzens, `Block RThroughput: <=2.5`
So pick cost of `6`.

For store we have:
https://godbolt.org/z/xz6x7c35P - for intels `Block RThroughput: =4.0`; for ryzens, `Block RThroughput: <=2.0`
So pick cost of `4`.

I'm directly using the shuffling asm the llc produced,
without any manual fixups that may be needed
to ensure sequential execution.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D110709
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8-stride-2.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8-stride-2.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
Commit 367df18050303b27bc6937e44e4d636332333ae7 by sjoerd.meijer
[LoopFlatten] Bail if we can't perform flattening after IV widening

It can happen that after widening of the IV, flattening may not be possible,
e.g. when it is deemed unprofitable. We were not properly checking this, which
resulted in flattening being applied when it shouldn't, also leading to
incorrect results (miscompilation).

This should fix PR51980 (https://bugs.llvm.org/show_bug.cgi?id=51980)

Differential Revision: https://reviews.llvm.org/D110712
The file was addedllvm/test/Transforms/LoopFlatten/widen-iv3.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopFlatten.cpp
Commit 6a187f9a5755b5d711e8df8e7367b42aeb074057 by daniil.fukalov
[NFC][AMDGPU] Add missing gfx90a test cases to fsub.ll.
The file was modifiedllvm/test/Analysis/CostModel/AMDGPU/fsub.ll
Commit 52912fe7ae460ebfef5dd9194a580ee8e8440b3c by lebedev.ri
[NFC][X86][LV] Add costmodel test coverage for interleaved i32 load/store stride=2
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-store-i32-stride-2.ll
The file was addedllvm/test/Analysis/CostModel/X86/interleaved-load-i32-stride-2.ll
Commit 7dffb8b4da530d481977e31f439a92c5f6f2174a by lebedev.ri
[NFC][X86][Codegen] Add test coverage for interleaved i32 load/store stride=2
The file was addedllvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-2.ll
The file was addedllvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-2.ll
Commit fb4e44c4e7daaaa1d2776e76d43566b0db264f30 by stefanp
[PowerPC] The builtins load8r and store8r are Power 7 plus.

This patch makes sure that the builtins __builtin_ppc_load8r and
__ builtin_ppc_store8r are only available for Power 7 and up.
Currently the builtins seem to produce incorrect code if used for
Power 6 or before.

Reviewed By: nemanjai, #powerpc

Differential Revision: https://reviews.llvm.org/D110653
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.cpp
The file was modifiedclang/test/Driver/ppc-isa-features.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstr64Bit.td
The file was modifiedclang/lib/Basic/Targets/PPC.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPC.td
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.h
The file was modifiedclang/lib/Basic/Targets/PPC.h
Commit 8b8da01d8827fb17412a57c90fd7056828a0ad67 by wyehia
Revert "[LTO][Legacy] Add -debug-pass-manager option to enable pass run/skip trace."

This reverts commit a60405cf035dc114e7ee090139bed2577f4ea7ef.
The file was modifiedllvm/lib/LTO/ThinLTOCodeGenerator.cpp
The file was modifiedllvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
The file was modifiedllvm/lib/LTO/LTOCodeGenerator.cpp
The file was removedllvm/test/tools/llvm-lto/lto-passes.ll
The file was modifiedllvm/tools/llvm-lto/llvm-lto.cpp
The file was modifiedllvm/lib/LTO/LTO.cpp
The file was modifiedllvm/tools/llvm-lto2/llvm-lto2.cpp
Commit a28896ae6ae86ca20027f45a5bd403ca2116da22 by clementval
[fir] Move parser/printer/verifier of fir.string_lit and add builders

Move the parser, printer and verifier to the .cpp file. Add builders
needed for lowering.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: schweitz, mehdi_amini

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

Co-authored-by: Valentin Clement <clementval@gmail.com>
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
Commit 986607896fcf720a6422dd26cfacde29ecf1a835 by github
[NFC][clang] Add newline to end of 2005-01-02-ConstantInits.c

This was removed in a18181931f99.
The file was modifiedclang/test/CodeGen/2005-01-02-ConstantInits.c
Commit 3f8027fb67bc4efae9959a4d75f8f37ecf0c3985 by bjorn.a.pettersson
[test] Update some test cases to use -passes when specifying the pipeline

This updates transform test cases for
  ADCE
  AddDiscriminators
  AggressiveInstCombine
  AlignmentFromAssumptions
  ArgumentPromotion
  BDCE
  CalledValuePropagation
  DCE
  Reg2Mem
  WholeProgramDevirt
to use the -passes syntax when specifying the pipeline.

Given that LLVM_ENABLE_NEW_PASS_MANAGER isn't set to off (which is
a deprecated feature) the updated test cases already used the new
pass manager, but they were using the legacy syntax when specifying
the passes to run. This patch can be seen as a step toward deprecating
that interface.

This patch also removes some redundant RUN lines. Here I am
referring to test cases that had multiple RUN lines verifying both
the legacy "-passname" syntax and the new "-passes=passname" syntax.
Since we switched the default pass manager to "new PM" both RUN lines
have verified the new PM version of the pass (more or less wasting
time running the same test twice), unless LLVM_ENABLE_NEW_PASS_MANAGER
is set to "off". It is assumed that it is enough to run these tests
with the new pass manager now.

Differential Revision: https://reviews.llvm.org/D108472
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/import.ll
The file was modifiedllvm/test/Transforms/BDCE/dbg-multipleuses.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-no-this.ll
The file was modifiedllvm/test/Transforms/ADCE/delete-profiling-calls-to-constant.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/attrs.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/reserve-tbaa.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-vcp.ll
The file was modifiedllvm/test/Transforms/ADCE/basictest2.ll
The file was modifiedllvm/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll
The file was modifiedllvm/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-uses-this.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_multi_uses.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/nonzero-address-spaces.ll
The file was modifiedllvm/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll
The file was modifiedllvm/test/Transforms/DCE/dbg-value-removal.ll
The file was modifiedllvm/test/Transforms/ADCE/blocks-with-dead-term-nondeterministic.ll
The file was modifiedllvm/test/Transforms/BDCE/sext_multi_uses.ll
The file was modifiedllvm/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll
The file was modifiedllvm/test/Transforms/BDCE/willreturn.ll
The file was modifiedllvm/test/Transforms/ADCE/dce_pure_invoke.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/oneline.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-accesses-memory.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-decl.ll
The file was modifiedllvm/test/Transforms/BDCE/pr41925.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-end.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/call.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/inalloca.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/unique-retval-same-vtable.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/struct-vtable.ll
The file was modifiedllvm/test/Transforms/ADCE/unreachable-function.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/dead-gep-no-promotion.ll
The file was modifiedllvm/test/Transforms/DCE/guards.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/control-flow2.ll
The file was modifiedllvm/test/Transforms/DCE/basic.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/uniform-retval-invoke.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/import-indir.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/aggregate-promote-dead-gep.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/variadic.ll
The file was modifiedllvm/test/Transforms/BDCE/dead-void-ro.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/devirt-single-impl2.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-type-mismatch.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/invoke.ll
The file was modifiedllvm/test/Transforms/BDCE/dead-uses.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/uniform-retval-multiple-assumes.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/pr50555.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/unique-retval.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-check.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll
The file was modifiedllvm/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll
The file was modifiedllvm/test/Transforms/ADCE/2017-08-21-DomTree-deletions.ll
The file was modifiedllvm/test/Transforms/DCE/calls-errno.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/soa-vtable.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-nothing.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/memcpy-discriminator.ll
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/simple.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-05-22-PHITest.ll
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/amdgpu-crash.ll
The file was modifiedllvm/test/Transforms/DCE/basic-preservation.ll
The file was modifiedllvm/test/Transforms/ADCE/willreturn.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/popcount.ll
The file was modifiedllvm/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/non-constant-vtable.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
The file was modifiedllvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll
The file was modifiedllvm/test/Transforms/ADCE/broken-loop-info.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/aggregate-promote.ll
The file was modifiedllvm/test/Transforms/DCE/int_sideeffect.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/byval.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
The file was modifiedllvm/test/Transforms/ADCE/dce_pure_call.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_select_cmp.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/constant-arg.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/sret.ll
The file was modifiedllvm/test/Transforms/BDCE/order.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/no-discriminators.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/chained.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/pr27568.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-too-wide-ints.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_shl.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_ashr.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/inlined.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/dbg-declare-discriminator.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/pointer-vtable.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll
The file was modifiedllvm/test/Transforms/ADCE/debug-info-intrinsic.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/rotate.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-01-31-UseStuckAround.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/bad-read-from-vtable.ll
The file was modifiedllvm/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_const_expr.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/multiple.ll
The file was modifiedllvm/test/Transforms/BDCE/dce-pure.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/uniform-retval.ll
The file was modifiedllvm/test/Transforms/BDCE/pr26587.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-05-28-Crash.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/pr33641_remove_arg_dbgvalue.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-multiple-assumes.ll
The file was modifiedllvm/test/Transforms/BDCE/vectors.ll
The file was modifiedllvm/test/Transforms/CalledValuePropagation/simple-select.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/import-no-dominating-assume.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-check.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vtable-decl.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/funnel.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_select.ll
The file was modifiedllvm/test/Transforms/CalledValuePropagation/simple-arguments.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/diamond.ll
The file was modifiedllvm/test/Transforms/ADCE/2002-07-29-Segfault.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/branch-funnel-threshold.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/unique-retval-multiple-assumes.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_unreachable_bb.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/masked-cmp.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-begin.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/control-flow.ll
The file was modifiedllvm/test/Transforms/AggressiveInstCombine/trunc_lshr.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/basic.ll
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
The file was modifiedllvm/test/Transforms/ADCE/basictest1.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-multiple-assumes.ll
The file was modifiedllvm/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/first-only.ll
The file was modifiedllvm/test/Transforms/BDCE/basic.ll
The file was modifiedllvm/test/Transforms/AddDiscriminators/call-nested.ll
The file was modifiedllvm/test/Transforms/BDCE/invalidate-assumptions.ll
The file was modifiedllvm/test/Transforms/BDCE/vectors-inseltpoison.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/expand-check.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll
The file was modifiedllvm/test/Transforms/BDCE/intrinsics.ll
The file was modifiedllvm/test/Transforms/WholeProgramDevirt/vcp-non-constant-arg.ll
The file was modifiedllvm/test/Transforms/AlignmentFromAssumptions/start-unk.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/dbg.ll
The file was modifiedllvm/test/Transforms/CalledValuePropagation/simple-memory.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/naked_functions.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/musttail.ll
The file was modifiedllvm/test/Transforms/ADCE/adce-salvage-dbg-value.ll
The file was modifiedllvm/test/Transforms/Reg2Mem/crash.ll
Commit 969359e3b86b6cd238bcb48cdaeb9be5dbeddb4b by arthur.j.odwyer
[libc++] [compare] Named comparison functions, is_eq etc.

Some of these were previously half-implemented in "ordering.h";
now they're all implemented, and tested.
Note that `constexpr` functions are implicitly `inline`, so the
standard wording omits `inline` on these; but Louis and I agree
that that's surprising and it's better to be explicit about it.

Differential Revision: https://reviews.llvm.org/D110515
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedlibcxx/include/compare
The file was addedlibcxx/include/__compare/is_eq.h
The file was modifiedlibcxx/include/__compare/ordering.h
The file was addedlibcxx/test/std/language.support/cmp/compare.syn/named_functions.pass.cpp
The file was modifiedlibcxx/include/module.modulemap
The file was addedlibcxx/test/libcxx/diagnostics/detail.headers/compare/is_eq.module.verify.cpp
Commit 52711fb8da1b0151f09c41bce1a3f0b5689ff87a by pklausler
[flang] Make builtin types more easily accessible; use them

Rearrange the contents of __builtin_* module files a little and
make sure that semantics implicitly USEs the module __Fortran_builtins
before processing each source file.  This ensures that the special derived
types for TEAM_TYPE, EVENT_TYPE, LOCK_TYPE, &c. exist in the symbol table
where they will be available for use in coarray intrinsic function
processing.

Update IsTeamType() to exploit access to the __Fortran_builtins
module rather than applying ad hoc name tests.  Move it and some
other utilities from Semantics/tools.* to Evaluate/tools.* to make
them available to intrinsics processing.

Add/correct the intrinsic table definitions for GET_TEAM, TEAM_NUMBER,
and THIS_IMAGE to exercise the built-in TEAM_TYPE as an argument and
as a result.

Add/correct/extend tests accordingly.

Differential Revision: https://reviews.llvm.org/D110356
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/include/flang/Evaluate/variable.h
The file was modifiedflang/tools/f18/CMakeLists.txt
The file was modifiedflang/lib/Evaluate/tools.cpp
The file was modifiedflang/test/Semantics/resolve88.f90
The file was modifiedflang/module/__fortran_type_info.f90
The file was modifiedflang/include/flang/Semantics/tools.h
The file was modifiedflang/lib/Semantics/semantics.cpp
The file was modifiedflang/lib/Semantics/runtime-type-info.cpp
The file was modifiedflang/include/flang/Semantics/semantics.h
The file was modifiedflang/include/flang/Evaluate/intrinsics.h
The file was modifiedflang/lib/Semantics/tools.cpp
The file was modifiedflang/include/flang/Evaluate/tools.h
The file was modifiedflang/module/__fortran_builtins.f90
The file was modifiedflang/lib/Semantics/mod-file.cpp
The file was modifiedflang/test/Semantics/this_image.f90
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was modifiedflang/lib/Semantics/mod-file.h
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/misc-declarations.f90
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
Commit 87ce7e65f24c80de67e1434490a4a9586e0435e1 by jhuber6
[OpenMP] Add missing distribute definitions to AAKernelInfo

Summary:
The RTL functions added in https://reviews.llvm.org/D110429 were
mistakenly left out from the list of safe runtime calls in AAKernelInfo.
This patch adds them in.
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit c11ebfea6d4d99a28d3b746a5a416e3ab81a858c by jhuber6
[OpenMP][NFC] Fix linting messages in OpenMPOpt

Summary:
This patch addresses some linting messages I keep getting in my editor
when working on OpenMPOpt.
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit d12502a3abae41c106b715cd29281a4de05efef2 by jhuber6
[OpenMP] Apply OpenMP assumptions to applicable call sites

This patch adds OpenMP assumption attributes to call sites in applicable
regions. Currently this applies the caller's assumption attributes to
any calls contained within it. So, if a call occurs inside an OpenMP
assumes region to a function outside that region, we will assume that
call respects the assumptions. This is primarily useful for inline
assembly calls used heavily in the OpenMP GPU device runtime, which
allows us to then make judgements about what the ASM will do.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D110655
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
The file was modifiedclang/test/OpenMP/assumes_include_nvptx.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.h
The file was modifiedclang/test/OpenMP/assumes_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
Commit 9ad17fe0debb0b48798aaba6d07b65136fcf0664 by llvmgnsyncbot
[gn build] Port 969359e3b86b
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 49813f7fbf5e18fb4bb15e8aaced27716e9366ba by nikita.ppv
[BasicAA] Pass DecomposedGEP to constantOffsetHeuristic() (NFC)

Rather than separately passing VarIndices and BaseOffset, pass
the whole DecomposedGEP.
The file was modifiedllvm/include/llvm/Analysis/BasicAliasAnalysis.h
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
Commit 1f6458cb1944b69f052db463e5f2c6304f16b256 by mizvekov
[clang] NFC: remove duplicated code around type constraint and templ arg subst

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

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D110726
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
The file was modifiedclang/lib/Sema/SemaTemplateDeduction.cpp
The file was modifiedclang/include/clang/AST/DeclTemplate.h
Commit e1e3b6ee72977c584052a9da8735c31c2a17385a by rickytaylor26
[M68k] Avoid UB in disassembler

When reading 32 bits a 32-bit shift would be executed.

This is undefined behaviour, but in this case we can just replace the
entire scratch value to avoid it.

Differential Revision: https://reviews.llvm.org/D110769
The file was modifiedllvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp
Commit b852013dd729a74b57cfb098c441f84ea3431498 by Louis Dionne
[libc++][ci] Run alternative builds earlier to reduce latency

The Runtimes build is by far our longest CI configuration, so it makes
sense to run it earlier during CI. For consistency, move all the other
jobs from that "section" too.
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
Commit af10d6f350ff3e92c6ffae66cc9dac36884cdd55 by mizvekov
[clang] don't instantiate templates with injected arguments

There is a special situation with templates in local classes,
as can be seen in this example with generic lambdas in function scope:
```
template<class T1> void foo() {
    (void)[]<class T2>() {
      struct S {
        void bar() { (void)[]<class T3>(T2) {}; }
      };
    };
};
template void foo<int>();
```

As a consequence of the resolution of DR1484, bar is instantiated during the
substitution of foo, and in this context we would substitute the lambda within
it with it's own parameters "injected" (turned into arguments).

This can't be properly dealt with for at least a couple of reasons:
* The 'TemplateTypeParm' type itself can only deal with canonical replacement
  types, which the injected arguments are not.
* If T3 were constrained in the example above, our (non-conforming) eager
  substitution of type constraints would just leave that parameter dangling.

Instead of substituting with injected parameters, this patch just leaves those
inner levels unreplaced.

Since injected arguments appear to be unused within the users of
`getTemplateInstantiationArgs`, this patch just removes that support there and
leaves a couple of asserts in place.

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

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D110727
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
The file was addedclang/test/SemaTemplate/generic-lambda.cpp
Commit 9892d1644f62cf8f5133ee0d2ebafb56f6500cc1 by Louis Dionne
[libc++][libc++abi] Add tests for vendor-specific properties

Vendors take libc++ and ship it in various ways. Some vendors might
ship it differently from what upstream LLVM does, i.e. the install
location might be different, some ABI properties might differ, etc.

In the past few years, I've come across several instances where
having a place to test some of these properties would have been
incredibly useful. I also just got bitten by the lack of tests
of that kind, so I'm adding some now.

The tests added by this commit for Apple platforms have numerous
TODOs that capture discrepancies between the upstream LLVM CMake
and the slightly-modified build we perform internally to produce
Apple's system libc++. In the future, the goal would be to upstream
all those differences so that it's possible to build a faithful
Apple system libc++ with the upstream LLVM sources only.

But this isn't only useful for Apple - this lays out the path for
any vendor being able to add their own checks (either upstream or
downstream) to libc++.

Differential Revision: https://reviews.llvm.org/D110736
The file was modifiedlibcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp
The file was modifiedlibcxx/cmake/caches/Apple.cmake
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp
The file was modifiedlibcxx/test/std/strings/c.strings/cuchar.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp
The file was modifiedlibcxx/test/configs/libcxx-trunk-shared.cfg.in
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp
The file was modifiedlibcxxabi/test/lit.site.cfg.in
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp
The file was modifiedlibcxx/test/configs/libcxx-trunk-static.cfg.in
The file was addedlibcxx/test/libcxx/vendor/apple/system-install-properties.sh.cpp
The file was modifiedlibcxx/utils/libcxx/test/params.py
The file was modifiedlibcxx/test/std/utilities/charconv/charconv.to.chars/integral.bool.fail.cpp
The file was modifiedlibcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp
The file was modifiedlibcxx/test/configs/legacy.cfg.in
The file was modifiedlibcxx/test/std/utilities/charconv/charconv.from.chars/integral.bool.fail.cpp
The file was modifiedlibcxx/utils/libcxx/test/config.py
The file was modifiedlibcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp
The file was addedlibcxxabi/test/vendor/apple/system-install-properties.sh.cpp
Commit 0c874382b98105a1bd66b553738f57999da78af8 by Louis Dionne
[libc++] Rename testing configurations to match Lit stdlib= parameter

To reduce confusion, this commit makes sure that the name of the testing
configurations match the convention used for the stdlib= Lit parameter,
since those effectively correspond to each other.
The file was removedlibcxx/test/configs/libcxx-trunk-shared.cfg.in
The file was addedlibcxx/test/configs/llvm-libc++-shared.cfg.in
The file was removedlibcxx/test/configs/libcxx-trunk-static.cfg.in
The file was modifiedlibcxx/utils/ci/run-buildbot
The file was addedlibcxx/test/configs/llvm-libc++-static.cfg.in
Commit 22555bafe90dcb2e3d9d59e41e993edc0e4689fc by sam.mccall
[VFS] InMemoryFilesystem's UniqueIDs are a function of path and content.

This ensures that re-creating "the same" FS results in the same UIDs for files.
In turn, this means that creating a clang module (preamble) using one in-memory
filesystem and consuming it using another doesn't create duplicate FileEntrys
for files that are the same in both FSes.

It's tempting to give the creator control over the UIDs instead. However that
requires fiddly API changes, e.g. what should the UIDs of intermediate
directories be?
This change is more "magic" but seems safe given:
- InMemoryFilesystem is used in testing more than production
- comparing UIDs across filesystems is unusual
- files with the same path and content are usually logically equivalent

(The usual reason for re-creating virtual filesystems rather than reusing them
is that typical use involves mutating their CWD and so is not threadsafe).

Differential Revision: https://reviews.llvm.org/D110711
The file was modifiedllvm/lib/Support/VirtualFileSystem.cpp
The file was modifiedllvm/unittests/Support/VirtualFileSystemTest.cpp
Commit 940755515da6254abc3af6e21375fde8c2a8f3b4 by Louis Dionne
[libc++] Add the std::views::common range adaptor

Differential Revision: https://reviews.llvm.org/D110433
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.common.view/types.h
The file was addedlibcxx/test/std/ranges/range.adaptors/range.common.view/adaptor.pass.cpp
The file was modifiedlibcxx/include/__ranges/common_view.h
The file was addedlibcxx/test/libcxx/ranges/range.adaptors/range.common.view/adaptor.nodiscard.verify.cpp
Commit 45288edb6500da98e9a3f133da0f14d0f7586c5b by nikita.ppv
[BasicAA] Pass whole DecomposedGEP to subtraction API (NFC)

Rather than separately handling subtraction of offset and variable
indices, make this one operation. Also rewrite the implementation
to use range-based for loops.
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
The file was modifiedllvm/include/llvm/Analysis/BasicAliasAnalysis.h
Commit 79b422080612fec7fb720052378f448174c016c7 by leonardchan
[runtimes] Ensure required deps for tests targets are actually built

When building compiler-rt via runtimes, many tests fail because tools like
FileCheck and count aren't built yet. This is because the RUNTIME_TEST_DEPENDENCIES
haven't been added to any of the compiler-rt targets. The fix is to explicitly
add any runtimes as test_targets.

Differential Revision: https://reviews.llvm.org/D109625
The file was modifiedllvm/runtimes/CMakeLists.txt
Commit 28981015526f2192440c18f18e8a20cd11b0779c by nikita.ppv
[BasicAA] Move DecomposedGEP out of header (NFC)

It's sufficient to have a forward declaration in the header, we
can move the definition of the struct (and VariableGEPIndex)
in the source file.
The file was modifiedllvm/include/llvm/Analysis/BasicAliasAnalysis.h
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
Commit 56cd2f93e0f431883518a1d20bd033fe252fa2e4 by Louis Dionne
[libc++] Fix missed rename of libcxx-trunk-shared.cfg.in

There was a race condition between the application of 565d45541f86
and the application of 0c874382b981, which led to the latter missing
some occurences.
The file was modifiedlibcxx/utils/ci/run-buildbot
Commit 1c0e8a98e4916038dc77a406d3b0c7f707e8233f by Amara Emerson
[AArch64][GlobalISel] Widen G_BUILD_VECTOR source & dest element types to s8.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-build-vector.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir
Commit 826d3eaae7e9a87c37d88f4b1a64ab8a9ce11086 by rob.suderman
[mlir][tosa] Ranked check for transpose was wrong.

Should have verified the perm length and input rank were the same before
inferring shape. Caused a crash with invalid IR.

Differential Revision: https://reviews.llvm.org/D110674
The file was modifiedmlir/lib/Dialect/Tosa/IR/TosaOps.cpp
Commit ae0e037f532b2ac118712c50823348a7acb6f850 by arthur.j.odwyer
[libc++] Simplify the _LIBCPP_CONSTEXPR markings on starts_with() etc.

This came out of review comments on D110598.

Differential Revision: https://reviews.llvm.org/D110637
The file was modifiedlibcxx/include/string
The file was modifiedlibcxx/include/string_view
Commit e49c0c5100b992e1a18c7225bc147431089f560f by andrew.kaylor
[IntelJITListener] Fix order in JitListener/multiple.ll

As reported in Bugzilla 51859, the JitListener/multiple.ll test had
become stale. The function order in the emitted image was changed by an
update to the MC/ElfObjectWriter code and because this test is disabled
by default, it wasn't updated.
The file was modifiedllvm/test/JitListener/multiple.ll
Commit 8971b99c8387f3daf2e802956f2688b3b77335a4 by i
[llvm-objdump/llvm-readobj/obj2yaml/yaml2obj] Support STO_RISCV_VARIANT_CC and DT_RISCV_VARIANT_CC

STO_RISCV_VARIANT_CC marks that a symbol uses a non-standard calling
convention or the vector calling convention.

See https://github.com/riscv/riscv-elf-psabi-doc/pull/190

Differential Revision: https://reviews.llvm.org/D107949
The file was modifiedllvm/test/tools/obj2yaml/ELF/dynamic-section-arch-tags.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test
The file was modifiedllvm/test/tools/llvm-objdump/ELF/dynamic-section-machine-specific.test
The file was addedllvm/test/tools/llvm-readobj/ELF/RISCV/stother.test
The file was modifiedllvm/lib/Object/ELF.cpp
The file was addedllvm/test/tools/obj2yaml/ELF/riscv-sym-other.yaml
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/include/llvm/BinaryFormat/DynamicTags.def
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h
Commit 27451a05ed4d13294182ec7e999a9d4f90bc0d12 by springerm
[mlir][vector] Fold transfer ops and tensor.extract/insert_slice.

* Fold vector.transfer_read and tensor.extract_slice.
* Fold vector.transfer_write and tensor.insert_slice.

Differential Revision: https://reviews.llvm.org/D110627
The file was modifiedmlir/include/mlir/Dialect/StandardOps/Utils/Utils.h
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/test/Dialect/Vector/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/Utils/Utils.cpp
Commit 0cd9d8a48bdddb17de2c6388f9d775353f9acab9 by akhuang
Revert "[clang-cl] Accept `#pragma warning(disable : N)` for some N"
because it causes `error: error reading '/wd4091'` errors in
compiler-rt builds.
The file was modifiedllvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
The file was modifiedclang/lib/Basic/DiagnosticIDs.cpp
The file was modifiedclang/tools/diagtool/DiagnosticNames.cpp
The file was modifiedclang/lib/Basic/CMakeLists.txt
The file was modifiedclang/include/clang/Basic/DiagnosticIDs.h
The file was modifiedclang/utils/TableGen/ClangDiagnosticsEmitter.cpp
The file was removedclang/include/clang/Basic/CLWarnings.h
The file was modifiedclang/test/Driver/cl-options.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Basic/Diagnostic.h
The file was removedclang/lib/Basic/CLWarnings.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Basic/Diagnostic.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/include/clang/Basic/DiagnosticCategories.h
The file was modifiedclang/lib/Lex/Pragma.cpp
The file was removedclang/test/Sema/pragma-warning.cpp
Commit 01641f665f5a3f94fc9e2bba598b5a65a6a7bd01 by shivam98.tkg
[clang] Fix sentence in the usage section of ThinLTO docs.

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D110750
The file was modifiedclang/docs/ThinLTO.rst
Commit 52785989e95db15f5021f095198f821772d3d656 by ruiling.song
AMDGPU: Broadcast scalar boolean to vector boolean explicitly

This is used to fix wrong code generation of s_add_co_select_user in
test/CodeGen/AMDGPU/expand-scalar-carry-out-select-user.ll

  s_addc_u32 s4, s6, 0
  s_cselect_b64 vcc, 1, 0    <-- vcc set as 0x1 if SCC==1
  v_mov_b32_e32 v1, s4
  s_cmp_gt_u32 s6, 31
  v_cndmask_b32_e32 v1, 0, v1, vcc

If the s_addc_u32 set SCC, then we will get value 0x1 in VCC.
The v_cndmask will do per thread selection with VCC as condition
register. As VCC only gets the first bit being set, only the first
thread/lane in destination register can get correct result if the
very first lane is active. In fact, we should broadcast the value to all
active lanes of the final register.

The idea here is doing this broadcast to vector boolean explicitly
instead of lowering it into a COPY from SCC which would be interpreted as
selecting between 0/1.

This is used to replace D109754.

Reviewed-by: foad, alex-t

Differential Revision: https://reviews.llvm.org/D109889
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/expand-scalar-carry-out-select-user.ll
Commit b55a964197bdc651533377bbd0b46fa58edf9196 by tejohnson
Second attempt to fix Windows failures from test changes

Try to address Windows flakes from d87bdc272ba47b7d9109ff5c7191454ab2ae6fcb
by adding "|| true" as suggested in D110276 so the whole test doesn't
fail when Windows thinks it can't remove the binary.
The file was modifiedclang/test/Driver/clang_f_opts.c
The file was modifiedlld/test/COFF/pdb-relative-source-lines.test
Commit 3bf3b96629e8dfc55d01ba0cb05ca01a467017fa by jingham
Add the --relative-to-command-file to "command source" so you can
have linked command files in a source tree and get to them all from
one main command file.

Differential Revision: https://reviews.llvm.org/D110601
The file was modifiedlldb/source/Commands/CommandObjectCommands.cpp
The file was modifiedlldb/source/Commands/Options.td
The file was modifiedlldb/test/API/commands/command/source/TestCommandSource.py
The file was addedlldb/test/API/commands/command/source/subdir/subcmds.txt
The file was addedlldb/test/API/commands/command/source/not-relative.txt
The file was addedlldb/test/API/commands/command/source/commands2.txt
Commit 2303391d1f543f4e57f9ed0fc68bad2d4cf890dc by jingham
Make "process attach -c" work correctly, and add a test for it.

The issue here was that we were not updating the interpreter's
execution context when calling HandleCommand to continue the process.
Since we had just created the process, it wasn't in the interpreter's
execution context so HandleCommand failed at CheckRequirements.  The
patch fixes that by passing the process execution context directly
to HandleCommand.

Differential Revision: https://reviews.llvm.org/D110787
The file was modifiedlldb/test/API/commands/process/attach/TestProcessAttach.py
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
Commit 4b32f8bac40dcd1535bfe95757c3de0911bf6d1a by clattner
[ODS/AsmParser] Don't pass MLIRContext with DialectAsmParser.

The former is redundant because the later carries it as part of
its builder.  Add a getContext() helper method to DialectAsmParser
to make this more convenient, and stop passing the context around
explicitly.  This simplifies ODS generated parser hooks for attrs
and types.

This resolves PR51985

Differential Revision: https://reviews.llvm.org/D110796
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
The file was modifiedmlir/test/mlir-tblgen/typedefs.td
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestAttributes.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
The file was modifiedmlir/lib/Dialect/ArmSVE/IR/ArmSVEDialect.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/lib/Dialect/Async/IR/Async.cpp
The file was modifiedmlir/lib/Dialect/EmitC/IR/EmitC.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
The file was modifiedmlir/lib/Dialect/DLTI/DLTI.cpp
The file was modifiedmlir/unittests/Interfaces/DataLayoutInterfacesTest.cpp
The file was modifiedmlir/lib/Dialect/PDL/IR/PDLTypes.cpp
The file was modifiedmlir/test/mlir-tblgen/attrdefs.td
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedflang/lib/Optimizer/Dialect/FIRType.cpp

Summary

  1. Add mlir builder for s390x (details)
  2. Fix builder syntax: the cmake invocation does not include shell expansion and quotes were left as-is in the arg list (details)
Commit 60bd268172440de2e96c188eb7c22e76a630b24a by ulrich.weigand
Add mlir builder for s390x

Differential Revision: https://reviews.llvm.org/D109745
The file was modifiedbuildbot/osuosl/master/config/builders.py
The file was modifiedbuildbot/osuosl/master/config/status.py
Commit 5bf4dc40dbf8491c4afcf15233c989b56f83d706 by joker.eph
Fix builder syntax: the cmake invocation does not include shell expansion and quotes were left as-is in the arg list
The file was modifiedbuildbot/osuosl/master/config/builders.py