Changes

Summary

  1. [X86] Add description of FXAM instruction (details)
  2. [RISCV] Permit larger RVV stacks and stack offsets (details)
  3. [ARM] Fix crash in chained BFI combine due to incorrectly RAUW'ing a node. (details)
  4. [LLD] [COFF] Fix handling of LTO comdats with nontrivial selection types after 728cc0075e5dfdb454eb (details)
  5. [PowerPC] Change VSRpRC allocation order (details)
  6. [OpaquePtr] Enumerate global variable type (details)
  7. [OpaquePtr] Enumerate alloca type (details)
  8. [AArch64] Custom lower <4 x i8> loads (details)
  9. [llvm-cov] Enforce alignment of function records (details)
  10. [lldb] Fix memory tag unsupported test (details)
  11. [OpaquePtr] Split force-opaque-pointers test (NFC) (details)
  12. [OpaquePtr] Allow alias to opaque pointer (details)
  13. [SCEV] Support single-cond range check idiom in applyLoopGuards. (details)
  14. [lldb] Skip tests failing with GCC due to LLDB not being able to call constructors (details)
  15. [lldb] Skip libstdc++ tests failing with GCC (details)
  16. [lldb] Skip TestDataFormatterSynthVal.py with GCC as the test compiler (details)
  17. [Analyzer][solver] Fix crashes during symbol simplification (details)
  18. [SLP][AArch64] Precommit test for D103629, checking <4 x i8> loads. NFC. (details)
  19. [lldb] Re-enable GDB server client memory tag read tests (details)
  20. [GlobalISel] NFC: Change LLT::scalarOrVector to take ElementCount. (details)
  21. [OpenCL] Use DW_LANG_OpenCL language tag for OpenCL C (details)
  22. [OpenMP][NFC] Drop unused headers from amdgpu plugin (details)
  23. [NFC] remove unreferenced function ResolveIPV4HostName (details)
  24. [flang][driver] Add `-fno-analyzed-objects-for-unparse` (details)
  25. [LV] Reflow comment for VectorizationCostTy (NFC). (details)
  26. [OpenCL] Do not include default header for preprocessor output as input (details)
  27. [clang] Fix build failure due to _S (details)
  28. [clangd] Call malloc_trim in clangd-index-server periodically (details)
  29. [clangd] Introduce a log-prefix flag to remote-index-server (details)
  30. [GlobalISel] NFC: Change LLT::changeNumElements to LLT::changeElementCount. (details)
  31. [libc++][NFC] Rename include guard. (details)
  32. [flang][unittest] Add a missing dependency (details)
  33. [Hexagon] Convert getTypeAlignment to return Align (details)
  34. [AMDGPU] Removed unused Predicate HasOffset3fBug. NFC. (details)
  35. [GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize. (details)
  36. [Analysis] use better version of getLibFunc to check for alloc/free calls (details)
  37. [lldb-vscode] Make extension contribute breakpoints use new package.json schema (details)
  38. [OpaquePtr] Allow globals with opaque pointer value type (details)
  39. Revert "[GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize." (details)
  40. [Coroutines] Remove all legacy test command (details)
  41. [ModuloSchedule] Pass loop block explicitly to kernel rewriter. (details)
  42. [mlir][memref] Introduce UnrankedMemRefOf to tablegen definitions (details)
  43. [test][instcombine] Add test cases for all x.with.overflow overflow checks (details)
  44. [UpdateCCTestChecks] Support --check-globals (details)
  45. [instcombine] Fold overflow check using umulo to comparison (details)
  46. [mlir:Async] Add the size parameter to the async.group (details)
  47. [mlir:Async] Implement recursive async work splitting for scf.parallel operation (async-parallel-for pass) (details)
  48. [LV] Doxygenize VectorizationFactor member comments (NFC). (details)
  49. [test] Add coverage for existing overflow rule with uadd.with.overflow (details)
  50. [clang] Make fewer assumptions about path to lit.site.cfg after 9eaf0d120d32 (details)
  51. [libomptarget][amdgpu] Build openmp for two more targets (details)
  52. [AArch64] Extra negated shift tests. NFC (details)
  53. [UpdateCCTestChecks] Fix new test from 9eaf0d120d32 (details)
  54. [X86] Simplify part of the isel for X86ISD::FCMP/STRICT_FCMP/STRICT_FCMPS. (details)
  55. [DAG] Fold neg(splat(neg(x)) -> splat(x) (details)
  56. [flang] Fix generic/specific procedure confusion (details)
  57. [IR] Add Type::isOpaquePointerTy() helper (NFC) (details)
  58. [libc++] Enable the rvalue overloads of operator<< and operator>> even in C++03. (details)
  59. [OpaquePtr] Enumerate GlobalAlias value type (details)
  60. [mlir:Async] Submit accidentally omitted changes (details)
  61. [Coroutines] Define __coro_frame_ty in function scope (details)
  62. [SystemZ] Add support for .reloc assembler directive (details)
  63. [ELF] --sysroot: change sysrooted script to not fall back for an absolute path (details)
  64. [llvm-rc] Don't rewrite the arch in the default triple unless necessary (details)
  65. [analyzer] Fix assertion failure on code with transparent unions (details)
  66. [PowerPC] Disable combine 64-bit bswap(load) without LDBRX (details)
  67. [OpenMP] Add Module metadata for OpenMP compilation (details)
  68. [OpenMP] Change OpenMPOpt to check openmp metadata (details)
  69. [SimplifyLibCalls] Fix memchr opt to use CreateLogicalAnd (details)
  70. Change PathMappingList::RemapPath to return an optional result (NFC) (details)
  71. [ms] [llvm-ml] Add support for ALIGN, EVEN, and ORG directives (details)
  72. [NFC] Prefer ConstantRange::makeExactICmpRegion over makeAllowedICmpRegion (details)
  73. Add support for the NSMutableDictionary variant: "__NSFrozenDictionaryM" (details)
  74. [lldb] Use the non-locking variant of objc_copyRealizedClassList (details)
  75. [clang] Stop providing builtin overload candidate for relational function pointer comparisons (details)
  76. [mlir][sparse] add print methods to Merger (for debugging) (details)
  77. OpaquePtr: Reject 'ptr*' again when parsing textual IR (details)
  78. Revert "[InstCombine] Make indexed compare fold opaque ptr compatible" (details)
  79. [libc] Use __builtin_ctzll instead of __builtin_ctzl in elements_x86.h. (details)
  80. [DFSan] Change shadow and origin memory layouts to match MSan. (details)
  81. Disable ReplaceLDS pass, patch up tests to match (details)
  82. [X86] Selecting fld0 for undefined value in fast ISEL. (details)
  83. [ms] [llvm-ml] Disable C-style comments (details)
Commit b36d214beda522ecea7062862be07b26cd36b5ba by sepavloff
[X86] Add description of FXAM instruction

Previously this instruction could be used only in assembler. This change
makes it available for compiler also. Scheduling information was copied
from FTST instruction, hopefully this can be a satisfactory approximation.

Differential Revision: https://reviews.llvm.org/D104853
The file was modifiedllvm/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s
The file was modifiedllvm/lib/Target/X86/X86FloatingPoint.cpp
The file was modifiedllvm/lib/Target/X86/X86ScheduleAtom.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver1.td
The file was modifiedllvm/test/tools/llvm-mca/X86/BdVer2/resources-x87.s
The file was modifiedllvm/test/tools/llvm-mca/X86/BtVer2/resources-x87.s
The file was modifiedllvm/lib/Target/X86/X86InstrFPStack.td
The file was modifiedllvm/lib/Target/X86/X86SchedHaswell.td
The file was modifiedllvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s
The file was modifiedllvm/test/tools/llvm-mca/X86/SLM/resources-x87.s
The file was modifiedllvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver3/resources-x87.s
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver2.td
The file was modifiedllvm/test/tools/llvm-mca/X86/Barcelona/resources-x87.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Broadwell/resources-x87.s
The file was modifiedllvm/test/tools/llvm-mca/X86/Generic/resources-x87.s
Commit ab1bd255939e23117706d79698b93f933fb114f4 by fraser
[RISCV] Permit larger RVV stacks and stack offsets

This patch teaches the compiler to generate code to handle larger RVV
stack sizes and stack offsets which resolve an amount larger than 2047
vector registers in size.

The previous behaviour was asserting on such large values as it was only
able to materialize the constant by feeding it to the 12-bit immediate
of an `ADDI` instruction. The compiler can now materialize this amount
into a temporary register before continuing with the computation.

A test case for this scenario is included which also checks that the
temporary register used to materialize the amount doesn't require an
additional spill slot over what we're already reserving for RVV code.

Reviewed By: rogfer01

Differential Revision: https://reviews.llvm.org/D104727
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was addedllvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir
Commit f9b3840c3daf050d748f452a8105dfe661f8122e by Amara Emerson
[ARM] Fix crash in chained BFI combine due to incorrectly RAUW'ing a node.

For a bfi chain like:
a = bfi input, x, y
b = bfi a, x', y'

The previous code was RAUW'ing a with x, mutating the second 'b' bfi, and when
SelectionDAG's CSE code ended up deleting it unexpectedly, bad things happend.
There's no need to RAUW in this case because we can just return our newly
created replacement BFI node. It also looked incorrect because it didn't account
for other users of the 'a' bfi.

Since it seems that chains of more than 2 BFI nodes are hard/impossible to
produce without this combine kicking in at some point, I've removed that
functionality since it had no test coverage.

rdar://79095399

Differential Revision: https://reviews.llvm.org/D104868
The file was addedllvm/test/CodeGen/ARM/bfi-chain-cse-crash.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
Commit d07f43641f98a8e0024cf8e94ef98c7c912221d9 by martin
[LLD] [COFF] Fix handling of LTO comdats with nontrivial selection types after 728cc0075e5dfdb454eb

Commit 728cc0075e5dfdb454ebe6418b63bdffae71ec14 made comdat symbols
from LTO objects be treated as any regular comdat symbol. This works
great for symbols that actually are IMAGE_COMDAT_SELECT_ANY, but
if the symbols have a less trivial selection type that require comparing
either the section chunk size or contents, we can't check that before
actually doing the LTO compilation.

Therefore bring back one aspect of handling from before; that comdat
resolution with a leader from an LTO symbol is essentially skipped,
like it was before 728cc0075e5dfdb454ebe6418b63bdffae71ec14.

Differential Revision: https://reviews.llvm.org/D104605
The file was modifiedlld/COFF/InputFiles.cpp
The file was addedlld/test/COFF/lto-comdat-samesize.ll
Commit a08fc1361aa307874045edde8c7af7642f4713a0 by qiucofan
[PowerPC] Change VSRpRC allocation order

On PowerPC, VSRpRC represents the pairs of even and odd VSX register,
and VRRC corresponds to higher 32 VSX registers. In some cases, extra
copies are produced when handling incoming VRRC arguments with VSRpRC.

This patch changes allocation order of VSRpRC to eliminate this kind of
copy.

Stack frame sizes may increase if allocating non-volatile registers, and
some other vector copies happen. They need fix in future changes.

Reviewed By: nemanjai

Differential Revision: https://reviews.llvm.org/D104855
The file was modifiedllvm/test/CodeGen/PowerPC/mma-acc-spill.ll
The file was modifiedllvm/test/CodeGen/PowerPC/loop-p10-pair-prepare.ll
The file was modifiedllvm/test/CodeGen/PowerPC/mma-intrinsics.ll
The file was modifiedllvm/test/CodeGen/PowerPC/more-dq-form-prepare.ll
The file was modifiedllvm/test/CodeGen/PowerPC/mma-acc-memops.ll
The file was modifiedllvm/test/CodeGen/PowerPC/mma-outer-product.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.td
The file was modifiedllvm/test/CodeGen/PowerPC/paired-vector-intrinsics.ll
The file was modifiedllvm/test/CodeGen/PowerPC/dform-pair-load-store.ll
The file was modifiedllvm/test/CodeGen/PowerPC/mma-phi-accs.ll
The file was modifiedllvm/test/CodeGen/PowerPC/spill-vec-pair.ll
Commit 536872a1f7a1f9fa72591e1424eaece39f5edd1a by nikita.ppv
[OpaquePtr] Enumerate global variable type

This is no longer implicitly enumerated through the pointer type.
The file was modifiedllvm/test/Other/force-opaque-ptrs.ll
The file was modifiedllvm/lib/Bitcode/Writer/ValueEnumerator.cpp
Commit 18d7e822ab22e6747f01b0409ace5044733be162 by nikita.ppv
[OpaquePtr] Enumerate alloca type

This is no longer implicitly enumerated through the pointer type.
The file was modifiedllvm/lib/Bitcode/Writer/ValueEnumerator.cpp
The file was modifiedllvm/test/Other/force-opaque-ptrs.ll
Commit 51e434fc2590d1d3ffa6545cd07290a238db2b88 by sjoerd.meijer
[AArch64] Custom lower <4 x i8> loads

This custom lowers <4 x i8> vector loads using a 32-bit load, followed by 2
SSHLL instructions to extend it to e.g. a <4 x i32> vector. Before, it was
really inefficient and expensive to construct a <4 x i32> for this as 4 byte
loads and 4 moves were used. With this improvement SLP vectorisation might for
example become profitable, see D103629.

Differential Revision: https://reviews.llvm.org/D104782
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vshift.ll
The file was modifiedllvm/test/CodeGen/AArch64/uadd_sat_vec.ll
The file was removedllvm/test/CodeGen/AArch64/neon-extload.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sadd_sat_vec.ll
The file was modifiedllvm/test/CodeGen/AArch64/ssub_sat_vec.ll
The file was modifiedllvm/test/CodeGen/AArch64/usub_sat_vec.ll
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-load-ext.ll
Commit effc3339f6c7702357471efc849c4fc31b4b1aad by sguelton
[llvm-cov] Enforce alignment of function records

Function Records are required to be aligned on 8 bytes. This is enforced for each
records except the first, when one relies on the default alignment within an
std::string. There's no such guarantee, and indeed on 32 bits for some
implementation of std::string this is not enforced.

Provide a portable implementation based on llvm's MemoryBuffer.

Differential Revision: https://reviews.llvm.org/D104745
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
The file was modifiedllvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
Commit 64f98aae40894cb0b281723c7f91e73705f551ce by david.spickett
[lldb] Fix memory tag unsupported test

This corrects the test added in
31f9960c38529ce805edf9764535eb0ce188cadf
and temporarily patched in
3b4aad1186e8e8e6f6c7887cb5e8d9bfd7d3ce2f.

This test checks that the memory tag read
command errors when you use it on a platform
without memory tagging.
(which is why we skip the test if you actually
have MTE)

The problem with this test is that there's
two levels of unsupported each with it's own
specific error.

On anything that isn't AArch64, there's no
tagging extension we support. So you're told
that that is the case. As in "this won't ever work".

When you're on AArch64 we know that MTE could
be present on the remote and when we find that it
isn't, we tell you that instead.

Expect a different error message on AArch64 to fix
the test.
The file was modifiedlldb/test/API/functionalities/memory/tag/TestMemoryTag.py
Commit 7b8ed2b8b6cb19f8f6aebd1f95702f96f23efea9 by nikita.ppv
[OpaquePtr] Split force-opaque-pointers test (NFC)

Separate out the case that uses llvm-dis without
--force-opaque-pointers. This will generally produce a different
result from the other cases, because things like global symbol
pointers will be non-opaque in this case.
The file was addedllvm/test/Other/force-opaque-ptrs-typed-dis.ll
The file was modifiedllvm/test/Other/force-opaque-ptrs.ll
Commit 7206ad04d585fd5300020f883debaef4429e03ee by nikita.ppv
[OpaquePtr] Allow alias to opaque pointer

By relaxing the LLParser pointer type assertion.
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/test/Other/force-opaque-ptrs.ll
Commit 6478f3fb78b3e7cddb642dce0f39d5d4a976af1e by flo
[SCEV] Support single-cond range check idiom in applyLoopGuards.

This patch extends applyLoopGuards to detect a single-cond range check
idiom that InstCombine generates.

It extends applyLoopGuards to detect conditions of the form
(-C1 + X < C2). InstCombine will create this form when combining two
checks of the form (X u< C2 + C1) and (X >=u C1).

In practice, this enables us to correctly compute a tight trip count
bounds for code as in the function below. InstCombine will fold the
minimum iteration check created by LoopRotate with the user check (< 8).

    void unsigned_check(short *pred, unsigned width) {
        if (width < 8) {
            for (int x = 0; x < width; x++)
                pred[x] = pred[x] * pred[x];
        }
    }

As a consequence, LLVM creates dead vector loops for the code above,
e.g. see https://godbolt.org/z/cb8eTcqET

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

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D104741
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 487ac0b3eef22ba8f1707779d363ec7f49cc7702 by Raphael Isemann
[lldb] Skip tests failing with GCC due to LLDB not being able to call constructors

Tracked in llvm.org/pr50814

These tests fail with all GCC versions I tested (8.5, 9.4, 10.3, 11.1).
The file was modifiedlldb/test/API/lang/cpp/constructors/TestCppConstructors.py
The file was modifiedlldb/test/API/commands/expression/deleting-implicit-copy-constructor/TestDeletingImplicitCopyConstructor.py
The file was modifiedlldb/test/API/lang/cpp/namespace_definitions/TestNamespaceDefinitions.py
The file was modifiedlldb/test/API/lang/cpp/operators/TestCppOperators.py
Commit 0adc66ff8377d26d1600fef36c9e2d8a962414d4 by Raphael Isemann
[lldb] Skip libstdc++ tests failing with GCC

Tracked in llvm.org/pr50861

These tests fail with all GCC versions I tested (8.5, 9.4, 10.3, 11.1).
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/tuple/TestDataFormatterStdTuple.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/unique_ptr/TestDataFormatterStdUniquePtr.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
Commit c3549d4d7a04d83ff559d2be77a9e74e798fdef4 by Raphael Isemann
[lldb] Skip TestDataFormatterSynthVal.py with GCC as the test compiler
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
Commit 0646e3625499b08a3ac9efd48396f3b463a19139 by gabor.marton
[Analyzer][solver] Fix crashes during symbol simplification

Consider the code
```
  void f(int a0, int b0, int c)
  {
      int a1 = a0 - b0;
      int b1 = (unsigned)a1 + c;
      if (c == 0) {
          int d = 7L / b1;
      }
  }
```
At the point of divisiion by `b1` that is considered to be non-zero,
which results in a new constraint for `$a0 - $b0 + $c`. The type
of this sym is unsigned, however, the simplified sym is `$a0 -
$b0` and its type is signed. This is probably the result of the
inherent improper handling of casts. Anyway, Range assignment
for constraints use this type information. Therefore, we must
make sure that first we simplify the symbol and only then we
assign the range.

Differential Revision: https://reviews.llvm.org/D104844
The file was modifiedclang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
The file was addedclang/test/Analysis/solver-sym-simplification-with-proper-range-type.c
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
The file was modifiedclang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
The file was addedclang/test/Analysis/solver-sym-simplification-no-crash.c
Commit 79c98279b6cdab6f208043865ab7b4ac4612cec5 by sjoerd.meijer
[SLP][AArch64] Precommit test for D103629, checking <4 x i8> loads. NFC.
The file was addedllvm/test/Transforms/SLPVectorizer/AArch64/loadi8.ll
Commit 6e5c4a443d7e354a37d7dcb82a65216679ab1b40 by david.spickett
[lldb] Re-enable GDB server client memory tag read tests

These were disabled in 473a3a773ea565612e836ae6c2093178c5a9eb72
because they failed on 32 bit platforms. (Arm for sure but I assume
any 32 bit)

This was due to the printf formatter used. These assumed
that types like uint64_t/size_t would be certain size/type and
that changes on 32 bit.

Instead use "z" to print the size_t and PRI<...> formatters
for the addr_t (always uint64_t) and the int32_t.
The file was modifiedlldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
Commit 968980ef08955ee03f406e8078089b1f2eb571e3 by sander.desmalen
[GlobalISel] NFC: Change LLT::scalarOrVector to take ElementCount.

Reviewed By: aemerson

Differential Revision: https://reviews.llvm.org/D104452
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
The file was modifiedllvm/include/llvm/Support/LowLevelTypeImpl.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/unittests/CodeGen/LowLevelTypeTest.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
Commit e47027d091deb4a0774eab911411a27092a60916 by stuart.brady
[OpenCL] Use DW_LANG_OpenCL language tag for OpenCL C

Note regarding C++ for OpenCL:

   When compiling C++ for OpenCL, DW_LANG_C_plus_plus* is emitted.

   There is no DWARF language code defined for C++ for OpenCL as of yet,
   but DWARF issue 210514.1 has been raised to request one.

   In the mean time, continuing to emit DW_LANG_C_plus_plus* for C++ for
   OpenCL allows the potential to distinguish between C++ for OpenCL and
   OpenCL C in !DICompileUnit nodes, whereas using DW_LANG_OpenCL for
   C++ for OpenCL would prevent this.

   This change therefore leaves C++ for OpenCL as-is.

Reviewed By: shchenz, Anastasia

Differential Revision: https://reviews.llvm.org/D104118
The file was addedclang/test/CodeGenOpenCL/debug-info-programming-language.cl
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
Commit 96f6873dff6e7087d56293c9ec3a2983d241a889 by jonathanchesterfield
[OpenMP][NFC] Drop unused headers from amdgpu plugin
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
Commit f7b1fa6f5ebec5780e626aa48d582f2519a01632 by sguelton
[NFC] remove unreferenced function ResolveIPV4HostName

Differential Revision: https://reviews.llvm.org/D104856
The file was modifiedlldb/tools/debugserver/source/RNBSocket.cpp
Commit 2a7bb8494e9c58b44ad7142d8d309455cd669603 by andrzej.warzynski
[flang][driver] Add `-fno-analyzed-objects-for-unparse`

This patch adds a new option for the new Flang driver:
`-fno-analyzed-objects-for-unparse`. The semantics are similar to
`-funparse-typed-exprs-to-f18-fc` from `f18`. For consistency, the
latter is replaced with `-fno-analyzed-objects-for-unparse`.

The new option controls the behaviour of the unparser (i.e. the action
corresponding to `-fdebug-unparse`). The default behaviour is to use the
analyzed objects when unparsing. The new flag can be used to turn this
off, so that the original parse-tree objects are used. The analyzed
objects are generated during the semantic checks [1].

This patch also updates the semantics of
`-fno-analyzed-objects-for-unparse`/`-funparse-typed-exprs-to-f18-fc`
in `f18`, so that this flag is always taken into account when `Unparse`
is used (this way the semantics in `f18` and `flang-new` are identical).

The added test file is based on example from Peter Steinfeld.

[1]
https://github.com/llvm/llvm-project/blob/main/flang/docs/Semantics.md

Differential Revision: https://reviews.llvm.org/D103612
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedflang/include/flang/Frontend/CompilerInvocation.h
The file was modifiedflang/lib/Frontend/FrontendActions.cpp
The file was modifiedflang/test/Driver/driver-help.f90
The file was modifiedflang/tools/f18/f18.cpp
The file was modifiedflang/tools/f18/flang
The file was addedflang/test/Driver/unparse-use-analyzed.f95
The file was modifiedflang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedflang/lib/Frontend/FrontendOptions.cpp
Commit 91053e327ccd27cb1ee66a7d4954d456ceeed5f6 by flo
[LV] Reflow comment for VectorizationCostTy (NFC).
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 3193133add7eeeaa3872c78aa959bacdc08e59d9 by Yaxun.Liu
[OpenCL] Do not include default header for preprocessor output as input

When clang driver is used with -save-temps to compile OpenCL program,
clang driver first launches clang -cc1 -E to generate preprocessor expansion output,
then launches clang -cc1 with the generated preprocessor expansion output as input
to generate LLVM IR.

Currently clang by default passes "-finclude-default-header" "-fdeclare-opencl-builtins"
in both steps, which causes default header included again in the second step, which
causes error.

This patch let clang not to include default header when input type is preprocessor expansion
output, which fixes the issue.

Reviewed by: Anastasia Stulova

Differential Revision: https://reviews.llvm.org/D104800
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Driver/amdgpu-toolchain-opencl.cl
Commit 4921ecfc8194c11ec7c659ad1de11da6e8307361 by Yaxun.Liu
[clang] Fix build failure due to _S

_S is a reserved identifier in <ctype.h> on Solaris.
The file was modifiedclang/include/clang/Sema/Sema.h
Commit 3aa6ca8def510b5c10e76899ad9b78f5ba4ea19c by kadircet
[clangd] Call malloc_trim in clangd-index-server periodically

Differential Revision: https://reviews.llvm.org/D104841
The file was modifiedclang-tools-extra/clangd/index/remote/server/Server.cpp
Commit 8f2bf93b5bd6a1d31e28e4144827b3f6c413ac85 by kadircet
[clangd] Introduce a log-prefix flag to remote-index-server

Differential Revision: https://reviews.llvm.org/D104843
The file was addedclang-tools-extra/clangd/test/remote-index/log-prefix.test
The file was modifiedclang-tools-extra/clangd/index/remote/server/Server.cpp
Commit c9acd2f32e6b4c10f6b1b94acb3418e47d645a7a by sander.desmalen
[GlobalISel] NFC: Change LLT::changeNumElements to LLT::changeElementCount.

Reviewed By: aemerson

Differential Revision: https://reviews.llvm.org/D104453
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
The file was modifiedllvm/include/llvm/Support/LowLevelTypeImpl.h
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
The file was modifiedllvm/unittests/CodeGen/LowLevelTypeTest.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
Commit e00969c0b7d8ceed7489ca49a4869a357d5c8333 by koraq
[libc++][NFC] Rename include guard.
The file was modifiedlibcxx/include/__format/format_error.h
Commit c3ebb53eabb7f851687f66ada88aa16f768d76ce by andrzej.warzynski
[flang][unittest] Add a missing dependency

In https://reviews.llvm.org/D103612, a definition of an instance of
`Fortran::parser::AnalyzedObjectsAsFortran` was moved (that object is
used in unparsing). That, in turn, introduced a dependency of the unit
tests on the `FortranEvaluate` library, which defines
`AnalyzedObjectsAsFortran`.

That dependency was missed in D103612 and has caused shared-library
builds to fail. I'm submitting this without a review, as it's rather
straightforward omission.
The file was modifiedflang/unittests/Frontend/CMakeLists.txt
Commit 8a9ec39bd02fb05621ac4e68b50a6ca0f722ccd2 by kparzysz
[Hexagon] Convert getTypeAlignment to return Align

Plus some minor related changes of the same nature.
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonSubtarget.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.h
Commit c3cc9d1eb283373b5216e4b726c270bcfe3806d5 by jay.foad
[AMDGPU] Removed unused Predicate HasOffset3fBug. NFC.

The predicate definition didn't make sense anyway because it was defined
as being the opposite of what the name suggests.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td
Commit aeab9d9570ac8cb554aff6e1af24a471fdf5b4e5 by sander.desmalen
[GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize.

To reflect that the size may be scalable, a TypeSize is returned
instead of an unsigned. In places where the result is used,
it currently relies on an implicit cast of TypeSize -> uint64_t,
which asserts that the type is not scalable.

This patch is NFC for fixed-width vectors.

Reviewed By: aemerson

Differential Revision: https://reviews.llvm.org/D104454
The file was modifiedllvm/unittests/CodeGen/LowLevelTypeTest.cpp
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
The file was modifiedllvm/include/llvm/Support/LowLevelTypeImpl.h
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp
Commit 1076b6c4f022a024a54af9e6a0e9997472cb89ef by spatel
[Analysis] use better version of getLibFunc to check for alloc/free calls

There's no reason to use the weaker name-only analysis when we
have a function prototype to check (in fact, we probably should
not even have that name-only function exposed for general use,
but removing it requires auditing all of the callers).

The version of getLibFunc that takes a Function argument also
does some prototype checking to make sure the arguments/return
type match the expected signature of a real library call.

This is NFC-intended because the code in MemoryBuiltins does its
own function signature checking. For now, that means there may
be some redundancy in the checking, but that should not be above
the noise for compile-time. Ideally, we can move the checks to
a single location.

There's still a hole in the logic that allows the example in
https://llvm.org/PR50846 to cause a compiler crash.
The file was modifiedllvm/lib/Analysis/MemoryBuiltins.cpp
Commit 4d8156ef87f8bc6fdb8ed03b2f87123d02ac7321 by Raphael Isemann
[lldb-vscode] Make extension contribute breakpoints use new package.json schema

See https://code.visualstudio.com/updates/v1_42#_implement-a-debug-adapter-inside-an-extension

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D104882
The file was modifiedlldb/tools/lldb-vscode/package.json
Commit 1e6303e60ca5af4fbe7ca728572fd65666a98271 by nikita.ppv
[OpaquePtr] Allow globals with opaque pointer value type

Do this by making opaque pointers a valid pointer element type,
for which we implicitly create an opaque pointer (moving the logic
from getPointerTo into PointerType::get).

We'll never create something like a "pointer to opaque pointer",
but accept it in the API, because a lot of code reasonably assumes
that you can create a pointer to pointer type.

Differential Revision: https://reviews.llvm.org/D104902
The file was removedllvm/test/Assembler/invalid-opaque-ptr.ll
The file was modifiedllvm/lib/IR/Type.cpp
The file was modifiedllvm/test/Assembler/opaque-ptr.ll
Commit b732e6c9a8438e5204ac96c8ca76f9b11abf98ff by sander.desmalen
Revert "[GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize."

This patch seems to be causing build errors, reverting it for now.

This reverts commit aeab9d9570ac8cb554aff6e1af24a471fdf5b4e5.
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp
The file was modifiedllvm/include/llvm/Support/LowLevelTypeImpl.h
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/unittests/CodeGen/LowLevelTypeTest.cpp
Commit b7f24923a3027e66b78b56174e9950c146203104 by lxfind
[Coroutines] Remove all legacy test command

With new pm becomes the default, the old-style test command becomes exactly the same as the new test command, i.e. the two commands are now redundant.
We should just delete the old command. (unless someone wants to add enable-new-pm=0 to all old commands.

Differential Revision: https://reviews.llvm.org/D104895
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-alloc.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-sink-lifetime-03.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-02.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-musttail.ll
The file was modifiedllvm/test/Transforms/Coroutines/phi-coro-end.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex4.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-inline.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-00.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-dbg.values-not_used_in_frame.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloc-with-param-O0.ll
The file was modifiedllvm/test/Transforms/Coroutines/restart-trigger.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-param-copy.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-heap-elide.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-eh-00.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-eh-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-hidden.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-dbg.values.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex3.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-05.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-frame.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-04.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-spill-promise.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex5.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-00.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-swifterror.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex1.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-08.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-spill-after-phi.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloc-with-param-O2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-00.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-O2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-cleanup.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-06.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-async-unreachable.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-02.ll
The file was modifiedllvm/test/Transforms/Coroutines/no-suspend.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-elide.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-03.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-musttail3.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-musttail2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-padding.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-04.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-musttail1.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-spill-defs-before-corobegin.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex0.ll
The file was modifiedllvm/test/Transforms/Coroutines/ex2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-sink-lifetime-02.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-once-value.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-07.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-unreachable.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-materialize.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-coro-frame.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-02.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-catchswitch.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-03.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-resume-values.ll
The file was modifiedllvm/test/Transforms/Coroutines/smoketest.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-value.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-elide-musttail.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-resume-values2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-catchswitch-cleanuppad.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-async.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-dbg.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-once-value2.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-sink-lifetime-04.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-unreachable.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-frame-arrayalloca.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-spill-corobegin.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-early.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-02.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon-alloca.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-split-01.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-alloca-05.ll
Commit e15e1417b9fdd628476736c7b1637779752ae3c7 by hgreving
[ModuloSchedule] Pass loop block explicitly to kernel rewriter.

This change is NFC upstream. We pass in the loop's block to the kernel
rewriter explicitly, instead of assuming it's the loop's top block. This
change is made for downstream targets where this assumption doesn't hold.

Differential Revision: https://reviews.llvm.org/D104811
The file was modifiedllvm/lib/CodeGen/ModuloSchedule.cpp
Commit fb0dbc54813473f438bc07f38ef61557de2da216 by herhut
[mlir][memref] Introduce UnrankedMemRefOf to tablegen definitions

This enables specifying operations that only support some element types for
unranked memrefs.

Differential Revision: https://reviews.llvm.org/D104906
The file was modifiedmlir/include/mlir/IR/OpBase.td
Commit e80a21d632900341258a20134e43ad76a2c93c81 by listmail
[test][instcombine] Add test cases for all x.with.overflow overflow checks

For each of the x.with.overflow variants, if only the overflow bit is consumed, we can generate a direct overflow comparison.  This precommits tests for each of the variants and tries to cover interesting cornercases.
The file was addedllvm/test/Transforms/InstCombine/usubo.ll
The file was modifiedllvm/test/Transforms/InstCombine/umulo.ll
The file was addedllvm/test/Transforms/InstCombine/saddo.ll
The file was addedllvm/test/Transforms/InstCombine/ssubo.ll
The file was addedllvm/test/Transforms/InstCombine/smulo.ll
Commit 9eaf0d120d3255c43789213c499513ba1be9dde7 by jdenny.ornl
[UpdateCCTestChecks] Support --check-globals

This option is already supported by update_test_checks.py, but it can
also be useful in update_cc_test_checks.py.  For example, I'd like to
use it in OpenMP offload codegen tests to check global variables like
`.offload_maptypes*`.

Reviewed By: jdoerfert, arichardson, ggeorgakoudis

Differential Revision: https://reviews.llvm.org/D104714
The file was modifiedclang/test/utils/update_cc_test_checks/lit.local.cfg
The file was addedclang/test/utils/update_cc_test_checks/Inputs/check-globals.c
The file was addedclang/test/utils/update_cc_test_checks/Inputs/lit.cfg.example
The file was modifiedllvm/utils/UpdateTestChecks/common.py
The file was addedclang/test/utils/update_cc_test_checks/check-globals.test
The file was modifiedllvm/utils/update_cc_test_checks.py
Commit 2cd23eb2438238b1297ff7b4368d673c449ff24f by listmail
[instcombine] Fold overflow check using umulo to comparison

If we have a umul.with.overflow where the multiply result is not used and one of the operands is a constant, we can perform the overflow check cheaper with a comparison then by performing the multiply and extracting the overflow flag.

(Noticed when looking at the conditions SCEV emits for overflow checks.)

Differential Revision: https://reviews.llvm.org/D104665
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/InstCombine/umulo.ll
Commit d43b23608ad664f02f56e965ca78916bde220950 by ezhulenev
[mlir:Async] Add the size parameter to the async.group

Specify the `!async.group` size (the number of tokens that will be added to it) at construction time. `async.await_all` operation can potentially race with `async.execute` operations that keep updating the group, for this reason it is required to know upfront how many tokens will be added to the group.

Reviewed By: ftynse, herhut

Differential Revision: https://reviews.llvm.org/D104780
The file was modifiedmlir/include/mlir/ExecutionEngine/AsyncRuntime.h
The file was modifiedmlir/lib/ExecutionEngine/AsyncRuntime.cpp
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-to-llvm.mlir
The file was modifiedmlir/test/Dialect/Async/runtime.mlir
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
The file was modifiedmlir/include/mlir/Dialect/Async/IR/AsyncOps.td
The file was modifiedmlir/test/mlir-cpu-runner/async-group.mlir
The file was modifiedmlir/test/mlir-cpu-runner/async-error.mlir
The file was modifiedmlir/test/Dialect/Async/ops.mlir
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-runtime-to-llvm.mlir
The file was modifiedmlir/test/Dialect/Async/async-to-async-runtime.mlir
Commit 86ad0af87054c3cccd68d32e103a6f1f6c6194c7 by ezhulenev
[mlir:Async] Implement recursive async work splitting for scf.parallel operation (async-parallel-for pass)

Depends On D104780

Recursive work splitting instead of sequential async tasks submission gives ~20%-30% speedup in microbenchmarks.

Algorithm outline:
1. Collapse scf.parallel dimensions into a single dimension
2. Compute the block size for the parallel operations from the 1d problem size
3. Launch parallel tasks
4. Each parallel task reconstructs its own bounds in the original multi-dimensional iteration space
5. Each parallel task computes the original parallel operation body using scf.for loop nest

Reviewed By: herhut

Differential Revision: https://reviews.llvm.org/D104850
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
The file was modifiedmlir/test/Integration/Dialect/Async/CPU/microbench-linalg-async-parallel-for.mlir
The file was modifiedmlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-2d.mlir
The file was modifiedmlir/include/mlir/Dialect/Async/Passes.h
The file was modifiedmlir/include/mlir/Dialect/Async/Passes.td
The file was removedmlir/test/Dialect/Async/async-parallel-for.mlir
The file was addedmlir/test/Dialect/Async/async-parallel-for-seq-dispatch.mlir
The file was addedmlir/test/Integration/Dialect/Async/CPU/microbench-scf-async-parallel-for.mlir
The file was addedmlir/test/Dialect/Async/async-parallel-for-async-dispatch.mlir
The file was modifiedmlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-1d.mlir
Commit cc5ee857f93748c392e38ea38b900847a6e8d6f2 by flo
[LV] Doxygenize VectorizationFactor member comments (NFC).

Minor cleanup for follow-up patch.
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
Commit 9714d08e9420b02e60265802528c31a1478ee3be by listmail
[test] Add coverage for existing overflow rule with uadd.with.overflow
The file was addedllvm/test/Transforms/InstCombine/uaddo2.ll
Commit fda790fbfa0cba426d5e3787429a51e09ec64c6d by thakis
[clang] Make fewer assumptions about path to lit.site.cfg after 9eaf0d120d32
The file was modifiedclang/test/lit.site.cfg.py.in
The file was modifiedclang/test/utils/update_cc_test_checks/Inputs/lit.cfg.example
The file was modifiedclang/test/utils/update_cc_test_checks/lit.local.cfg
Commit f66b8fdc0a0b4b810fa1f1852ef33c8be143b6ea by jonathanchesterfield
[libomptarget][amdgpu] Build openmp for two more targets

[libomptarget][amdgpu] Build openmp for two more targets

The 4800U APU is a gfx902 and the MI100 accelerator is a gfx908.
Both numbers are listed in ROCT topology.c

Reviewed By: jhuber6

Differential Revision: https://reviews.llvm.org/D104922
The file was modifiedopenmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
Commit 77ae9b364a9d9b99501163761313cefbb345cea7 by david.green
[AArch64] Extra negated shift tests. NFC
The file was modifiedllvm/test/CodeGen/AArch64/neon-shift-neg.ll
The file was addedllvm/test/CodeGen/AArch64/sub-splat-sub.ll
Commit cc60fa2685bdbff889df826a1bfd5e52ffd163c8 by jdenny.ornl
[UpdateCCTestChecks] Fix new test from 9eaf0d120d32

`clang/test/utils/update_cc_test_checks/check-globals.test` from
9eaf0d120d32 broke at:

* <https://lab.llvm.org/buildbot/#/builders/110/builds/4415>
* <https://lab.llvm.org/buildbot/#/builders/5/builds/9076>

The problem is non-deterministic test order because the
`.lit_test_times.txt` from one run of a sample test suite affects the
other.
The file was modifiedclang/test/utils/update_cc_test_checks/check-globals.test
Commit 0f3bc00a7d3cb223b4d5639723b8f71341c9df1e by craig.topper
[X86] Simplify part of the isel for X86ISD::FCMP/STRICT_FCMP/STRICT_FCMPS.

We don't need to have the compare output a value and then copy it
to FPSW for use by FNSTSW. Instead we can just have the compare
output Glue and glue the FNSTSW to it. InstrEmitter effectively
performed this optimization when emitting the Machine IR. Doing
it directly simplifies the codes and reduces the work in
InstrEmitter. There's no change in the machine IR at the end of
isel before and after this change.
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Commit b8c8bb07692cfb9a78049fd2fb5c46a91ee2e90f by david.green
[DAG] Fold neg(splat(neg(x)) -> splat(x)

This add as a fold of sub(0, splat(sub(0, x))) -> splat(x). This can
come up in the lowering of right shifts under AArch64, where we generate
a shift left of a negated number.

Differential Revision: https://reviews.llvm.org/D103755
The file was modifiedllvm/test/CodeGen/AArch64/neon-shift-neg.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sub-splat-sub.ll
Commit 3cc5d4ff8e4e59cc45f370655c7762e36b223d1d by pklausler
[flang] Fix generic/specific procedure confusion

A recent change that extended semantic analysis for actual arguments
that associate with procedure dummy arguments exposed some bugs in
regression test suites due to points of confusion in symbol table
handling in situations where a generic interface contains a specific
procedure of the same name.  When passing that name as an actual
argument, for example, it's necessary to take this possibility into
account because the symbol for the generic interface shadows the
symbol of the same name for the specific procedure, which is
what needs to be checked.  So add a small utility that bypasses
the symbol for a generic interface in this case, and use it
where needed.

Differential Revision: https://reviews.llvm.org/D104929
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/runtime/type-info.h
The file was modifiedflang/lib/Semantics/tools.cpp
The file was modifiedflang/lib/Evaluate/fold-reduction.h
The file was modifiedflang/include/flang/Semantics/tools.h
Commit ad4bb8280952c2cacf497e30560ee94c119b36e0 by nikita.ppv
[IR] Add Type::isOpaquePointerTy() helper (NFC)

Shortcut to check for opaque pointers without a cast to PointerType.
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/IR/Type.cpp
The file was modifiedllvm/include/llvm/IR/Type.h
Commit 585496803ca25cbbafc942355f715cce46d736fb by arthur.j.odwyer
[libc++] Enable the rvalue overloads of operator<< and operator>> even in C++03.

Continuing to eliminate no-longer-needed uses of _LIBCPP_CXX03_LANG.

Differential Revision: https://reviews.llvm.org/D104725
The file was modifiedlibcxx/include/istream
The file was modifiedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/rvalue.pass.cpp
The file was modifiedlibcxx/include/ostream
The file was modifiedlibcxx/test/std/input.output/iostream.format/input.streams/istream.rvalue/rvalue.pass.cpp
The file was modifiedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/not_ostreamable.verify.cpp
The file was modifiedlibcxx/test/std/input.output/iostream.format/input.streams/istream.rvalue/not_istreamable.verify.cpp
Commit 5b2573e9c7c9fdbd80cb58711714955479573054 by nikita.ppv
[OpaquePtr] Enumerate GlobalAlias value type

The type is no longer implicitly enumerated through the pointer
type.
The file was modifiedllvm/test/Other/force-opaque-ptrs.ll
The file was modifiedllvm/lib/Bitcode/Writer/ValueEnumerator.cpp
Commit 34a164c93857f609862d74455d6801fe482ead8a by ezhulenev
[mlir:Async] Submit accidentally omitted changes

Accidentally pushed old branches that did not include all the changes discussed in the PRs.

https://reviews.llvm.org/rGd43b23608ad664f02f56e965ca78916bde220950
https://reviews.llvm.org/rG86ad0af87054c3cccd68d32e103a6f1f6c6194c7

Differential Revision: https://reviews.llvm.org/D104943
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
The file was modifiedmlir/test/Dialect/Async/async-parallel-for-seq-dispatch.mlir
The file was modifiedmlir/include/mlir/Dialect/Async/Passes.h
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
The file was modifiedmlir/test/Dialect/Async/async-parallel-for-async-dispatch.mlir
Commit 3638085ff01332afbd2eb555a32821802f0643c8 by hoy
[Coroutines] Define __coro_frame_ty in function scope

Types should be defined in function scope instead of a local lexical scope. Field types should be defined inside in its parent type scope.

We were seeing a type defined in a local scope causing trouble to the dwarf emitter where a context is required to be a funciton scope, a namespace or a global scope.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D104937
The file was modifiedllvm/test/Transforms/Coroutines/coro-debug-coro-frame.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
Commit b2674670f264e2a80c79cb8bf2186f1ab3b791e6 by ulrich.weigand
[SystemZ] Add support for .reloc assembler directive

Add support for the .reloc directive along the lines of
other back-ends.

This fixes a regression after https://reviews.llvm.org/D104080
was merged, since that patch presupposed support for .reloc.
The file was modifiedllvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
The file was addedllvm/test/MC/SystemZ/reloc-directive.s
The file was modifiedllvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp
Commit 2508733e1be28da8c53d36c109007b778225ec7a by i
[ELF] --sysroot: change sysrooted script to not fall back for an absolute path

Modify the D13209 logic: for a script inside the sysroot, if an absolute path
does not exist, report an error instead of falling back to the path without the
sysroot prefix.

This matches GNU ld, which makes sense to me: we don't want to find an arbitrary
file in the host.

Reviewed By: ikudrin

Differential Revision: https://reviews.llvm.org/D104894
The file was modifiedlld/test/ELF/linkerscript/group.s
The file was modifiedlld/ELF/ScriptParser.cpp
Commit bdb03557c05942d951e1c9b5d7033613323c3104 by martin
[llvm-rc] Don't rewrite the arch in the default triple unless necessary

When the default target arch isn't one that is supported as a
windows target, we want to set a suitable architecture (so that
Clang tests that run plain 'llvm-rc' succeed checks for e.g.
"#ifdef _WIN32" even for llvm builds that default to e.g. ppc64).

But if the default target architecture is usable, don't rewrite it.
(Rewriting it, by e.g. "T.setArch(T.getArch())", normalizes the
spelling of the architecture, e.g. changing i686 to i386. Such a
change can make clang unable to find the right sysroot.)

This can't, unfortunately, practically be tested very well because
it is entirely dependent on the default triple of the llvm build.

Differential Revision: https://reviews.llvm.org/D104589
The file was modifiedllvm/tools/llvm-rc/llvm-rc.cpp
Commit d646157146ccda93cd72dcbaff4a554c61ed9586 by vsavchenko
[analyzer] Fix assertion failure on code with transparent unions

rdar://76948312

Differential Revision: https://reviews.llvm.org/D104716
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
The file was addedclang/test/Analysis/transparent_union_bug.c
Commit 4e22c7265d86419f15f9edab5e0ebf2b55aa4295 by nemanja.i.ibm
[PowerPC] Disable combine 64-bit bswap(load) without LDBRX

This causes failures on the big endian bootstrap bot.
Disabling this combine temporarily until I can get a proper fix.
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/ld-bswap64-no-ldbrx.ll
The file was modifiedllvm/test/CodeGen/PowerPC/bswap-load-store.ll
Commit 9ce02ea8c941706385c24240b33b307034b07986 by huberjn
[OpenMP] Add Module metadata for OpenMP compilation

This patch adds a module level metadata flag indicating that the module
was compiled with the `-fopenmp` flag. This will make it easier for
passes like OpenMPOpt to determine if it should be run.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D102361
The file was modifiedclang/test/OpenMP/target_teams_distribute_codegen.cpp
The file was modifiedclang/test/OpenMP/ordered_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/for_reduction_codegen_UDR.cpp
The file was modifiedclang/test/OpenMP/parallel_for_codegen.cpp
The file was modifiedclang/test/OpenMP/taskloop_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/cancellation_point_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/cancel_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/task_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/taskloop_simd_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_codegen.cpp
The file was modifiedclang/test/OpenMP/for_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_codegen.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/test/OpenMP/parallel_for_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
The file was modifiedclang/test/OpenMP/parallel_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/master_taskloop_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/task_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_codegen.cpp
The file was modifiedclang/test/OpenMP/master_taskloop_simd_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_sections_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/task_if_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_order_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/sections_reduction_task_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
Commit 5ccb7424fab3bc8bf6cb2ced989cbd86ec8ccff6 by huberjn
[OpenMP] Change OpenMPOpt to check openmp metadata

The metadata added in D102361 introduces a module flag that we can check
to determine if the module was compiled with `-fopenmp` enables. We can
now check for the precense of this instead of scanning the call graph
for OpenMP runtime functions.

Depends on D102361

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D102423
The file was modifiedllvm/test/Transforms/OpenMP/deduplication.ll
The file was modifiedllvm/test/Transforms/OpenMP/single_threaded_execution.ll
The file was modifiedllvm/test/Transforms/OpenMP/icv_remarks.ll
The file was modifiedllvm/test/Transforms/OpenMP/parallel_deletion.ll
The file was modifiedllvm/test/Transforms/OpenMP/deduplication_remarks.ll
The file was modifiedllvm/test/Transforms/OpenMP/globalization_remarks.ll
The file was modifiedllvm/test/Transforms/OpenMP/icv_tracking.ll
The file was modifiedllvm/test/Transforms/OpenMP/add_attributes.ll
The file was modifiedllvm/test/Transforms/OpenMP/add_attributes_amdgcn.ll
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedllvm/test/Transforms/OpenMP/hide_mem_transfer_latency.ll
The file was modifiedllvm/test/Transforms/OpenMP/rtf_type_checking.ll
The file was modifiedllvm/test/Transforms/OpenMP/parallel_region_merging.ll
The file was modifiedllvm/test/Transforms/OpenMP/remove_globalization.ll
The file was modifiedllvm/test/Transforms/OpenMP/replace_globalization.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/OpenMPOpt.h
The file was modifiedllvm/test/Transforms/OpenMP/values_in_offload_arrays.ll
The file was modifiedllvm/test/Transforms/OpenMP/gpu_state_machine_function_ptr_replacement.ll
The file was modifiedllvm/test/Transforms/OpenMP/gpu_kernel_detection_remarks.ll
The file was modifiedllvm/test/Transforms/OpenMP/parallel_deletion_remarks.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/openmp-opt-module.ll
Commit 160559344026824ee0b510741c7906c0e165f9a7 by aqjune
[SimplifyLibCalls] Fix memchr opt to use CreateLogicalAnd

This fixes a bug at LibCallSimplifier::optimizeMemChr which does the following transformation:

```
// memchr("\r\n", C, 2) != nullptr -> (1 << C & ((1 << '\r') | (1 << '\n')))
// != 0
//   after bounds check.
```

As written above, a bounds check on C (whether it is less than integer bitwidth) is done before doing `1 << C` otherwise 1 << C will overflow.
If the bounds check is false, the result of (1 << C & ...) must not be used at all, otherwise the result of shift (which is poison) will contaminate the whole results.
A correct way to encode this is `select i1 (bounds check), (1 << C & ...), false`  because select does not allow the unused operand to contaminate the result.
However, this optimization was introducing `and (bounds check), (1 << C & ...)` which cannot do that.

The bug was found from compilation of this C++ code: https://reviews.llvm.org/rG2fd3037ac615#1007197

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D104901
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/strchr-1.ll
The file was modifiedllvm/test/Transforms/InstCombine/memchr.ll
Commit 4cf7c6c6a44dba6d7f3c13059f966412df89fe75 by Adrian Prantl
Change PathMappingList::RemapPath to return an optional result (NFC)

This is an NFC modernization refactoring that replaces the combination
of a bool return + reference argument, with an Optional return value.

Differential Revision: https://reviews.llvm.org/D104404
The file was modifiedlldb/source/Core/Module.cpp
The file was modifiedlldb/source/Target/PathMappingList.cpp
The file was modifiedlldb/include/lldb/Target/PathMappingList.h
Commit c8d0d8a8a16e52bc0d6856f36065f46da19b1713 by epastor
[ms] [llvm-ml] Add support for ALIGN, EVEN, and ORG directives

Match ML.EXE's behavior for ALIGN, EVEN, and ORG directives both at file level and in STRUCTs.

We currently reject negative offsets passed to ORG inside STRUCTs (in ML.EXE and ML64.EXE, they wrap around as for an unsigned 32-bit integer).

Also, if a STRUCT is declared using an ORG directive, no value of that type can be defined.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D92507
The file was addedllvm/test/tools/llvm-ml/align_errors.asm
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/align_directives.asm
Commit 8d5bf0709da893cee20f9b3100bf1bcd4a5f0210 by efriedma
[NFC] Prefer ConstantRange::makeExactICmpRegion over makeAllowedICmpRegion

The implementation is identical, but it makes the semantics a bit more
obvious.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
Commit 4eabb12057616f360b2329f63c0379eced3135b4 by jingham
Add support for the NSMutableDictionary variant: "__NSFrozenDictionaryM"

This was an oversight of the commit: bb93483c119b92c1ec2b7a58505e21b9dce6a333 that
added support for the Frozen variants.  Also added a test case for the way that
currently produces one of these variants (a copy).
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
The file was modifiedlldb/source/Plugins/Language/ObjC/NSDictionary.cpp
Commit ffc0533855871f4c784f6535044ce7c2bd076392 by Jonas Devlieghere
[lldb] Use the non-locking variant of objc_copyRealizedClassList

Avoid standing the Objective-C runtime lock by calling
objc_copyRealizedClassList_nolock instead of objc_copyRealizedClassList.

We already guarantee that no other threads can run while we're running
this utility expression, similar to when we parse the data ourselves
from the gdb_objc_realized_classes struct.

Worst case this will crash if the list is getting edited, which won't do
any harm and we'll just try again later.

Differential revision: https://reviews.llvm.org/D104951
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
Commit ad14b5b008e2f643cb989ec645f12bf26a8659bb by mizvekov
[clang] Stop providing builtin overload candidate for relational function pointer comparisons

Word on the grapevine was that the committee had some discussion that
ended with unanimous agreement on eliminating relational function pointer comparisons.

We wanted to be bold and just ban all of them cold turkey.
But then we chickened out at the last second and are going for
eliminating just the spaceship overload candidate instead, for now.

See D104680 for reference.

This should be fine and "safe", because the only possible semantic change this
would cause is that overload resolution could possibly be ambiguous if
there was another viable candidate equally as good.

But to save face a little we are going to:
* Issue an "error" for three-way comparisons on function pointers.
  But all this is doing really is changing one vague error message,
  from an "invalid operands to binary expression" into an
  "ordered comparison of function pointers", which sounds more like we mean business.
* Otherwise "warn" that comparing function pointers like that is totally
  not cool (unless we are told to keep quiet about this).

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

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D104892
The file was modifiedclang/test/SemaTemplate/resolve-single-template-id.cpp
The file was modifiedclang/test/Parser/cxx-template-argument.cpp
The file was modifiedclang/test/Sema/compare.c
The file was addedclang/test/SemaCXX/compare-function-pointer.cpp
The file was modifiedclang/test/CXX/class/class.compare/class.spaceship/p2.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/test/SemaCXX/compare-cxx2a.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Posix/coverage-module-unloaded.cpp
The file was modifiedclang/test/CXX/drs/dr15xx.cpp
The file was modifiedclang/test/CXX/drs/dr3xx.cpp
The file was modifiedclang/test/FixIt/fixit.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/test/CXX/expr/expr.const/p2-0x.cpp
Commit 557b101ce714e39438ba1d39c4c50b03e12fcb96 by ajcbik
[mlir][sparse] add print methods to Merger (for debugging)

Reviewed By: gussmith23

Differential Revision: https://reviews.llvm.org/D104939
The file was modifiedmlir/lib/Dialect/SparseTensor/Utils/Merger.cpp
The file was modifiedmlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Commit 4506f614cb6983a16d117cf77a968608e66d7a5c by Duncan P. N. Exon Smith
OpaquePtr: Reject 'ptr*' again when parsing textual IR

Bring back the testcase dropped in
1e6303e60ca5af4fbe7ca728572fd65666a98271 and get it passing by checking
explicitly for `ptr*` in LLParser. Uses `Type::isOpaquePointerTy()` from
ad4bb8280952c2cacf497e30560ee94c119b36e0.

Differential Revision: https://reviews.llvm.org/D104938
The file was addedllvm/test/Assembler/invalid-opaque-ptr-addrspace.ll
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was addedllvm/test/Assembler/invalid-opaque-ptr.ll
Commit fdd4c199a1ec68a231ea0086239e7d8287a40fad by nikita.ppv
Revert "[InstCombine] Make indexed compare fold opaque ptr compatible"

This reverts commit 5cb20ef8a235c2027489a196bba27630ca21a00b.

Assertion failures with this patch were reported on
https://reviews.llvm.org/rG5cb20ef8a235, revert for now.
The file was modifiedllvm/test/Transforms/InstCombine/indexed-gep-compares.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit 2e9c75daffddd65e37c3236708b5b133e6f5f2f5 by sivachandra
[libc] Use __builtin_ctzll instead of __builtin_ctzl in elements_x86.h.

__builtin_ctzl takes an unsigned long argument which need not be 64-bit
long on all platforms. Using __builtin_ctzll, which takes an unsigned
long long argument, ensures that 64-bit values will be handled on a
wider range of platforms.

Without this change, the test corresponding to M512 fails in Windows.

Reviewed By: gchatelet

Differential Revision: https://reviews.llvm.org/D104897
The file was modifiedlibc/src/string/memory_utils/elements_x86.h
Commit 45f6d5522f8d9b6439a40885ed30ad898089a2cd by browneee
[DFSan] Change shadow and origin memory layouts to match MSan.

Previously on x86_64:

  +--------------------+ 0x800000000000 (top of memory)
  | application memory |
  +--------------------+ 0x700000008000 (kAppAddr)
  |                    |
  |       unused       |
  |                    |
  +--------------------+ 0x300000000000 (kUnusedAddr)
  |       origin       |
  +--------------------+ 0x200000008000 (kOriginAddr)
  |       unused       |
  +--------------------+ 0x200000000000
  |   shadow memory    |
  +--------------------+ 0x100000008000 (kShadowAddr)
  |       unused       |
  +--------------------+ 0x000000010000
  | reserved by kernel |
  +--------------------+ 0x000000000000

  MEM_TO_SHADOW(mem) = mem & ~0x600000000000
  SHADOW_TO_ORIGIN(shadow) = kOriginAddr - kShadowAddr + shadow

Now for x86_64:

  +--------------------+ 0x800000000000 (top of memory)
  |    application 3   |
  +--------------------+ 0x700000000000
  |      invalid       |
  +--------------------+ 0x610000000000
  |      origin 1      |
  +--------------------+ 0x600000000000
  |    application 2   |
  +--------------------+ 0x510000000000
  |      shadow 1      |
  +--------------------+ 0x500000000000
  |      invalid       |
  +--------------------+ 0x400000000000
  |      origin 3      |
  +--------------------+ 0x300000000000
  |      shadow 3      |
  +--------------------+ 0x200000000000
  |      origin 2      |
  +--------------------+ 0x110000000000
  |      invalid       |
  +--------------------+ 0x100000000000
  |      shadow 2      |
  +--------------------+ 0x010000000000
  |    application 1   |
  +--------------------+ 0x000000000000

  MEM_TO_SHADOW(mem) = mem ^ 0x500000000000
  SHADOW_TO_ORIGIN(shadow) = shadow + 0x100000000000

Reviewed By: stephan.yichao.zhao, gbalats

Differential Revision: https://reviews.llvm.org/D104896
The file was modifiedcompiler-rt/test/dfsan/origin_invalid.c
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/atomics.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_load.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/load.ll
The file was modifiedcompiler-rt/lib/dfsan/dfsan_allocator.cpp
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/store.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_store.ll
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp
The file was modifiedcompiler-rt/lib/dfsan/dfsan.h
The file was modifiedclang/docs/DataFlowSanitizerDesign.rst
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/basic.ll
The file was modifiedcompiler-rt/lib/dfsan/dfsan_platform.h
Commit 50ad3478bdd3f0643ee94f6663293af5b3c27afe by jonathanchesterfield
Disable ReplaceLDS pass, patch up tests to match

Most tests passed with an extra argument to explicitly enable the pass.
One does not, deleted it as part of this change. I can't see why the codegen
would be different between default on and default off but switched on. It
can be retrieved from the project history.

This would be a revert, but git revert was not clean. Disabling the pass
and leaving it in tree is less likely to cause breakage elsewhere than
patching up the git revert conflicts on unfamiliar code. It'll be landed
without review, as @hsmhsm is believed unavailable at present.

Differential Revision: https://reviews.llvm.org/D104962
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-use-multiple-lds.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-use-within-phi-inst.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-ignore-inline-asm-call.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-call-selected_functions.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-ignore-global-scope-use.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-indirect-call-signature-match.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-use-within-const-expr2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-ignore-not-reachable-lds.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was removedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-lds-offsets.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llc-pipeline.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-use-within-const-expr1.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-indirect-call-selected_functions.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-use-same-lds.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-ignore-small-lds.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-indirect-call-diamond-shape.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-ignore-kernel-only-used-lds.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/replace-lds-by-ptr-call-diamond-shape.ll
Commit 36003c20ada6abf636c112869e3405189cab903d by yuanke.luo
[X86] Selecting fld0 for undefined value in fast ISEL.

When set opt-bisect-limit to some value that is less than ISel pass
in command line and CurBisectNum expired, "DAG to DAG" pass lower
its opt level to O0. However "processimpdefs" and "X86 FP Stackifier"
is not stopped due to the CurBisectNum expiration. So undefined fp0
is generated. This cause crash in the "X86 FP Stackifier" pass,
because Stackifier doesn't expect any undefined fp value.

Here is the scenario that cause compiler crash.

  successors: %bb.26
  liveins: $r14
    ST_FPrr $st0, implicit-def $fpsw, implicit $fpcw
    renamable $rdi = MOV64ri @.str.3.16422
    renamable $rdx = LEA64r %stack.6, 1, $noreg, 0, $noreg
    ADJCALLSTACKDOWN64 0, 0, 0, implicit-def $rsp, implicit-def dead
    $eflags, implicit-def $ssp, implicit $rsp, implicit $ssp
    dead $esi = MOV32r0 implicit-def dead $eflags, implicit-def $rsi
    CALL64pcrel32 @foo, implicit $rsp, implicit $ssp, implicit $rdi,
    implicit $rsi, implicit $rdx, implicit-def dead $fp0
    renamable $xmm0 = MOVSDrm_alt %stack.10, 1, $noreg, 0, $noreg :: (load 8
    from %stack.10)
    ADJCALLSTACKUP64 0, 0, implicit-def $rsp, implicit-def dead $eflags,
    implicit-def $ssp, implicit $rsp, implicit $ssp
    renamable $fp2 = CHS_Fp80 killed undef renamable $fp0, implicit-def
    $fpsw
    JMP_1 %bb.26
The CALL64pcrel32 mark fp0 dead, so llvm free the stack slot for fp0
and the stack become empty. In the late instruction CHS_Fp80, it use
undefined register fp0, the original code assume there must be a stack
slot for the src register (fp0) without respecting it is undefined,
so llvm report error.

We have some discussion in https://reviews.llvm.org/D104440 and we
decide to fix it in fast ISel. The fix is to lower undefined fp value to
zero value, so that it release the burden of "X86 FP Stackifier" pass.
Thank Craig for the suggestion and the initial patch to fix it.

Differential Revision: https://reviews.llvm.org/D104678
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was addedllvm/test/CodeGen/X86/fast-isel-undef-fp.ll
Commit e074d580b28b8cdf31fc4813cbc886ef5149d203 by epastor
[ms] [llvm-ml] Disable C-style comments
The file was modifiedllvm/test/tools/llvm-ml/variable.asm
The file was modifiedllvm/test/tools/llvm-ml/struct_errors.asm
The file was modifiedllvm/test/tools/llvm-ml/ml32-context.asm
The file was modifiedllvm/test/tools/llvm-ml/rip-relative-addressing.asm
The file was modifiedllvm/test/tools/llvm-ml/reserved_words_conflict.asm
The file was modifiedllvm/test/tools/llvm-ml/type_operators.asm
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
The file was modifiedllvm/test/tools/llvm-ml/dot_operator.asm
The file was modifiedllvm/test/tools/llvm-ml/proc.asm
The file was modifiedllvm/test/tools/llvm-ml/run.asm
The file was modifiedllvm/test/tools/llvm-ml/proc_frame.asm
The file was modifiedllvm/test/tools/llvm-ml/basic_data.asm
The file was modifiedllvm/test/tools/llvm-ml/struct.asm
The file was modifiedllvm/test/tools/llvm-ml/line_continuations.asm
The file was modifiedllvm/test/tools/llvm-ml/include.asm
The file was modifiedllvm/test/tools/llvm-ml/radix.asm
The file was modifiedllvm/test/tools/llvm-ml/builtin_types.asm