LLVM/project 0967957llvm/test/Analysis/CostModel/AArch64 fcmp.ll sve-fcmp.ll, llvm/test/Analysis/CostModel/ARM arith-overflow.ll select.ll

[CostModel] Handle all cost kinds in getCmpSelInstrCost (#148233)

Currently we always produce a cost of 1 for all CostKinds that are not
RecipThroughput, which can underestimate the cost if the type has a
higher legalization cost (like larger vectors). This relaxes it to cover
all cost kinds.
DeltaFile
+174-189llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
+128-128llvm/test/Analysis/CostModel/AArch64/fcmp.ll
+90-90llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
+69-69llvm/test/Analysis/CostModel/AArch64/sve-fcmp.ll
+52-52llvm/test/Analysis/CostModel/ARM/select.ll
+50-50llvm/test/Analysis/CostModel/ARM/arith-usat.ll
+563-57818 files not shown
+816-82924 files

LLVM/project 6260d8fclang/docs ReleaseNotes.rst, clang/lib/Sema TreeTransform.h

[C++] Fix a failed assertion with nullability checking (#148881)

This fixes a failed assertion with an operator call expression which
comes from a macro expansion when performing analysis for nullability
attributes.

Fixes #138371
DeltaFile
+22-0clang/test/SemaTemplate/gh138371.cpp
+8-3clang/lib/Sema/TreeTransform.h
+2-0clang/docs/ReleaseNotes.rst
+32-33 files

LLVM/project 2640ffdllvm/include/llvm/Target TargetSelectionDAG.td, llvm/lib/CodeGen AtomicExpandPass.cpp

[AtomicExpand] Add bitcasts when expanding load atomic vector

AtomicExpand fails for aligned `load atomic <n x T>` because it
does not find a compatible library call. This change adds appropriate
bitcasts so that the call can be lowered. It also adds support for
128 bit lowering in tablegen to support SSE/AVX.
DeltaFile
+184-79llvm/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll
+93-0llvm/test/CodeGen/X86/atomic-load-store.ll
+51-0llvm/test/CodeGen/ARM/atomic-load-store.ll
+12-3llvm/lib/CodeGen/AtomicExpandPass.cpp
+14-0llvm/include/llvm/Target/TargetSelectionDAG.td
+5-0llvm/lib/Target/X86/X86InstrCompiler.td
+359-826 files

LLVM/project b30786fllvm/lib/Target/X86 X86ISelLowering.cpp X86ISelLowering.h, llvm/test/CodeGen/X86 atomic-load-store.ll

[X86] Cast atomic vectors in IR to support floats

This commit casts floats to ints in an atomic load during AtomicExpand to support
floating point types. It also is required to support 128 bit vectors in SSE/AVX.
DeltaFile
+163-18llvm/test/CodeGen/X86/atomic-load-store.ll
+7-0llvm/lib/Target/X86/X86ISelLowering.cpp
+2-0llvm/lib/Target/X86/X86ISelLowering.h
+172-183 files

LLVM/project 20c8e3cclang/docs ReleaseNotes.rst, clang/lib/AST ExprConstant.cpp

[clang] Fix pointer comparisons between pointers to constexpr-unknown (#147663)

A constexpr-unknown reference can be equal to an arbitrary value, except
values allocated during constant evaluation. Fix the handling.

The standard is unclear exactly which pointer comparisons count as
"unknown" in this context; for example, in some cases we could use
alignment to prove two constexpr-unknown references are not equal. I
decided to ignore all the cases involving variables not allocated during
constant evaluation.

While looking at this, I also spotted that there might be issues with
lifetimes, but I didn't try to address it.
DeltaFile
+24-8clang/test/SemaCXX/constant-expression-p2280r4.cpp
+15-0clang/test/SemaCXX/constant-expression-cxx14.cpp
+4-6clang/lib/AST/ExprConstant.cpp
+1-0clang/docs/ReleaseNotes.rst
+44-144 files

LLVM/project b8727eellvm/lib/Target/X86 X86InstrCompiler.td, llvm/test/CodeGen/X86 atomic-load-store.ll

[X86] Remove extra MOV after widening atomic load

This change adds patterns to optimize out an extra MOV
present after widening the atomic load.
DeltaFile
+28-164llvm/test/CodeGen/X86/atomic-load-store.ll
+7-0llvm/lib/Target/X86/X86InstrCompiler.td
+35-1642 files

LLVM/project 73ea819llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeTypes.h, llvm/test/CodeGen/X86 atomic-load-store.ll

[SelectionDAG] Widen <2 x T> vector types for atomic load

Vector types of 2 elements must be widened. This change does this
for vector types of atomic load in SelectionDAG
so that it can translate aligned vectors of >1 size.
DeltaFile
+286-0llvm/test/CodeGen/X86/atomic-load-store.ll
+74-23llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+361-233 files

LLVM/project a4dab50llvm/lib/Target/DirectX DXILDataScalarization.cpp

[DirectX] Replace `getNextNonDebugInstruction` with `getNextNode` (#148890)

Fixes the DirectX backend build failure due to #144383
DeltaFile
+1-1llvm/lib/Target/DirectX/DXILDataScalarization.cpp
+1-11 files

LLVM/project 27e1e69llvm/test/CodeGen/X86 atomic-load-store.ll

[X86] Add atomic vector tests for unaligned >1 sizes.

Unaligned atomic vectors with size >1 are lowered to calls.
Adding their tests separately here.
DeltaFile
+588-0llvm/test/CodeGen/X86/atomic-load-store.ll
+588-01 files

LLVM/project 0e8e100llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 atomic-load-store.ll

[X86] Manage atomic load of fp -> int promotion in DAG

When lowering atomic <1 x T> vector types with floats, selection can fail since
this pattern is unsupported. To support this, floats can be casted to
an integer type of the same size.
DeltaFile
+117-0llvm/test/CodeGen/X86/atomic-load-store.ll
+4-0llvm/lib/Target/X86/X86ISelLowering.cpp
+121-02 files

LLVM/project 5cd825dllvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeTypes.h, llvm/test/CodeGen/X86 atomic-load-store.ll

[SelectionDAG] Legalize <1 x T> vector types for atomic load

`load atomic <1 x T>` is not valid. This change legalizes
vector types of atomic load via scalarization in SelectionDAG
so that it can, for example, translate from `v1i32` to `i32`.
DeltaFile
+241-9llvm/test/CodeGen/X86/atomic-load-store.ll
+15-0llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+257-93 files

LLVM/project af2fec2llvm/docs LangRef.rst ReleaseNotes.md, llvm/lib/IR Verifier.cpp

IR/Verifier: Allow vector type in atomic load and store

Vector types on atomics are assumed to be invalid by the verifier. However,
this type can be valid if it is lowered by codegen.
DeltaFile
+19-0llvm/test/Assembler/atomic.ll
+8-7llvm/test/Verifier/atomics.ll
+8-6llvm/lib/IR/Verifier.cpp
+4-4llvm/docs/LangRef.rst
+1-0llvm/docs/ReleaseNotes.md
+40-175 files

LLVM/project 31e6fe7libcxx/test/libcxx/time/time.zone/time.zone.exception/time.zone.exception.ambig assert.ctor.pass.cpp, libcxx/test/libcxx/time/time.zone/time.zone.exception/time.zone.exception.nonexist assert.ctor.pass.cpp

[libc++] Add missing unsupported attributes to hardening timezone tests. (#148406)

Before this patch, these tests fail under `extensive` and `debug`
hardening modes.
DeltaFile
+2-0libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/assert.to_sys.pass.cpp
+2-0libcxx/test/libcxx/time/time.zone/time.zone.exception/time.zone.exception.ambig/assert.ctor.pass.cpp
+2-0libcxx/test/libcxx/time/time.zone/time.zone.exception/time.zone.exception.nonexist/assert.ctor.pass.cpp
+2-0libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/assert.to_sys_choose.pass.cpp
+1-0libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/assert.to_local.pass.cpp
+9-05 files

LLVM/project 7adbbafllvm/include/llvm/MC MCELFStreamer.h MCObjectStreamer.h, llvm/lib/MC MCELFStreamer.cpp MCObjectStreamer.cpp

make some functions non-virtual

Created using spr 1.3.5-bogner
DeltaFile
+0-319llvm/test/MC/Mips/nacl-mask.s
+0-38llvm/lib/MC/MCELFStreamer.cpp
+19-10llvm/lib/MC/MCObjectStreamer.cpp
+1-6llvm/test/MC/AsmParser/AArch64/directive-parse-err.s
+0-7llvm/include/llvm/MC/MCELFStreamer.h
+1-1llvm/include/llvm/MC/MCObjectStreamer.h
+21-3816 files

LLVM/project 8612926lldb/include/lldb/Utility Listener.h, lldb/source/Utility Listener.cpp Broadcaster.cpp

[lldb] Fix race condition in Process::WaitForProcessToStop() (#144919)

This PR addresses a race condition encountered when using LLDB through
the Python scripting interface.

I'm relatively new to LLDB, so feedback is very welcome, especially if
there's a more appropriate way to address this issue.

### Bug Description

When running a script that repeatedly calls
`debugger.GetListener().WaitForEvent()` in a loop, and at some point
invokes `process.Kill()` from within that loop to terminate the session,
a race condition can occur if `process.Kill()` is called around the same
time a breakpoint is hit.

### Race Condition Details

The issue arises when the following sequence of events happens:

    [32 lines not shown]
DeltaFile
+81-0lldb/unittests/Utility/ListenerTest.cpp
+27-0lldb/source/Utility/Listener.cpp
+25-0lldb/source/Utility/Broadcaster.cpp
+7-0lldb/include/lldb/Utility/Listener.h
+140-04 files

LLVM/project a35b290clang/lib/CIR/CodeGen CIRGenClass.cpp

[CIR][NFC] Fix typo in assertion message (Must) (#148704)

DeltaFile
+1-1clang/lib/CIR/CodeGen/CIRGenClass.cpp
+1-11 files

LLVM/project eec98belldb/source/Plugins/Language/CPlusPlus MsvcStlTuple.cpp CPlusPlusLanguage.cpp, lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/tuple TestDataFormatterStdTuple.py main.cpp

[LLDB] Add formatters for MSVC STL std::tuple (#148548)

Adds synthetic children for MSVC STL's
[`std::tuple`](https://github.com/microsoft/STL/blob/313964b78a8fd5a52e7965e13781f735bcce13c5/stl/inc/tuple).
A `tuple` is a chain of base classes:
```cpp
template <>
class tuple<> {};

template <class _This, class... _Rest>
class tuple<_This, _Rest...> : private tuple<_Rest...> {
  _Tuple_val<_This> _Myfirst;
};
```

So the provider walks the base classes to the desired one.

The implementation makes it hard to detect if the empty tuple is from
this STL. Fortunately, libstdc++'s synthetic children provider works for

    [2 lines not shown]
DeltaFile
+105-0lldb/source/Plugins/Language/CPlusPlus/MsvcStlTuple.cpp
+17-9lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+6-0lldb/source/Plugins/Language/CPlusPlus/MsvcStl.h
+6-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/tuple/TestDataFormatterStdTuple.py
+1-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/tuple/main.cpp
+1-0lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt
+136-96 files

LLVM/project e6fcd59.github CODEOWNERS

[github][CIR] Add xlauko and andykaylor as CIR reviewers (#148852)

DeltaFile
+3-3.github/CODEOWNERS
+3-31 files

LLVM/project d969ec9libc/src/__support/math exp.h exp_constants.h, libc/src/math/generic exp.cpp common_constants.cpp

[libc][math] Refactor exp implementation to header-only in src/__support/math folder. (#148761)

- **[libc][math] Refactor exp implementation to header-only in
src/__support/math folder.**
- **Reapply "[libc][math] Refactor exp implementation to header-only in
src/__support/math folder." (#148668)**
DeltaFile
+448-0libc/src/__support/math/exp.h
+2-427libc/src/math/generic/exp.cpp
+174-0libc/src/__support/math/exp_constants.h
+0-157libc/src/math/generic/common_constants.cpp
+72-0libc/src/__support/math/exp_utils.h
+44-13utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+740-5979 files not shown
+813-68115 files

LLVM/project 55f1b91clang/lib/Parse ParseDeclCXX.cpp, clang/test/Parser gh114815.cpp

[Clang] Fix a crash when parsing an invalid `decltype` (#148798)

We would try to exact an annotated token before checking if it was
valid, leading to a crash when `decltype` was the only token that was
parsed (which can happen in the absense of opening paren)

Fixes #114815
DeltaFile
+0-7clang/lib/Parse/ParseDeclCXX.cpp
+6-0clang/test/Parser/gh114815.cpp
+6-72 files

LLVM/project be4d754clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Reformat Ops to use common `CIR_` prefix and definition traits style (#148865)

- This adds common CIR_ prefix to all operation disambiguating them when used with other dialects.
- Unifies traits style in operation definitions.

This mirrors incubator changes from https://github.com/llvm/clangir/pull/1741
DeltaFile
+179-142clang/include/clang/CIR/Dialect/IR/CIROps.td
+179-1421 files

LLVM/project c2e41beflang/lib/Parser prescan.cpp, flang/test/Preprocessing omp-sentinel-fixed-form.F

[flang][Parser] Add whitespace token after the sentinel in fixed form (#148825)

Fixes #148386

The first time the line was classified (using
`Prescanner::ClassifyLine(const char *)`) the line was correctly
classified as a compiler directive. But then later on the token form is
invoked (`Prescanner::ClassifyLine(TokenSequence, Provenance)`). This
one incorrectly classified the line as a comment because there was no
whitespace token right after the sentinel. This fixes the issue by
ensuring this whitespace is added.
DeltaFile
+21-0flang/test/Preprocessing/omp-sentinel-fixed-form.F
+3-1flang/lib/Parser/prescan.cpp
+24-12 files

LLVM/project f5c676dlldb/source/Target TargetProperties.td, lldb/test/API/commands/frame/var-dil/basics/QualifiedId main.cpp TestFrameVarDILQualifiedId.py

[LLDB] Switch to using DIL as default implementation for 'frame var'. (#147887)

DeltaFile
+21-2lldb/test/API/commands/frame/var-dil/basics/QualifiedId/main.cpp
+14-0lldb/test/API/commands/frame/var-dil/basics/QualifiedId/TestFrameVarDILQualifiedId.py
+9-0llvm/docs/ReleaseNotes.md
+3-3lldb/test/API/tools/lldb-dap/evaluate/TestDAP_evaluate.py
+2-2lldb/source/Target/TargetProperties.td
+1-1lldb/test/Shell/SymbolFile/DWARF/TestDedupWarnings.test
+50-81 files not shown
+51-97 files

LLVM/project 9147993clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Reformat Ops to use common `CIR_` prefix and definition traits style

- This adds common CIR_ prefix to all operation disambiguating them when used with other dialects.
- Unifies traits style in operation definitions.

This mirrors incubator changes from https://github.com/llvm/clangir/pull/1741
DeltaFile
+179-142clang/include/clang/CIR/Dialect/IR/CIROps.td
+179-1421 files

LLVM/project 3d68823libcxx/docs/Status Cxx2cIssues.csv Cxx2cPapers.csv

[libc++][docs] Add missing entry for status pages, fix bad formatting, and deduplicate (#148186)

In a previously PR, the entry for P3491R3 define_static_{string,object,array} was missing.
This patch adds it back.

The number of LWG2687, LWG2709, LWG3315, LWG3395, LWG3987, and LWG4113
were duplicated in the title. It seems better to avoid such duplicates.

Also fixes some formatting to properly use italic and code styles, and
remove one improper leading space from the title of P3682R0 (which
caused incorrect alignment in the generated page).
DeltaFile
+6-6libcxx/docs/Status/Cxx2cIssues.csv
+3-2libcxx/docs/Status/Cxx2cPapers.csv
+2-2libcxx/docs/Status/Cxx17Issues.csv
+2-2libcxx/docs/Status/Cxx20Issues.csv
+13-124 files

LLVM/project 3248a6d.github/workflows premerge.yaml

[CI][Github] Switch windows to server 2022 (#148743)

This patch switches the windows testing over to server 2022 by switching
to the recently introduced runner set.
DeltaFile
+1-1.github/workflows/premerge.yaml
+1-11 files

LLVM/project e2eade4mlir/include/mlir/Dialect/OpenMP OpenMPClauses.td OpenMPEnums.td, mlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp

[MLIR] [OpenMP] Initial support for OMP ALLOCATE directive op. (#147900)

This patch includes adding support for OMP ALLOCATE directive along with
ALIGN clause and ALLOCATOR clause which are used within OMP ALLOCATE
directive
DeltaFile
+51-0mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
+33-0mlir/test/Dialect/OpenMP/ops.mlir
+30-0mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
+24-0mlir/test/Dialect/OpenMP/invalid.mlir
+23-0mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+15-0mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+176-06 files

LLVM/project 1db9eb2llvm/lib/Target/RISCV RISCVFrameLowering.cpp RISCVFrameLowering.h, llvm/test/CodeGen/RISCV stack-probing-frame-setup.mir

[RISCV] Pass the MachineInstr flag as argument to allocateStack (#147531)

When not in the prologue we do not want to set the FrameSetup flag, by
passing the flag as argument we can use allocateStack correctly on those
cases.
This fixes the allocation and probe in eliminateCallFramePseudoInstr.
DeltaFile
+198-0llvm/test/CodeGen/RISCV/stack-probing-frame-setup.mir
+16-16llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
+2-1llvm/lib/Target/RISCV/RISCVFrameLowering.h
+216-173 files

LLVM/project e282cdbllvm/lib/Target/RISCV RISCVInterleavedAccess.cpp

[RISCV][IA] Avoid use of redundant variables which differ solely by type [nfc]

Instead of using dyn_cast, just use isa combined with accessors on the base
VectotType class.  Working towards being able to merge code from some of
these routines.
DeltaFile
+10-10llvm/lib/Target/RISCV/RISCVInterleavedAccess.cpp
+10-101 files

LLVM/project ff5f355llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Use a range-based for loop (NFC) (#148767)

DeltaFile
+2-2llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+2-21 files