LLVM/project e8ff1d1flang/test/Fir atomic-compare-capture.fir, flang/test/Integration/OpenMP atomic-compare-capture.f90

[flang][OpenMP] Support for "atomic compare capture" (#202315)

Adding support for "!$omp atomic compare capture".

This also Fixes [#202311](https://github.com/llvm/llvm-project/issues/202311)

Co-authored-by: Sunil Kuravinakop <koops at hpe.com>
DeltaFile
+678-182mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+492-0mlir/test/Target/LLVMIR/openmp-atomic-compare-capture.mlir
+449-0flang/test/Integration/OpenMP/atomic-compare-capture.f90
+426-8flang/test/Lower/OpenMP/atomic-compare.f90
+386-0flang/test/Lower/OpenMP/atomic-compare-capture.f90
+343-0flang/test/Fir/atomic-compare-capture.fir
+2,774-19014 files not shown
+3,749-31120 files

LLVM/project 31cfad3

Fix Bazel build for cb72195 (#216144)

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=cb721957e5e78875ea1d96dc53d46353e7b98d23

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+0-00 files

LLVM/project 1caeb26clang/docs ItaniumMangleAbiTags.md HardwareAssistedAddressSanitizerDesign.md, clang/docs/CIR ABILowering.md

[clang][docs] Fix Markdown code fence languages

Use more precise lexer names for code fences in the Clang Markdown migration:
HLSL examples use hlsl, Itanium ABI grammar uses bnf, CIR snippets that are
valid MLIR use mlir, and HWASAN assembly-style listings use objdump.

Keep plain text fences for bytecode dumps, AST dumps, diagrams, pseudocode, and
CIR snippets that contain placeholders rejected by the MLIR lexer.
DeltaFile
+9-9clang/docs/HLSL/FunctionCalls.md
+2-3clang/docs/HLSL/ExpectedDifferences.md
+2-3clang/docs/HLSL/AvailabilityDiagnostics.md
+2-2clang/docs/ItaniumMangleAbiTags.md
+2-2clang/docs/HardwareAssistedAddressSanitizerDesign.md
+2-2clang/docs/CIR/ABILowering.md
+19-216 files

LLVM/project 98d84e3llvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel mul-known-bits.i128.ll

[AMDGPU][GlobalISel] Fix wide multiply with known-zero parts (#215356)

Materialize a zero accumulator when all partial products for a
destination part are skipped, avoiding an invalid null register during
legalization.
DeltaFile
+49-0llvm/test/CodeGen/AMDGPU/GlobalISel/mul-known-bits.i128.ll
+11-0llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+60-02 files

LLVM/project 199678bopenmp/runtime/src ompt-event-specific.h

[OpenMP][OMPT] Mark dispatch callback as sometimes on registration (#212991)

Recently, multiple issues in the implementation of the `dispatch`
callback have been found (e.g., #212784, #207746). In these, the code
generation done by Clang and Flang does not provide a sufficient amount
of information for the runtime to dispatch the correct amount of flags,
or a callback for a given event at all.

These missing and incorrect events do not satisfy OpenMP's requirement
for `ompt_set_always` as a registration result, as the runtime does not
trace or invoke the correct callback whenever an associated event occurs
(OpenMP v5.2, p. 457, l.5-6).
As such, change the registration result for the `dispatch` callback to
`ompt_set_sometimes` for now, which is fulfilled. Here, an
implementation can dispatch callbacks or trace an implementation-defined
subset of associated event occurrences.

Based on the changed registration result, a tool can then decide if they
are still interested in recording the information provided by the

    [2 lines not shown]
DeltaFile
+1-1openmp/runtime/src/ompt-event-specific.h
+1-11 files

LLVM/project d4430eaclang/include/clang/Options Options.td, clang/lib/Driver/ToolChains Clang.cpp

address comments
DeltaFile
+3-3clang/include/clang/Options/Options.td
+1-1clang/lib/Driver/ToolChains/Clang.cpp
+4-42 files

LLVM/project ad14857clang/docs LanguageExtensions.md, clang/include/clang/Options Options.td

Enable driver changes for fexec-charset
DeltaFile
+14-6clang/lib/Driver/ToolChains/Clang.cpp
+14-4clang/include/clang/Options/Options.td
+11-3clang/test/Driver/clang_f_opts.c
+10-0llvm/lib/Support/TextEncoding.cpp
+4-3clang/test/Driver/cl-options.c
+3-3clang/docs/LanguageExtensions.md
+56-193 files not shown
+60-199 files

LLVM/project 0d6d014clang/include/clang/Basic TargetInfo.h, clang/lib/AST ASTContext.cpp

convert to exec-charset inside getPredefinedStringLiteralFromCache, test __builtin_FILE()
DeltaFile
+10-0clang/lib/AST/ASTContext.cpp
+4-1clang/test/CodeGen/systemz-charset.cpp
+2-1clang/lib/Lex/TextEncoding.cpp
+3-0clang/lib/Basic/TargetInfo.cpp
+2-0clang/include/clang/Basic/TargetInfo.h
+21-25 files

LLVM/project 85b44f4clang/lib/AST ASTContext.cpp, clang/lib/Lex TextEncoding.cpp

Convert the key before cache lookup to prevent encoding differences
DeltaFile
+9-9clang/lib/AST/ASTContext.cpp
+1-1clang/lib/Lex/TextEncoding.cpp
+10-102 files

LLVM/project 5029241clang/lib/Sema SemaStmtAsm.cpp, llvm/include/llvm/Support TextEncoding.h

Add isNoop to avoid conversion code in ActOnGCCAsmStmtString
DeltaFile
+7-0llvm/include/llvm/Support/TextEncoding.h
+2-1clang/lib/Sema/SemaStmtAsm.cpp
+2-0llvm/lib/Support/TextEncoding.cpp
+11-13 files

LLVM/project 4f4a268llvm/test/Analysis/LoopAccessAnalysis symbolic-stride.ll, llvm/test/Transforms/LoopVectorize version-stride-with-integer-casts.ll

[LAA] Add more tests with symblic strides with different scales (NFC) (#216128)

Add more test coverage for various cases with strides with different
scales.
DeltaFile
+272-163llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
+263-0llvm/test/Analysis/LoopAccessAnalysis/symbolic-stride.ll
+535-1632 files

LLVM/project 002bb95clang/lib/AST FormatString.cpp ScanfFormatString.cpp

change char literals to u8'' to preserve behaviour in the case the
compiler is compiled with a different fexec-charset
DeltaFile
+44-44clang/lib/AST/PrintfFormatString.cpp
+28-28clang/lib/AST/ScanfFormatString.cpp
+28-27clang/lib/AST/FormatString.cpp
+100-993 files

LLVM/project 6c91cadclang/lib/AST ScanfFormatString.cpp PrintfFormatString.cpp, llvm/include/llvm/Support TextEncoding.h

rename char conversion function to convertBasicChar
DeltaFile
+18-17clang/lib/AST/FormatString.cpp
+12-12clang/lib/AST/PrintfFormatString.cpp
+3-5clang/lib/AST/ScanfFormatString.cpp
+3-1llvm/include/llvm/Support/TextEncoding.h
+36-354 files

LLVM/project 71ce0bfclang/include/clang/AST FormatString.h, clang/lib/AST ScanfFormatString.cpp FormatStringParsing.h

do not convert character by character
DeltaFile
+34-31clang/lib/AST/FormatString.cpp
+29-26clang/lib/AST/PrintfFormatString.cpp
+28-26clang/lib/AST/FormatStringParsing.h
+17-15clang/lib/Sema/SemaChecking.cpp
+11-11clang/lib/AST/ScanfFormatString.cpp
+2-2clang/include/clang/AST/FormatString.h
+121-1111 files not shown
+122-1127 files

LLVM/project 51a95a8clang/lib/AST ScanfFormatString.cpp FormatStringParsing.h, clang/lib/Sema SemaChecking.cpp

Add format string handling
DeltaFile
+58-31clang/lib/AST/PrintfFormatString.cpp
+46-40clang/lib/AST/FormatString.cpp
+33-21clang/lib/Sema/SemaChecking.cpp
+25-11clang/lib/AST/FormatStringParsing.h
+15-8clang/lib/AST/ScanfFormatString.cpp
+19-0llvm/lib/Support/TextEncoding.cpp
+196-1113 files not shown
+215-1179 files

LLVM/project 509257dclang/include/clang/Sema Sema.h, clang/lib/Parse Parser.cpp

constexpr in asm strings will be in fexec-charset, do not do backwards conversion for those strings
DeltaFile
+24-0clang/test/CodeGen/systemz-charset.cpp
+5-2clang/lib/Sema/SemaStmtAsm.cpp
+4-1clang/lib/Parse/Parser.cpp
+2-1clang/include/clang/Sema/Sema.h
+35-44 files

LLVM/project dabc383openmp/runtime/src/include omp.h.var omp-tools.h.var

[OpenMP][OMPT] Make omp_control_tool enums available in omp-tools.h (#216076)

OpenMP 6.1 will introduce this change: the enums must be available by
including either header file, but including both must also be valid.
DeltaFile
+18-0openmp/runtime/src/include/omp-tools.h.var
+4-0openmp/runtime/src/include/omp.h.var
+22-02 files

LLVM/project 47f7a59clang/include/clang/AST Decl.h, clang/include/clang/Sema Sema.h

[clang] Move DefaultedFunctionKind from Sema to AST (#214846)

I plan on using this to implement DW_AT_defaulted in CGDebugInfo.
Putting this on FunctionDecl itself seems like a better move than
reaching into Sema from CGDebugInfo.

See: https://github.com/llvm/llvm-project/pull/213188
DeltaFile
+0-94clang/include/clang/Sema/Sema.h
+90-0clang/include/clang/AST/Decl.h
+16-70clang/lib/Sema/SemaDeclCXX.cpp
+55-0clang/lib/AST/Decl.cpp
+4-3clang/lib/Sema/SemaAccess.cpp
+3-2clang/lib/Sema/SemaTemplateInstantiate.cpp
+168-1698 files not shown
+181-17714 files

LLVM/project df7a7ee.github/workflows libcxx-benchmark-cron.yml

[libc++] Cache anchor commits in the benchmark cron (#216124)

Selecting the anchor commits is the only step that needs a full monorepo
clone, so we instead cache it and recompute it once per day.

Fixes #215447
DeltaFile
+40-6.github/workflows/libcxx-benchmark-cron.yml
+40-61 files

LLVM/project dbac582lldb/packages/Python/lldbsuite/test/make Makefile.rules

[LLDB] Fix tool dependency tracking on windows (#215927)

On Windows $(CXX) is converted into "$(CXX)" which doesn't work as a
path as needed by dependency tracking. Separate the two uses.
DeltaFile
+6-3lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+6-31 files

LLVM/project 03e81ealldb/include/lldb/Expression IRExecutionUnit.h ObjectFileJIT.h, lldb/source/Expression ObjectFileJIT.cpp

[LLDB] Add a GetTargetSP() accessor to ObjectFileJITDelegate. (NFC) (#215893)

This is needed to implement the Swift REPL and potentially generally
useful to other expression evaluators.
DeltaFile
+7-0lldb/include/lldb/Expression/ObjectFileJIT.h
+6-0lldb/source/Expression/ObjectFileJIT.cpp
+2-0lldb/include/lldb/Expression/IRExecutionUnit.h
+15-03 files

LLVM/project bb123b2clang/lib/Frontend SerializedDiagnosticPrinter.cpp, clang/test/Misc serialized-diags-large-fixit.m

[Clang][Frontend] Fix fix-it size overflow in emitted .dia (#216075)

When fix-its are emitted into a .dia, we previously stored the fix-it
text in a blob of arbitrary size, but the size of the text was stored in
a separate 16 bit field. For really large fix-its, the size won't fit it
those 16 bits, and the compiler crashes.

Switch to a variable length encoding of the fit-it size. This is similar
to this issue:
https://github.com/llvm/llvm-project/commit/e26aea5b290165f3bccffab662a706d4a56f7540

We also remove a hard coded check in the clang library used to load .dia
files that failed for fix-its whose size doesn't fit in 16 bits.

Generated with codex

Co-authored-by: Nuri Amari <nuriamari at fb.com>
DeltaFile
+45-0clang/test/Misc/serialized-diags-large-fixit.m
+0-3clang/tools/libclang/CXLoadedDiagnostic.cpp
+1-1clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
+46-43 files

LLVM/project 84f08dbllvm/lib/CodeGen/GlobalISel CMakeLists.txt

GlobalISel: Fix missing dependency on TargetParser (#216122)
DeltaFile
+1-0llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
+1-01 files

LLVM/project 715b0c4llvm/tools/lli lli.cpp

lli: Record the host triple on triple-less modules

The JIT compiles for the host, but modules without a target triple kept
an empty triple, which module-triple-based analyses (e.g. runtime
libcall selection) cannot resolve. Set the resolved JIT triple on the
module. This defends against jit test regressions when RuntimeLibraryInfo
starts getting computed from the module instead of TargetOptions.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+14-1llvm/tools/lli/lli.cpp
+14-11 files

LLVM/project 33237f7clang/lib/CodeGen BackendUtil.cpp, llvm/include/llvm/Analysis RuntimeLibcallInfo.h

CodeGen: Remove TargetOptions::FloatABIType

This is now fully replaced with the "float-abi" module flag.
If the module flag is not present, the default is computed
from the triple. Consumers are updated to read the module flag.

RuntimeLibraryAnalysis now defers analysis until run() on a Module,
instead of during the pass constructor as before. This requires copying
all of the remaining relevant TargetOptions so they are available
when the module is seen.

Unfortunately, ARM still depends on TargetOptions for determining
the float-abi. -target-abi=aapcs16 still changes the default float-abi,
but an explicit module flag wins.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+45-0llvm/test/LTO/ARM/float-abi-module-flag.ll
+19-17llvm/include/llvm/Analysis/RuntimeLibcallInfo.h
+15-20llvm/lib/Target/ARM/ARMTargetMachine.cpp
+28-0llvm/test/Transforms/Util/DeclareRuntimeLibcalls/float-abi-module-flag.ll
+5-18llvm/lib/Analysis/RuntimeLibcallInfo.cpp
+3-14clang/lib/CodeGen/BackendUtil.cpp
+115-6923 files not shown
+174-12629 files

LLVM/project b85730bllvm/lib/CodeGen CommandFlags.cpp, llvm/test/CodeGen/ARM float-abi-synthesize-flag.ll

CodeGen: Synthesize "float-abi" module flag from -float-abi

Avoid annoying test updates when the corresponding TargetOptions
field is removed. Make the -float-abi llc/opt option a lit test
convenience that records the floating-point ABI in the IR,
mirroring how -mcpu/-mattr are recorded as function attributes.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+32-0llvm/test/CodeGen/ARM/float-abi-synthesize-flag.ll
+11-1llvm/lib/CodeGen/CommandFlags.cpp
+43-12 files

LLVM/project 3e17662llvm/lib/CodeGen CommandFlags.cpp, llvm/test/CodeGen/ARM float-abi-module-flag.ll float-abi-synthesize-flag.ll

Error on -float-abi conflicting with the "float-abi" module flag
DeltaFile
+17-5llvm/lib/CodeGen/CommandFlags.cpp
+5-3llvm/test/CodeGen/ARM/float-abi-module-flag.ll
+6-2llvm/test/CodeGen/ARM/float-abi-synthesize-flag.ll
+3-2llvm/test/CodeGen/CSKY/float-abi-module-flag.ll
+31-124 files

LLVM/project 00fb3f7llvm/lib/CodeGen CommandFlags.cpp

Remove opt description change
DeltaFile
+1-3llvm/lib/CodeGen/CommandFlags.cpp
+1-31 files

LLVM/project 94e2d3dllvm/test/CodeGen/AMDGPU/GlobalISel mul-known-bits.i128.ll

Apply suggestion from @chinmaydd
DeltaFile
+1-1llvm/test/CodeGen/AMDGPU/GlobalISel/mul-known-bits.i128.ll
+1-11 files

LLVM/project 5e4d13eclang/docs InternalsManual.md CMakeLists.txt, clang/include/clang/Basic AttrDocs.td

[clang][docs] Migrate AttributeReference to markdown (#215631)

Tracking issue: #201242

This change is a one-off using a different methodology, described here.

AttributeReference.rst is generated, not checked in, so there's no
separate rename PR. The reST markup lives in AttrDocs.td, which is
essentially a tablegen wrapper that we can "join" with Attr.td to
produce complete reference. I can't simply stream AttrDocs.td through
rst2myst to migrate it.

Instead, my agent used Python regexes to match `let Content = [{` and
similar blocks (`code Intro = [{`) through to the closing delimiters
(`}];`). The one-off script imported the `rst_to_myst` module and called
the `rst_to_myst` library function on the inner reST body text. It then
built up a list of alternating fragments of tablegen and markdown
strings that were concatenated to produce the new contents of
AttrDocs.td.

    [25 lines not shown]
DeltaFile
+4,235-4,283clang/include/clang/Basic/AttrDocs.td
+21-14clang/utils/TableGen/ClangAttrEmitter.cpp
+8-0clang/docs/LanguageExtensions.md
+2-2clang/docs/InternalsManual.md
+2-2clang/docs/CMakeLists.txt
+1-1llvm/docs/TableGen/BackEnds.rst
+4,269-4,3026 files