Document that the swiftcall and swiftasynccall attributes are ABI-unstable (#215915)
...except on platforms where the Swift projects has declared ABI
stability.
[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>
[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.
[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.
[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]
[LAA] Add more tests with symblic strides with different scales (NFC) (#216128)
Add more test coverage for various cases with strides with different
scales.
[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.
[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
[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
[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.
[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.
[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>
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>
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>
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>