LLVM/project b59caeflldb/test/API/tools/lldb-dap/breakpoint-events TestDAP_breakpointEvents.py, lldb/test/API/tools/lldb-dap/eventStatistic TestDAP_eventStatistic.py TestVSCode_eventStatistic.py

[lldb-dap] Migrate lldb-dap events tests. (#209285)

Migrate
- TestDAP_breakpointEvent.py
- TestDAP_eventStatistic.py
- TestDAP_invalidatedEvent.py
- TestDAP_sendEvent.py
- TestDAP_stopped_events.py
- TestDAP_terminatedEvent.py

Some test's helper methods are no longer necessary as there is already
existing session function doing something similar.
DeltaFile
+95-128lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
+104-92lldb/test/API/tools/lldb-dap/breakpoint-events/TestDAP_breakpointEvents.py
+87-0lldb/test/API/tools/lldb-dap/eventStatistic/TestDAP_eventStatistic.py
+0-77lldb/test/API/tools/lldb-dap/eventStatistic/TestVSCode_eventStatistic.py
+42-35lldb/test/API/tools/lldb-dap/send-event/TestDAP_sendEvent.py
+29-32lldb/test/API/tools/lldb-dap/invalidated-event/TestDAP_invalidatedEvent.py
+357-3642 files not shown
+394-3958 files

LLVM/project ec8e379clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

[NFC][Clang] Remove dead code from LifetimeSafety/FactsGenerator.cpp (#210830)

This PR removes dead code in
`clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp`. This was
discovered by a Coverity scan on clang.
DeltaFile
+0-2clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+0-21 files

LLVM/project 56e68bbclang/lib/Driver/ToolChains CommonArgs.cpp, clang/test/Driver amdgpu-mcpu.cl hip-sanitize-options.hip

clang/AMDGPU: Stop passing redundant -target-cpu to cc1

Now that the exact target is encoded in the triple's subarch field,
-target-cpu is redundant. This avoids polluting the resultant IR with
unwanted "target-cpu" attributes. The net result is the desired codegen
when compiling libraries for a major subarch and linking it into a
program compiled for a specific arch. e.g., compiling for "gfx9-generic"
would pollute the IR with "target-cpu"="gfx9-generic", so codegen
would ultimately be performed for the generic target even after
linking into the concrete gfx9 cpu. The specialization will now be
achieved by merging the triples without the linker or optimization
passes needing to fixup function attributes.
DeltaFile
+62-62clang/test/Driver/amdgpu-mcpu.cl
+26-26clang/test/Driver/hip-sanitize-options.hip
+20-10clang/lib/Driver/ToolChains/CommonArgs.cpp
+12-16clang/test/Driver/hip-rdc-device-only.hip
+24-0clang/test/Preprocessor/amdgpu-subarch-cc1-target-cpu.cl
+10-10clang/test/Driver/amdgpu-xnack-sramecc-flags.c
+154-12427 files not shown
+214-21133 files

LLVM/project c24bbf6clang/lib/Basic OffloadArch.cpp, clang/lib/Driver Driver.cpp

clang: Start using new amdgpu subarch triples

Fixup invocations using --target=amdgcn + -mcpu to introduce
the subarch in the triple.

For offload toolchains, a single toolchain is constructed for the
top level amdgpu architecture, and the effective triple is used for
target specific tool invocations.

The specifics of the resource directory layout are tbd. This does
try to find resources in the subarch named directory. The paths
are searched at toolchain creation time, so that does not work
when there are multiple subarches.

Fixes #154925
DeltaFile
+234-2clang/lib/Basic/OffloadArch.cpp
+59-59clang/test/Driver/offload-arch-translation-amdgpu.cu
+43-43clang/test/Driver/hip-phases.hip
+33-33clang/test/Driver/hip-binding.hip
+48-14clang/lib/Driver/ToolChains/CommonArgs.cpp
+43-12clang/lib/Driver/Driver.cpp
+460-163106 files not shown
+1,260-494112 files

LLVM/project 315c8bbclang/lib/CodeGen CGCall.cpp CodeGenTypes.h, clang/lib/CodeGen/Targets X86.cpp

Reland "[clang][CodeGen][X86_64] Honor per-function AVX ABI in C/C++ call paths, maintain old psABI for PlayStation." (#210349)

https://github.com/llvm/llvm-project/pull/193298 was reverted because of
a compile time regression (see results
[here](https://llvm-compile-time-tracker.com/compare.php?from=b9869c8c920a7dfa983e215bc30729b13d8b353b&to=464b46a73b7592c95222cf2e64b34ffe6f2cf251&stat=instructions:u))

I added a conditional statement so that getFunctionFeatureMap and the
subsequent string lookup is only called if FD->hasAttr<TargetAttr>()
evaluates to true which should be very rare.

---------

Co-authored-by: Aaron Ballman <aaron at aaronballman.com>
DeltaFile
+105-51clang/lib/CodeGen/CGCall.cpp
+128-15clang/unittests/CodeGen/CodeGenExternalTest.cpp
+121-0clang/test/CodeGenCXX/target-avx-method-abi.cpp
+71-0clang/test/CodeGen/target-avx-function-abi.c
+57-1clang/lib/CodeGen/Targets/X86.cpp
+24-13clang/lib/CodeGen/CodeGenTypes.h
+506-8022 files not shown
+629-12328 files

LLVM/project 1301a69clang/lib/CodeGen CGVTables.cpp CGOpenMPRuntime.cpp, clang/test/OpenMP openmp_offload_weak_vtables.cpp

Fix Strong VTables Accidentally Emitted by #159856 (#200942)

Users have reported link errors due to duplicate vtables after the merge
of #159856. Root cause analysis revealed that these errors were due to
the VTables emitted in `CGOpenMPRuntime::emitAndRegisterVTable`, which
was added by PR #159856. This PR fixes the issue by changing that
function to emit its VTables as weak symbols.
DeltaFile
+36-0clang/test/OpenMP/openmp_offload_weak_vtables.cpp
+5-1clang/lib/CodeGen/CGVTables.cpp
+3-0clang/lib/CodeGen/CGOpenMPRuntime.cpp
+44-13 files

LLVM/project effb519llvm/lib/Target/AMDGPU SIFoldOperands.cpp, llvm/test/CodeGen/AMDGPU si-fold-operands-constant-fold-imm-operand.mir promote-constOffset-to-imm-gfx12.mir

AMDGPU: Constant fold instructions with inline immediate operands (#208422)

Previously we would only try to perform constant folding and
simplifications when an immediate was folded into an instruction, 
not if the input was already a folded constant.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+115-0llvm/test/CodeGen/AMDGPU/si-fold-operands-constant-fold-imm-operand.mir
+9-18llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+0-4llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm-gfx12.mir
+124-223 files

LLVM/project 16b44e0llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU fold-sgpr-multi-imm.mir

AMDGPU: Do not report inline immediates as legal for generic operands (#208216)

This has one test change in an SI_CS_CHAIN_TC* test. Either this is fine
or the instruction definition should be changed.
DeltaFile
+4-4llvm/test/CodeGen/AMDGPU/fold-sgpr-multi-imm.mir
+1-1llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+5-52 files

LLVM/project d534912clang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp, clang/test/CIR/Transforms/abi-lowering x86_64-struct-direct.cir x86_64-aggregate-nyi.cir

[CIR] Add x86_64 aggregate calling-convention lowering (#210528)

The x86_64 SysV calling-convention bridge in CallConvLowering so far handles only scalar arguments and returns.  A function with a struct or array parameter is reported NYI.  This teaches the bridge to classify struct and array aggregates.

A struct is mapped to an `llvm::abi` record built from the DataLayout field offsets and the CanPassInRegisters flag on the module's `cir.record_layouts` metadata, and an array maps to an `llvm::abi` array.  The library's classifier then produces the ArgInfo, either Direct with a coerced register type the existing rewriter flattens, or Indirect via sret, byval, or byref.  CIRABIRewriteContext already applies all of these, so this only feeds it the aggregate classifications and leaves the scalar path untouched.

Aggregate shapes the bridge does not yet classify stay errorNYI, so an unsupported signature fails cleanly instead of being misclassified.  Those are unions (whose register coercion needs a widen fixup), packed and over-aligned records, empty-for-ABI records, and `_BitInt`.  All-float aggregates such as a two-`float` struct or `float[2]` are included too.  Their SSE class coerces to a `<2 x float>` vector the bridge cannot yet represent, so instead of passing the aggregate through unchanged it reports the coercion as NYI.

The byval and sret argument attributes still carry the CIR record type.  Converting that to the LLVM type in LowerToLLVM is a separate change, so the byval and sret tests check the CIR output only, while the direct and flatten tests also check the lowered LLVM IR.
DeltaFile
+161-41clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+158-0clang/test/CIR/Transforms/abi-lowering/x86_64-struct-direct.cir
+92-0clang/test/CIR/Transforms/abi-lowering/x86_64-aggregate-nyi.cir
+51-0clang/test/CIR/Transforms/abi-lowering/x86_64-struct-indirect.cir
+462-414 files

LLVM/project 6096261llvm/include/llvm/Transforms/Scalar GVN.h GVNValueTable.h, llvm/lib/Transforms/Scalar GVN.cpp GVNHoist.cpp

[GVN] Restructure `GVN.h` to reduce its size (NFC)

* Rename `GVNPass::ValueTable` to `GVNValueTable`, and move it out to
  the `llvm` and to its own file `GVNValueTable.h` (the type is also
  used by `GVNHoistPass` and it makes sense to have it in a separate
  file instead of `GVNHoistPass` peeking into `GVN.h`).
* Move `GVNPass::Expression` into `llvm::GVNValueTable`.
* Move `DepKind`, `ReachingMemVal`, and `DependencyBlockInfo` to `GVN.cpp`.
* Move `GVNHoistPass` and `GVNSinkPass` to their own headers.
DeltaFile
+7-162llvm/include/llvm/Transforms/Scalar/GVN.h
+164-0llvm/include/llvm/Transforms/Scalar/GVNValueTable.h
+110-51llvm/lib/Transforms/Scalar/GVN.cpp
+30-0llvm/include/llvm/Transforms/Scalar/GVNHoist.h
+30-0llvm/include/llvm/Transforms/Scalar/GVNSink.h
+8-6llvm/lib/Transforms/Scalar/GVNHoist.cpp
+349-2193 files not shown
+354-2209 files

LLVM/project 4d1ebebllvm/include/llvm/Transforms/Scalar GVN.h, llvm/lib/Transforms/Scalar GVN.cpp

[GVN] Reorganise GVN.h/GVH.cpp to improve readability and maintainability (NFC)

Over the years GVN.h/GVN.cpp has grown in size and complexity, and the order of
member functions and definitions has become somewhat arbitrary. This commit
reorganises the code to improve readability and maintainability.

* in `GVNPass` class, put private member variables first, followed by public
  member functions, and then private member functions
* in `GVNPass` class: private type definitions are placed in front of the
  logically related member variables (except `ValueTable` which need to be
  public)
* definitions of `GVNPass::ValueTable` methods are grouped and reordered to
  match the order of their declarations
* The following `GVNPass` member functions were made `private` and `LLVM_API`
  removed: `getDominatorTree`, `getAliasAnalysis`, `getMemDep`,
  `isScalarPREEnabled`, `isLoadPREEnabled`, `isLoadInLoopPREEnabled`,
  `isLoadPRESplitBackedgeEnabled`,  `isMemDepEnabled`,  `isMemorySSAEnabled`,
  and `salvageAndRemoveInstruction`
* `constructSSAForLoadSet` changed to take a `Dominator &`, in order to not

    [12 lines not shown]
DeltaFile
+1,045-1,046llvm/lib/Transforms/Scalar/GVN.cpp
+115-92llvm/include/llvm/Transforms/Scalar/GVN.h
+1,160-1,1382 files

LLVM/project 15ec65aclang/lib/Sema SemaOpenACC.cpp, clang/test/SemaOpenACC compute-construct-reduction-clause.cpp

[OpenACC] Make sure our 'init' recipe handles nullptr_t (#211008)

The bug report shows that we missed one scalar type in our
initialization code, nullptr_t! This patch adds the initializer to make
sure it works correctly, and adds the test (plus a non-template
    version).

Fixes: #210877
DeltaFile
+21-0clang/test/SemaOpenACC/compute-construct-reduction-clause.cpp
+3-0clang/lib/Sema/SemaOpenACC.cpp
+24-02 files

LLVM/project b4ef17bclang/lib/Sema SemaOpenACC.cpp, clang/test/SemaOpenACC loop-construct.cpp

[OpenACC] Better handle error overloaded ops in ForStmtChecker (#211005)

The OpenACC 'loop' constructs do a bunch of checking on the contents of
a ForStmt. However, in cases of overloaded operators, some of the
checking we assumed happened (like operators having a certain number of
    args) doesn't hold in the case of errors.  This patch adds some
guards to make sure we error-out if the number of args doesn't match
what we're expecting everywhere I could find it.

Fixes: #210958
DeltaFile
+15-1clang/lib/Sema/SemaOpenACC.cpp
+15-0clang/test/SemaOpenACC/loop-construct.cpp
+30-12 files

LLVM/project 853ab6emlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp, mlir/test/Dialect/Linalg flatten-elementwise.mlir flatten-unsupported.mlir

[MLIR][Linalg] Fix FlattenElementwiseOp for linalg.broadcast (#210738)

Follow-up of https://github.com/llvm/llvm-project/pull/207005 
The added test 'unsupported_dim_expanding_broadcast' passed with
broadcast-like 'linalg.generic' but failed with a 'linalg.broadcast'.
Generating an incorrect `linalg.collapse_shape` raising error `op number
of elements must be preserved` upon flattening. This patch prevents
broadcasting ops to be targeted by this op while allowing 0-D to N-D
broadcasting to take place as for linalg.fill.

I removed the negative test
`unsupported_rank_expanding_broadcasting_elementwise` as it had been
mentioned in the previous MR that it was repeating the above
`unsupported_broadcasting_elementwise` test.
DeltaFile
+28-0mlir/test/Dialect/Linalg/flatten-elementwise.mlir
+5-11mlir/test/Dialect/Linalg/flatten-unsupported.mlir
+2-2mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+35-133 files

LLVM/project 162d9f0lld/test/wasm relocatable-segment-flags.s, lld/wasm OutputSegment.cpp

[lld][WebAssembly] Preserve segment linking flags in --relocatable output (#210747)

`OutputSegment::addInputSegment` copied each input chunk's alignment but
never its flags, so a relocatable link serialized `flags=0` for every
data segment and dropped `RETAIN` and `STRINGS`. Losing `RETAIN` let the
final default `--gc-sections` link discard runtime-registered sections
such as Swift's `swift5_*` metadata, corrupting the program. This unions
each input segment's flags into the output segment's `linkingFlags` and
adds a `lld/test/wasm` test covering `RETAIN`, `STRINGS`, and flag
accumulation across coalesced segments.

Resolves
https://github.com/swiftlang/swift-package-manager/issues/10314.
DeltaFile
+39-0lld/test/wasm/relocatable-segment-flags.s
+4-0lld/wasm/OutputSegment.cpp
+43-02 files

LLVM/project 5b0ce66flang/test/Driver linker-options.f90

fixup! [Clang] Switch to Default PIE on FreeBSD
DeltaFile
+3-3flang/test/Driver/linker-options.f90
+3-31 files

LLVM/project 2542743clang/test lit.cfg.py

[SystemZ] Enable clang-target-64-bits for s390x (#210361)

Enable clang-target-64-bits for s390x so we can enable tests like
https://github.com/llvm/llvm-project/pull/210341
DeltaFile
+1-1clang/test/lit.cfg.py
+1-11 files

LLVM/project 2f721aellvm/test/CodeGen/AMDGPU load-constant-i1.ll, llvm/test/CodeGen/AMDGPU/GlobalISel llvm.amdgcn.image.atomic.dim.a16.ll llvm.amdgcn.image.gather4.a16.dim.ll

[AMDGPU] Upstream True16 runlines for various tests (#209891)
DeltaFile
+2,559-652llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.a16.ll
+1,270-764llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
+1,253-322llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.a16.dim.ll
+430-320llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.tfe.ll
+402-298llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.tfe.ll
+377-208llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.g16.ll
+6,291-2,56415 files not shown
+7,899-3,24421 files

LLVM/project 4f58fc2clang/include/clang/Basic DiagnosticLexKinds.td, clang/lib/Basic Diagnostic.cpp

[Clang] Yet more consistent Unicode diagnostics (#211002)

This PR
- Use the recently introduced `EscapeSingleCodepointForDiagnostic` in
more places
- Fix a bug where U+FEFF was incorrectly treated as a BOM and therefore
did not render at all in diagnostics
DeltaFile
+25-25clang/test/C/C23/n2836_n2939.c
+18-18clang/test/Lexer/unicode.c
+6-13clang/lib/Lex/Lexer.cpp
+5-5clang/test/Preprocessor/ucn-allowed-chars.c
+5-5clang/include/clang/Basic/DiagnosticLexKinds.td
+5-4clang/lib/Basic/Diagnostic.cpp
+64-7010 files not shown
+83-8616 files

LLVM/project 53199a1libcxx/docs/Status Cxx23Issues.csv, libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance lwg3664.pass.cpp iterator_sentinel.pass.cpp

[libc++][ranges] Mark LWG3664 as resolved (#210550)

Closes https://github.com/llvm/llvm-project/issues/105066.

When libc++ implemented `ranges::distance` in
c965d5448ecdf9a5513983862a78a2ba8f7fbab8, LWG3664 was implemented
together. The patch additionally changed cast result type from `const
decay_t<I>&` to `decay_t<I>`, which partially implemented LWG4242.

Currently, we are using `iter_difference_t<_Ip>` as the return type of
one `operator()` overload while LWG3664 modified that overload to return
`iter_difference_t<decay_t<_Ip>>`. The change is NFC because when
`iter_difference_t<decay_t<_Ip>>` is valid, `iter_difference_t<_Ip>` is
also valid and denotes the same type.

References:
- https://wg21.link/LWG3664
- https://eel.is/c++draft/range.iter.op.distance


    [2 lines not shown]
DeltaFile
+0-73libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/lwg3664.pass.cpp
+40-1libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/iterator_sentinel.pass.cpp
+1-1libcxx/docs/Status/Cxx23Issues.csv
+41-753 files

LLVM/project 34e6a70clang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGen/AArch64 ptrauth-function-attributes-synthetic.c

[clang][AArch64] Set hardening fn attrs on synthetic functions

Compiler-synthesized functions such as `__llvm_gcov_writeout`,
`__llvm_gcov_reset` and `__llvm_gcov_init` were previously never receiving the
AArch64 hardening function attributes (ptrauth-returns, ptrauth-auth-traps,
ptrauth-indirect-gotos and aarch64-jump-table-hardening) since the
attributes were only emitted by Clang and gated by `PointerAuthOptions`
structure's corresponding fields. See `setPointerAuthFnAttributes` and
`initPointerAuthFnAttributes` member functions of `TargetCodeGenInfo`.

This patch resolves this in the same manner as #83153 does for several
other attributes. Particularly, Clang now emits corresponding 4 module
flags (conditionally on whether the related feature is enabled) with Max
behavior, and LLVM's `Function::createWithDefaultAttr` derives the matching
function attributes from them. Max behavior with conditional emission is
safe because none of these features affect ABI, so promoting an absent
flag on module merge cannot break compatibility.
DeltaFile
+41-0clang/test/CodeGen/AArch64/ptrauth-function-attributes-synthetic.c
+21-0clang/lib/CodeGen/CodeGenModule.cpp
+14-0llvm/test/Instrumentation/AddressSanitizer/ptrauth-module-flags-aarch64.ll
+4-0llvm/lib/IR/Function.cpp
+80-04 files

LLVM/project 119b31fllvm/include/llvm/CodeGen SDPatternMatch.h TargetLowering.h, llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[DAGCombiner] Fold NaN-guard fptosi/fptoui select to saturating variant (#201435)

Fold select (setcc X, 0, SETUO), 0, (fp_to_sint/fp_to_uint X) to
fp_to_sint_sat/fp_to_uint_sat in the generic DAG combiner, gated by
shouldConvertFpToSat. Also handles the SETO form with swapped arms, and
looks through an AND mask on the conversion result. Lit tests added for
AMDGPU and AArch64.

Assisted-by: Claude Code
DeltaFile
+212-0llvm/test/CodeGen/AMDGPU/fptoi-nan-guard-fold.ll
+172-0llvm/test/CodeGen/AArch64/fptoi-nan-guard-fold.ll
+57-0llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+11-0llvm/include/llvm/CodeGen/SDPatternMatch.h
+3-2llvm/include/llvm/CodeGen/TargetLowering.h
+455-25 files

LLVM/project 444ea3ellvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp

AMDGPU/GlobalISel: Clean up fp LLT usage in AMDGPULegalizerInfo (#210999)

Remove local variables in favor of global F16/BF16/F32/F64/V2F16/V2BF16.
These are now proper floating point LLTs instead of LLT::scalar.
A couple of legalizer actions now use fp extended LLT for type checks.
This is intended and is planned for all floating point opcodes.
In most cases the current S16/S32/S64 action on floating point opcodes was
intended for F16/F32/F64, and we will need to define an action for BF16.
DeltaFile
+28-71llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+28-711 files

LLVM/project 7b159b6clang/docs ReleaseNotes.md, clang/include/clang/Basic DiagnosticLexKinds.td

[Clang] Defaults `-Wunicode-whitespace` to an error. (#210945)

Clang accepts some Unicode whitespaces in some context. There are a few
issues with this:
 - The support is incomplete and inconsistent, as illustrated in #38934
- We are not consistent with the Unicode specs (tr1, tr55) in that we
treat U+0028/0+0029 as horizontal separators while Unicode consider them
vertical.

Ultimately, Unicode whitespaces are more likely than not unintended.
Neither GCC nor MSVC support this extension.

Fixes #38934.
DeltaFile
+5-0clang/docs/ReleaseNotes.md
+2-2clang/include/clang/Basic/DiagnosticLexKinds.td
+2-2clang/test/Lexer/unicode.c
+2-1clang/lib/Lex/Lexer.cpp
+1-1clang/test/Analysis/mig.mm
+12-65 files

LLVM/project 754c2bcllvm/test/Analysis/ScalarEvolution max-backedge-taken-count-guard-info.ll

[SCEV][NFC] Precommit tests for MatchRangeCheckIdiom through zext (#210978)

'zext(X - 1) ult C'  =>  'X in [1, C+1)'; 
also ugt case (wrapping range)

Alive2 proof: https://alive2.llvm.org/ce/z/zcdv_2
DeltaFile
+149-0llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
+149-01 files

LLVM/project 17ac8fdlibcxx/include/__vector layout.h vector.h, libcxx/test/libcxx/containers/sequences/vector incomplete_type.compile.pass.cpp

[libc++] Don't require complete types in vector<T>::empty() (#210754)

This was previously not required, but the patch to introduce a new
size-based vector layout unintentionally added this new requirement. We
almost certainly not want to promise this guarantee going forward, but
we should actually land this change explicitly and consider the
transition story, not do it as a fallout of another refactoring.

Fixes #210732
DeltaFile
+27-0libcxx/test/libcxx/containers/sequences/vector/incomplete_type.compile.pass.cpp
+11-0libcxx/include/__vector/layout.h
+1-1libcxx/include/__vector/vector.h
+39-13 files

LLVM/project 739b48cclang/test/Driver freebsd.c, flang/test/Driver linker-options.f90 pic-flags.f90

fixup! [Clang] Switch to Default PIE on FreeBSD
DeltaFile
+14-71clang/test/Driver/freebsd.c
+3-11flang/test/Driver/linker-options.f90
+0-1flang/test/Driver/pic-flags.f90
+17-833 files

LLVM/project b02de9dllvm/include/llvm/CodeGen/GlobalISel Utils.h, llvm/lib/CodeGen/GlobalISel Utils.cpp MachineIRBuilder.cpp

[GlobalISel] Use correct fp semantics when building constants. (#210190)

This bug can materialize as a `bfloat 1.0` becoming `0x3C00` which is
the bit pattern for `half 1.0`. After this change, `0x3F80` is correctly
returned.
The fix is to use the destination type to convert the provided
constant's semantics in `buildFConstant`. Added a unit test.
Removed `getAPFloatFromSize`, no more users.
DeltaFile
+18-0llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
+0-13llvm/lib/CodeGen/GlobalISel/Utils.cpp
+5-3llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
+0-3llvm/include/llvm/CodeGen/GlobalISel/Utils.h
+23-194 files

LLVM/project f82f969llvm/include/llvm/MC MCDXContainerWriter.h, llvm/lib/MC MCDXContainerWriter.cpp

[DirectX] Add slim debug support (#204459)

When DXC is called with `/Zs` flag, it emits "slim" debug info. It means
that ILDB section is omitted from the main DXContainer output and from
the output PDB file.

This patch reimplements similar behavior in llc, introducing
`--dx-slim-debug` flag.
DeltaFile
+20-0llvm/test/CodeGen/DirectX/ContainerData/ContainerFlags.ll
+12-0llvm/lib/MC/MCDXContainerWriter.cpp
+5-2llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
+1-5llvm/include/llvm/MC/MCDXContainerWriter.h
+38-74 files

LLVM/project e5a5c5dflang/lib/Semantics check-omp-variant.cpp check-omp-structure.h, flang/test/Semantics/OpenMP declare-variant-restriction.f90

[flang][OpenMP] Add semantic checks for two DECLARE VARIANT restrictions (#209528)

Diagnose two DECLARE VARIANT restrictions from the OpenMP specification
(5.2 [7.5], 6.0 [9.6]) that were previously accepted without error:
- If a procedure is determined to be a function variant through more
than one DECLARE VARIANT directive, the construct selector set of their
context selectors must be the same.
- A procedure determined to be a function variant may not be specified
as a base function in another DECLARE VARIANT directive.

Assisted-by: Cursor
DeltaFile
+184-0flang/test/Semantics/OpenMP/declare-variant-restriction.f90
+135-16flang/lib/Semantics/check-omp-variant.cpp
+12-0flang/lib/Semantics/check-omp-structure.h
+331-163 files