LLVM/project 3088c31llvm/include/llvm/Support GenericDomTree.h, llvm/lib/CodeGen ShrinkWrap.cpp

[llvm] Add NCD search on Array of basic blocks (NFC) (#119355)

Shrink-Wrap points split Part 2.
RFC:
https://discourse.llvm.org/t/shrink-wrap-save-restore-points-splitting/83581

Part 1: https://github.com/llvm/llvm-project/pull/117862
Part 3: https://github.com/llvm/llvm-project/pull/119357
Part 4: https://github.com/llvm/llvm-project/pull/119358
Part 5: https://github.com/llvm/llvm-project/pull/119359
DeltaFile
+16-0llvm/include/llvm/Support/GenericDomTree.h
+1-6llvm/lib/CodeGen/ShrinkWrap.cpp
+17-62 files

LLVM/project 957213fclang/lib/Sema SemaExpr.cpp, clang/test/SemaOpenCL invalid-block.cl

[OpenCL] Diagnose block references in selection operator (#114824)

In addition to the invocation case that is already diagnosed, also
diagnose when a block reference appears on either side of a ternary
selection operator.

Until now, clang would accept the added test case only to crash during
code generation.
DeltaFile
+5-0clang/lib/Sema/SemaExpr.cpp
+2-0clang/test/SemaOpenCL/invalid-block.cl
+7-02 files

LLVM/project 22561cflldb/packages/Python/lldbsuite/test lldbreverse.py lldbgdbproxy.py, lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp

Revert "[lldb] Implement basic support for reverse-continue" (#123906)

Reverts llvm/llvm-project#112079 due to failures on the arm bot.
DeltaFile
+0-492lldb/packages/Python/lldbsuite/test/lldbreverse.py
+0-175lldb/packages/Python/lldbsuite/test/lldbgdbproxy.py
+0-149lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
+0-130lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
+13-85lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+3-29lldb/source/Target/ThreadList.cpp
+16-1,06034 files not shown
+47-1,33340 files

LLVM/project bc6f84aclang/lib/Basic DiagnosticIDs.cpp, clang/tools/diagtool DiagnosticNames.cpp

[StrTable] Switch diag group names to `llvm::StringTable` (#123302)

Previously, they used a hand-rolled Pascal-string encoding different
from all the other string tables produced from TableGen. This moves them
to use the newly introduced runtime abstraction, and enhances that
abstraction to support iterating over the string table as used in this
case.

From what I can tell the Pascal-string encoding isn't critical here to
avoid expensive `strlen` calls, so I think this is a simpler and more
consistent model. But if folks would prefer a Pascal-string style
encoding, I can instead work to switch the `StringTable` abstraction
towards that. It would require some tricky tradeoffs though to make it
reasonably general: either using 4 bytes instead of 1 byte to encode the
size, or having a fallback to `strlen` for long strings.
DeltaFile
+52-1llvm/include/llvm/ADT/StringTable.h
+10-18clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
+8-10clang/lib/Basic/DiagnosticIDs.cpp
+2-1clang/tools/diagtool/DiagnosticNames.cpp
+72-304 files

LLVM/project 0369ac8clang/www cxx_status.html

Fix markup in cxx_status.html
DeltaFile
+1-1clang/www/cxx_status.html
+1-11 files

LLVM/project 0a9c08cclang/include/clang/AST APValue.h, clang/lib/AST ExprConstant.cpp APValue.cpp

[Clang] Implement P2280R4 Using unknown pointers and references in constant expressions (#95474)

P2280R4 allows the use of references in pointers of unknown origins in a
constant expression context but only in specific cases that could be
constant expressions.

We track whether a variable is a constexpr unknown in a constant
expression by setting a flag in either APValue or LValue and using this
flag to prevent using unknown values in places where it is not allowed.

Fixes: https://github.com/llvm/llvm-project/issues/63139 https://github.com/llvm/llvm-project/issues/63117
DeltaFile
+156-0clang/test/SemaCXX/constant-expression-p2280r4.cpp
+123-9clang/lib/AST/ExprConstant.cpp
+38-15clang/include/clang/AST/APValue.h
+9-7clang/test/SemaCXX/constant-expression-cxx11.cpp
+13-2clang/lib/AST/APValue.cpp
+2-2clang/www/cxx_status.html
+341-352 files not shown
+344-378 files

LLVM/project 19a7fe0llvm/lib/CodeGen MachineBlockPlacement.cpp

[CodeGen] Avoid repeated hash lookups (NFC) (#123894)

DeltaFile
+3-3llvm/lib/CodeGen/MachineBlockPlacement.cpp
+3-31 files

LLVM/project 8ad4f1allvm/lib/Analysis BranchProbabilityInfo.cpp

[Analysis] Avoid repeated hash lookups (NFC) (#123893)

DeltaFile
+5-3llvm/lib/Analysis/BranchProbabilityInfo.cpp
+5-31 files

LLVM/project aaf0643lld/MachO SyntheticSections.cpp

[lld] Migrate away from PointerUnion::dyn_cast (NFC) (#123891)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses cast
because we know expect isa<Symbol *>(rel.referent) to be true.
DeltaFile
+1-1lld/MachO/SyntheticSections.cpp
+1-11 files

LLVM/project a5159e2clang/lib/AST Decl.cpp

[AST] Migrate away from PointerUnion::dyn_cast (NFC) (#123890)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect TemplateOrSpecialization to be nonnull.
DeltaFile
+1-1clang/lib/AST/Decl.cpp
+1-11 files

LLVM/project 9decc24mlir/lib/ExecutionEngine CMakeLists.txt, mlir/test/lib/Conversion/ConvertToSPIRV CMakeLists.txt

Revert "[mlir] Link libraries that aren't included in libMLIR to libMLIR (#123781)"

This reverts commit 4c6242ebf50dde0597df2bace49d534b61122496.  More
BUILD_SHARED_LIBS=ON regressions, sigh.
DeltaFile
+2-5mlir/lib/ExecutionEngine/CMakeLists.txt
+2-2mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
+1-3mlir/test/lib/Conversion/FuncToLLVM/CMakeLists.txt
+2-2mlir/test/lib/Conversion/MathToVCIX/CMakeLists.txt
+1-3mlir/test/lib/Conversion/OneToNTypeConversion/CMakeLists.txt
+2-2mlir/test/lib/Conversion/VectorToSPIRV/CMakeLists.txt
+10-1738 files not shown
+77-10044 files

LLVM/project 69d0c4cclang/docs ReleaseNotes.rst, clang/lib/Parse ParseExpr.cpp

[Clang] SubstituteConstraintExpressionWithoutSatisfaction needs an unevaluated context (#123883)

It turns out that the substitution for expression comparing also needs
an unevaluated context, otherwise any reference to immediate functions
might not be properly handled.

As a fallout, this also guards the VLA transformation under unevaluated
context
with `InConditionallyConstantEvaluateContext` to avoid duplicate
diagnostics.

Fixes https://github.com/llvm/llvm-project/issues/123472

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>
DeltaFile
+19-0clang/lib/Parse/ParseExpr.cpp
+14-0clang/test/SemaTemplate/concepts-out-of-line-def.cpp
+3-2clang/lib/Sema/SemaExpr.cpp
+3-0clang/lib/Sema/SemaConcept.cpp
+1-1clang/docs/ReleaseNotes.rst
+40-35 files

LLVM/project ca65055llvm/docs LangRef.rst

Remove mention of conditional branches in undefined values section. (#122980)

This statement is somewhat confusing when paired with the later
statement that says "Branching on an undefined value is undefined
behavior". Furthermore, this example does not show any conditional
branches, so this comment seems to be outdated.

See issue #122532 for more details.
DeltaFile
+2-2llvm/docs/LangRef.rst
+2-21 files

LLVM/project f7d8336llvm/include/llvm/CodeGen TargetInstrInfo.h, llvm/lib/Target/ARM ARMBaseInstrInfo.h

[llvm] Pass MachineInstr flags to storeRegToStackSlot/loadRegFromStackSlot (NFC) (#120622)

This patch is in preparation to enable setting the MachineInstr::MIFlag
flags, i.e. FrameSetup/FrameDestroy, on callee saved register
spill/reload instructions in prologue/epilogue. This eventually helps in
setting the prologue_end and epilogue_begin markers more accurately.

The DWARF Spec in "6.4 Call Frame Information" says:

The code that allocates space on the call frame stack and performs the
save
operation is called the subroutine’s prologue, and the code that
performs
the restore operation and deallocates the frame is called its epilogue.

which means the callee saved register spills and reloads are part of
prologue (a.k.a frame setup) and epilogue (a.k.a frame destruction),
respectively. And, IIUC, LLVM backend uses FrameSetup/FrameDestroy flags
to identify instructions that are part of call frame setup and

    [57 lines not shown]
DeltaFile
+23-25llvm/lib/Target/Mips/MipsInstrInfo.h
+16-14llvm/include/llvm/CodeGen/TargetInstrInfo.h
+12-12llvm/lib/Target/Lanai/LanaiInstrInfo.h
+10-12llvm/lib/Target/Mips/MipsSEInstrInfo.h
+10-12llvm/lib/Target/Mips/Mips16InstrInfo.h
+10-11llvm/lib/Target/ARM/ARMBaseInstrInfo.h
+81-8645 files not shown
+428-45751 files

LLVM/project 53ea5ffclang/include/clang/Analysis/Analyses ExprMutationAnalyzer.h, clang/lib/Analysis ExprMutationAnalyzer.cpp

[mutation analyzer] support mutation analysis for pointee (#118593)

This patch wants to add mutation analyzer for pointee object.
DeltaFile
+395-0clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
+144-3clang/lib/Analysis/ExprMutationAnalyzer.cpp
+4-0clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h
+543-33 files

LLVM/project 4c6242emlir/lib/ExecutionEngine CMakeLists.txt, mlir/test/lib/Interfaces/TilingInterface CMakeLists.txt

[mlir] Link libraries that aren't included in libMLIR to libMLIR (#123781)

Use `mlir_target_link_libraries()` to link dependencies of libraries
that are not included in libMLIR, to ensure that they link to the dylib
when they are used in Flang. Otherwise, they implicitly pull in all
their static dependencies, effectively causing Flang binaries to
simultaneously link to the dylib and to static libraries, which is never
a good idea.

I have only covered the libraries that are used by Flang. If you wish, I
can extend this approach to all non-libMLIR libraries in MLIR, making
MLIR itself also link to the dylib consistently.

[v2 with fixed `-DBUILD_SHARED_LIBS=ON` build]
DeltaFile
+5-2mlir/lib/ExecutionEngine/CMakeLists.txt
+2-2mlir/test/lib/Interfaces/TilingInterface/CMakeLists.txt
+2-2mlir/test/lib/Reducer/CMakeLists.txt
+2-2mlir/test/lib/Rewrite/CMakeLists.txt
+3-1mlir/test/lib/Tools/PDLL/CMakeLists.txt
+2-2mlir/test/lib/Transforms/CMakeLists.txt
+16-1138 files not shown
+100-7744 files

LLVM/project d839c06lldb/source/Target Process.cpp

[lldb] Avoid repeated map lookups (NFC) (#123892)

DeltaFile
+5-10lldb/source/Target/Process.cpp
+5-101 files

LLVM/project bc4b90dclang/test/CodeCompletion member-access.cpp

Add blank line

Co-authored-by: Younan Zhang <zyn7109 at gmail.com>
DeltaFile
+1-1clang/test/CodeCompletion/member-access.cpp
+1-11 files

LLVM/project 253c909.github/workflows premerge.yaml, llvm CMakeLists.txt

2Testing
DeltaFile
+0-5.github/workflows/premerge.yaml
+1-1llvm/CMakeLists.txt
+1-62 files

LLVM/project 77485f7clang/include/clang/Basic Cuda.h, clang/lib/Basic Cuda.cpp

Remove incorrect CUDA defines
DeltaFile
+0-4clang/lib/Driver/ToolChains/Cuda.cpp
+1-3clang/include/clang/Basic/Cuda.h
+1-3clang/lib/Basic/Cuda.cpp
+2-103 files

LLVM/project b7b9ccflldb/packages/Python/lldbsuite/test lldbreverse.py lldbgdbproxy.py, lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp

[lldb] Implement basic support for reverse-continue (#112079)

This commit adds support for a
`SBProcess::ContinueInDirection()` API. A user-accessible command for
this will follow in a later commit.

This feature depends on a gdbserver implementation (e.g. `rr`) providing
support for the `bc` and `bs` packets. `lldb-server` does not support
those packets, and there is no plan to change that. For testing
purposes, this commit adds a Python implementation of *very limited*
record-and-reverse-execute functionality, implemented as a proxy between
lldb and lldb-server in `lldbreverse.py`. This should not (and in
practice cannot) be used for anything except testing.

The tests here are quite minimal but we test that simple breakpoints and
watchpoints work as expected during reverse execution, and that
conditional breakpoints and watchpoints work when the condition calls a
function that must be executed in the forward direction.
DeltaFile
+492-0lldb/packages/Python/lldbsuite/test/lldbreverse.py
+175-0lldb/packages/Python/lldbsuite/test/lldbgdbproxy.py
+149-0lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
+130-0lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
+85-13lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+29-3lldb/source/Target/ThreadList.cpp
+1,060-1634 files not shown
+1,333-4740 files

LLVM/project 47d84d9lld/ELF/Arch LoongArch.cpp

Delete FIXME according to review.
DeltaFile
+3-3lld/ELF/Arch/LoongArch.cpp
+3-31 files

LLVM/project 5f2ee82lld/ELF Relocations.cpp

Address review comments
DeltaFile
+7-5lld/ELF/Relocations.cpp
+7-51 files

LLVM/project 830bd0ellvm/include/llvm/SandboxIR Type.h, llvm/lib/SandboxIR Type.cpp

[SandboxIR] Remove sandboxir::PointerType::get(Type) (#123885)

This was just an alias for getting the LLVM Context from the type.

We are in the process of removing the same function for the regular LLVM
type in https://github.com/llvm/llvm-project/issues/123569
DeltaFile
+2-2llvm/unittests/SandboxIR/SandboxIRTest.cpp
+0-4llvm/lib/SandboxIR/Type.cpp
+0-4llvm/unittests/SandboxIR/TypesTest.cpp
+0-2llvm/include/llvm/SandboxIR/Type.h
+2-124 files

LLVM/project a88f31dllvm/lib/Target/X86 X86FrameLowering.cpp, llvm/test/CodeGen/X86 stack-clash-huge.ll stack-clash-extra-huge.ll

[X86] Fix overflow with large stack probes on x86-64 (#113219)

When emitting an inline stack probe loop, we can't use SUBri to
calculate the loop bound if it doesn't fit in a 32-bit (possibly
sign-extended) immediate.

Fixes #113218.
DeltaFile
+84-0llvm/test/CodeGen/X86/stack-clash-huge.ll
+82-0llvm/test/CodeGen/X86/stack-clash-extra-huge.ll
+32-10llvm/lib/Target/X86/X86FrameLowering.cpp
+198-103 files

LLVM/project 6fe78fdlld/test/ELF aarch64-tlsdesc-pauth.s

Do not specify output for error test cases
DeltaFile
+3-3lld/test/ELF/aarch64-tlsdesc-pauth.s
+3-31 files

LLVM/project 6444d7dlld/test/ELF aarch64-tlsdesc-pauth.s

Address review comments
DeltaFile
+2-6lld/test/ELF/aarch64-tlsdesc-pauth.s
+2-61 files

LLVM/project bde3350lld/ELF Relocations.cpp, lld/test/ELF aarch64-tlsdesc-pauth.s

Use `Err(ctx)` instead of `fatal` and use `getLocation` in error message
DeltaFile
+11-8lld/ELF/Relocations.cpp
+6-2lld/test/ELF/aarch64-tlsdesc-pauth.s
+17-102 files

LLVM/project ffbc37flld/ELF Relocations.cpp

Address review comments
DeltaFile
+33-19lld/ELF/Relocations.cpp
+33-191 files

LLVM/project 57176f4lld/ELF Relocations.cpp SyntheticSections.cpp, lld/test/ELF aarch64-tlsdesc-pauth.s

Address review comments
DeltaFile
+14-27lld/ELF/Relocations.cpp
+12-24lld/test/ELF/aarch64-tlsdesc-pauth.s
+5-5lld/ELF/SyntheticSections.cpp
+1-0lld/ELF/SyntheticSections.h
+1-0lld/ELF/Symbols.h
+33-565 files