Changes

Summary

  1. [OpenMP][FIX] Invalidate the SPMDCompatibilityTracker explicitly (details)
  2. [OpenMP] Make reduction functions SPMD compatible (details)
  3. [RISCV] Loosen some restrictions on lowering constant BUILD_VECTORs using vid.v. (details)
  4. Revert "[clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block" (details)
  5. Revert "Use VersionTuple for parsing versions in Triple, fixing issues that caused the original change to be reverted. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible." (details)
  6. [analyzer][solver] Fix assertion on (NonLoc, Op, Loc) expressions (details)
  7. Introduce _BitInt, deprecate _ExtInt (details)
  8. [llvm] [Debuginfo] Debuginfod client library. (details)
  9. clang-format: [JS] test case for numeric separators. (details)
  10. [SystemZ] Improve codegen for memset. (details)
  11. Update the status of N2412 in C (we do not implement large parts of it) (details)
  12. [gn build] (manually) port 4a16fe1369f3ab (debuginfod) (details)
Commit 9ea5b9720354406c7b9bba638d0a01183c156ec7 by jhuber6
[OpenMP][FIX] Invalidate the SPMDCompatibilityTracker explicitly

Before SPMDzation it was sufficient to add an incompatible instruction
to the SPMDCompatibilityTracker. However, now adding instructions means
they need guarding. As calls cannot be guarded in general we need to
explicitly prevent SPMD mode.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D115158
The file was modifiedllvm/test/Transforms/OpenMP/spmdization.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp (diff)
Commit 744aa09f5218f7db206af2e1945e23f90df46f1f by jhuber6
[OpenMP] Make reduction functions SPMD compatible

Reduction functions were guarded before which was wrong, these are SPMD
compatible.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D115159
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp (diff)
Commit acdbd34cfb810a0587e17bfb4afc66b6b55f25ba by craig.topper
[RISCV] Loosen some restrictions on lowering constant BUILD_VECTORs using vid.v.

The immediate size check on StepNumerator did not take into account
that vmul.vi does not exist. It also did not account for power of 2
constants that can be done with vshl.vi.

This patch fixes this by moving the conversion from mul to shift
further up. Then we can consider the immediates separately for MUL
vs SHL. For MUL I've allowed simm12 which requires a single addi
before a vmul.vx. For SHL I've allowed any uimm5 which works with
vshl.vi. We could relax these further in the future. This is a
starting point that allows us to emit the same number of instructions
we were already using for smaller numerators.

Reviewed By: frasercrmck

Differential Revision: https://reviews.llvm.org/D115081
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff)
Commit 4cb79294e8df8c91ae15264d1014361815d34a53 by Jonas Devlieghere
Revert "[clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block"

This reverts commit e403f4fdc88322201040f2bee7b328e8a78e2f7f because it
breaks TestSetData.py on GreenDragon:

https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/39089/
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h (diff)
The file was modifiedclang/lib/CodeGen/CGDecl.cpp (diff)
The file was removedclang/test/CodeGenCXX/debug-info-lexcial-block.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp (diff)
Commit 63a6348cad6caccf285c1661bc60d8ba5a40c972 by jamesfarrell
Revert "Use VersionTuple for parsing versions in Triple, fixing issues that caused the original change to be reverted. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible."

This reverts commit 50324670342d9391f62671685f4d6b4880a4ea9a.
The file was modifiedclang/lib/Basic/Targets/OSTargets.h (diff)
The file was modifiedclang/test/SemaObjC/unguarded-availability.m (diff)
The file was modifiedclang/test/SemaObjC/unguarded-availability-maccatalyst.m (diff)
The file was modifiedclang/test/Sema/attr-availability.c (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp (diff)
The file was modifiedllvm/unittests/Support/Host.cpp (diff)
The file was modifiedclang/lib/ARCMigrate/ARCMT.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/Linux.cpp (diff)
The file was modifiedllvm/lib/Analysis/TargetLibraryInfo.cpp (diff)
The file was modifiedllvm/unittests/ADT/TripleTest.cpp (diff)
The file was modifiedclang/test/Sema/attr-availability-android.c (diff)
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h (diff)
The file was modifiedclang/test/SemaObjC/attr-availability.m (diff)
The file was modifiedllvm/lib/Support/Triple.cpp (diff)
The file was modifiedclang/lib/Basic/Targets/OSTargets.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/NetBSD.cpp (diff)
The file was modifiedclang/test/SemaObjC/property-deprecated-warning.m (diff)
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp (diff)
The file was modifiedllvm/lib/MC/MCStreamer.cpp (diff)
The file was modifiedclang/lib/Basic/Targets/X86.h (diff)
The file was modifiedclang/test/Sema/availability-guard-format.mm (diff)
The file was modifiedllvm/include/llvm/ADT/Triple.h (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.h (diff)
Commit a6816b957d28ab7855f2af1277c72a6d65b600b4 by balazs.benics
[analyzer][solver] Fix assertion on (NonLoc, Op, Loc) expressions

Previously, the `SValBuilder` could not encounter expressions of the
following kind:

  NonLoc OP Loc
  Loc OP NonLoc

Where the `Op` is other than `BO_Add`.

As of now, due to the smarter simplification and the fixedpoint
iteration, it turns out we can.
It can happen if the `Loc` was perfectly constrained to a concrete
value (`nonloc::ConcreteInt`), thus the simplifier can do
constant-folding in these cases as well.

Unfortunately, this could cause assertion failures, since we assumed
that the operator must be `BO_Add`, causing a crash.

---

In the patch, I decided to preserve the original behavior (aka. swap the
operands (if the operator is commutative), but if the `RHS` was a
`loc::ConcreteInt` call `evalBinOpNN()`.

I think this interpretation of the arithmetic expression is closer to
reality.

I also tried naively introducing a separate handler for
`loc::ConcreteInt` RHS, before doing handling the more generic `Loc` RHS
case. However, it broke the `zoo1backwards()` test in the `nullptr.cpp`
file. This highlighted for me the importance to preserve the original
behavior for the `BO_Add` at least.

PS: Sorry for introducing yet another branch into this `evalBinOpXX`
madness. I've got a couple of ideas about refactoring these.
We'll see if I can get to it.

The test file demonstrates the issue and makes sure nothing similar
happens. The `no-crash` annotated lines show, where we crashed before
applying this patch.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D115149
The file was modifiedclang/lib/StaticAnalyzer/Core/SValBuilder.cpp (diff)
The file was addedclang/test/Analysis/symbol-simplification-nonloc-loc.cpp
Commit 6c75ab5f66b403f7ca67e86aeed3a58abe10570b by aaron
Introduce _BitInt, deprecate _ExtInt

WG14 adopted the _ExtInt feature from Clang for C23, but renamed the
type to be _BitInt. This patch does the vast majority of the work to
rename _ExtInt to _BitInt, which accounts for most of its size. The new
type is exposed in older C modes and all C++ modes as a conforming
extension. However, there are functional changes worth calling out:

* Deprecates _ExtInt with a fix-it to help users migrate to _BitInt.
* Updates the mangling for the type.
* Updates the documentation and adds a release note to warn users what
is going on.
* Adds new diagnostics for use of _BitInt to call out when it's used as
a Clang extension or as a pre-C23 compatibility concern.
* Adds new tests for the new diagnostic behaviors.

I want to call out the ABI break specifically. We do not believe that
this break will cause a significant imposition for early adopters of
the feature, and so this is being done as a full break. If it turns out
there are critical uses where recompilation is not an option for some
reason, we can consider using ABI tags to ease the transition.
The file was modifiedclang/include/clang/AST/ASTContext.h (diff)
The file was modifiedclang/lib/Basic/Targets/PPC.h (diff)
The file was modifiedclang/tools/libclang/CIndex.cpp (diff)
The file was modifiedclang/lib/Basic/Targets/PNaCl.h (diff)
The file was modifiedclang/lib/Basic/Targets/SystemZ.h (diff)
The file was modifiedclang/lib/Basic/Targets/Lanai.h (diff)
The file was modifiedclang/test/Sema/ext-int.c (diff)
The file was modifiedclang/lib/AST/ExprConstant.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp (diff)
The file was modifiedclang/test/CodeGen/extend-arg-64.c (diff)
The file was modifiedclang/lib/Basic/Targets/AMDGPU.h (diff)
The file was modifiedclang/lib/Basic/Targets/X86.h (diff)
The file was modifiedclang/lib/Sema/SemaLookup.cpp (diff)
The file was modifiedclang/lib/Sema/SemaChecking.cpp (diff)
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp (diff)
The file was modifiedclang/lib/CodeGen/CodeGenTypes.cpp (diff)
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp (diff)
The file was modifiedclang/test/CodeGenOpenCL/ext-int-shift.cl (diff)
The file was modifiedclang/lib/AST/Type.cpp (diff)
The file was modifiedclang/include/clang/Basic/TypeNodes.td (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/include/clang/AST/Type.h (diff)
The file was modifiedclang/lib/Sema/SemaTemplateVariadic.cpp (diff)
The file was modifiedclang/test/CodeGen/ext-int-sanitizer.cpp (diff)
The file was modifiedclang/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/include/clang/Serialization/TypeBitCodes.def (diff)
The file was modifiedclang/lib/Basic/Targets/NVPTX.h (diff)
The file was modifiedclang/test/SemaCXX/ext-int-asm.cpp (diff)
The file was modifiedclang/lib/Sema/TreeTransform.h (diff)
The file was modifiedclang/lib/Basic/Targets/ARC.h (diff)
The file was modifiedclang/lib/CodeGen/ABIInfo.h (diff)
The file was modifiedclang/test/CXX/temp/temp.param/p7.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplateDeduction.cpp (diff)
The file was modifiedclang/include/clang/AST/TypeProperties.td (diff)
The file was modifiedclang/lib/Sema/SemaTemplate.cpp (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
The file was modifiedclang/lib/Sema/Sema.cpp (diff)
The file was modifiedclang/include/clang/Basic/Specifiers.h (diff)
The file was modifiedclang/include/clang/Parse/Parser.h (diff)
The file was modifiedclang/lib/Basic/Targets/XCore.h (diff)
The file was modifiedclang/test/SemaCXX/ext-int.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTReader.cpp (diff)
The file was modifiedclang/lib/Sema/DeclSpec.cpp (diff)
The file was modifiedclang/lib/Sema/SemaType.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriter.cpp (diff)
The file was modifiedclang/test/OpenMP/nvptx_unsupported_type_messages.cpp (diff)
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-implicit-widening-of-multiplication-result-extint.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp (diff)
The file was modifiedclang/include/clang/Basic/TokenKinds.def (diff)
The file was modifiedclang/lib/Sema/SemaDecl.cpp (diff)
The file was modifiedclang/lib/Parse/ParseExpr.cpp (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td (diff)
The file was modifiedclang/lib/CodeGen/CodeGenTBAA.cpp (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td (diff)
The file was modifiedclang/include/clang/Sema/DeclSpec.h (diff)
The file was modifiedclang/lib/Basic/Targets/Hexagon.h (diff)
The file was modifiedclang/lib/AST/ItaniumMangle.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h (diff)
The file was modifiedclang/lib/Basic/Targets/WebAssembly.h (diff)
The file was modifiedclang/lib/CodeGen/CGCall.cpp (diff)
The file was modifiedclang/lib/AST/TypePrinter.cpp (diff)
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp (diff)
The file was modifiedclang/test/Sema/invalid-bitwidth-expr.mm (diff)
The file was modifiedclang/lib/Basic/Targets/Sparc.h (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/lib/Basic/Targets/AArch64.h (diff)
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h (diff)
The file was modifiedclang/test/CodeGen/ext-int.c (diff)
The file was modifiedclang/include/clang/AST/TypeLoc.h (diff)
The file was modifiedclang/lib/Basic/Targets/ARM.h (diff)
The file was modifiedclang/lib/Basic/Targets/Mips.h (diff)
The file was modifiedclang/lib/AST/ASTContext.cpp (diff)
The file was modifiedclang/lib/AST/ASTStructuralEquivalence.cpp (diff)
The file was modifiedclang/lib/Basic/Targets/RISCV.h (diff)
The file was modifiedclang/lib/Parse/ParseTentative.cpp (diff)
The file was modifiedclang/test/CodeGen/attr-noundef.cpp (diff)
The file was modifiedclang/test/Parser/ext-int.cpp (diff)
The file was modifiedclang/docs/LanguageExtensions.rst (diff)
The file was modifiedclang/test/CodeGen/builtins-overflow.c (diff)
The file was modifiedclang/test/CodeGenCXX/ext-int.cpp (diff)
The file was modifiedclang/lib/Parse/ParseDecl.cpp (diff)
The file was modifiedclang/test/Sema/builtins.c (diff)
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp (diff)
The file was modifiedclang/test/Sema/builtins-overflow.c (diff)
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp (diff)
The file was modifiedclang/test/CodeGen/ext-int-cc.c (diff)
The file was modifiedclang/lib/AST/MicrosoftMangle.cpp (diff)
The file was modifiedclang/lib/Basic/Targets/SPIR.h (diff)
The file was modifiedclang/include/clang/Basic/TargetInfo.h (diff)
The file was modifiedclang/lib/Sema/SemaStmtAsm.cpp (diff)
Commit 4a16fe1369f3ab0e98261d4bd133034425d0523c by shutty
[llvm] [Debuginfo] Debuginfod client library.

This adds a Debuginfod client library which queries servers specified by the `DEBUGINFOD_URLS` environment variable for the debuginfo, executable, or a specified source file associated with a given build id.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D112758
The file was addedllvm/include/llvm/Debuginfod/Debuginfod.h
The file was modifiedllvm/unittests/CMakeLists.txt (diff)
The file was modifiedllvm/include/llvm/Support/Caching.h (diff)
The file was addedllvm/lib/Debuginfod/CMakeLists.txt
The file was addedllvm/lib/Debuginfod/Debuginfod.cpp
The file was modifiedllvm/lib/CMakeLists.txt (diff)
The file was addedllvm/unittests/Debuginfod/CMakeLists.txt
The file was addedllvm/unittests/Debuginfod/DebuginfodTests.cpp
Commit 327d966365d7b34abd25a920e1f7b5aecfa5c70f by martin
clang-format: [JS] test case for numeric separators.

ES2021 allows numeric literals using `_` as a separator. This already
works, but had no test.

Differential Revision: https://reviews.llvm.org/D115147
The file was modifiedclang/unittests/Format/FormatTestJS.cpp (diff)
Commit cbf682cb1c99c70fa93eb4e32aa5120e4881ba04 by paulsson
[SystemZ] Improve codegen for memset.

Memset with a constant length was implemented with a single store followed by
a series of MVC:s. This patch changes this so that one store of the byte is
emitted for each MVC, which avoids data dependencies between the MVCs. An
MVI/STC + MVC(len-1) is done for each block.

In addition, memset with a variable length is now also handled without a
libcall. Since the byte is first stored and then MVC is used from that
address, a length of two must now be subtracted instead of one for the loop
and EXRL. This requires an extra check for the one-byte case, which is
handled in a special block with just a single MVI/STC (like GCC).

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D112004
The file was modifiedllvm/test/CodeGen/SystemZ/memset-04.ll (diff)
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.h (diff)
The file was modifiedllvm/test/CodeGen/SystemZ/memset-02.ll (diff)
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrFormats.td (diff)
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.td (diff)
The file was addedllvm/test/CodeGen/SystemZ/memset-07.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/SystemZ/SystemZOperators.td (diff)
The file was modifiedllvm/test/CodeGen/SystemZ/tail-call-mem-intrinsics.ll (diff)
The file was modifiedllvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/SystemZ/memset-01.ll (diff)
Commit 1feb8ab0d350640058ffa764e0aeeda2480d6302 by aaron
Update the status of N2412 in C (we do not implement large parts of it)
The file was modifiedclang/www/c_status.html (diff)
Commit f0cda7155cdc3672a715eb84f03ea3461042e48f by thakis
[gn build] (manually) port 4a16fe1369f3ab (debuginfod)
The file was addedllvm/utils/gn/secondary/llvm/unittests/Debuginfod/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/BUILD.gn (diff)
The file was addedllvm/utils/gn/secondary/llvm/lib/Debuginfod/BUILD.gn