[flang][docs] Documented `c_float128` and `c_float128_complex` extension (#201614)
flang has supported this for a long time, but it wasn't documented as an
extension
[CIR] Separate floating-point bin ops from integer bin ops (#201462)
This change creates new FP-specific binary operations and updates the
existing binary operations that previously accepted any arithmetic type
to only allow integer and vector-of-integer types.
This change is being done to prepare for extended floating-point
handling such as strict FP semantics and fast-math handling. It also
simplifies the handling of integer overflow flags.
Assisted-by: Cursor / claude-opus-4.8
[bazel] Bump versions of BCR deps + bazel 8.6->8.7 (#201613)
After merging #197316, I noticed a warning about a `rules_cc` version
mismatch (`--check_direct_dependencies=off`). Might as well bump all the
versions since we haven't done that in a while.
This doesn't bump the bazel version to 9 yet, but we could try that
next. Just bumping 8.6 -> 8.7 to keep things fresh but at the same
compatibility level.
[lldb] Build liblldb exports from script-interpreter imports (#201392)
With LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS, the script interpreter
plugins are built as standalone shared libraries that resolve their
lldb_private/llvm references through liblldb's re-exports. liblldb was
falling back to liblldb-private.exports, which allowlists the
lldb_private/llvm namespaces wholesale.
Generate the export list per build instead. For each plugin, run llvm-nm
on its compiled objects, keep undefined references in namespaces liblldb
owns, subtract the plugin's own definitions, and concatenate the
per-plugin lists with liblldb.exports.
The plugin's SHARED target LINK_LIBS liblldb, which makes the plugin's
compile order depend on liblldb. Wiring the exports file in via
add_llvm_symbol_exports' built-in target dependency would form a cycle
through that order-only edge. Add NO_TARGET_DEPENDENCY to
add_llvm_symbol_exports so we can apply the file via LINK_DEPENDS alone;
that still triggers a relink when the symbol set changes, without
[5 lines not shown]
unit: update docs for new coverage report options
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18619
[clang][OpenMP] Improve loop structure for distributed loops
This is a part of a series of patches that rework OpenMP cross-team
reductions.
This patches wires the existing
`kmp_sched_distr_static_chunk_sched_static_chunkone` to be used by
CodeGen.
Example of the intended change of this patch:
```
target teams distribute parallel for reduction(+:s)
for (i = 0; i < N; i++) s += a[i];
```
Before:
```
__kmpc_distribute_static_init(91)
for (team_lb = team*nthreads; team_lb < N; team_lb += nteams*nthreads) {
[67 lines not shown]
18124 want test case for dladm create-vnic
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
[clang] fix getTemplateInstantiationArgs
This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the template
context of out-of-line definitions.
This greatly simplifies the signature of that function, by removing a bunch
of workarounds, and simpliffying a couple that weren't removed yet.
Since this now relies on qualifiers and template parameter lists,
this patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.
Also makes the explicit specialization AST nodes stop abusing the template
parameter lists by storing it's own template parameter list, creating a
dedicated field for them, similar to partial specializations.
unit: support text & HTML targets; improve coverage rules
The main change is switching `unit-coverage` to run
scripts/coverage_report.pl, to get nice coverage summary output on the
commandline. The previous behaviour moves to `unit-coverage-html`.
Calls to lcov and genhtml are now silencing more warnings, and the
output file now gets branch coverage as well.
This should be compatible with both lcov 1.x and 2.x. It takes advantage
of the fact that 1.x is far more forgiving of both options it doesn't
understand, and of various kinds of "inconsistency" in the input data.
The rest is both simplifying and improving the rules. We keep the
coverage output around now, but still rebuild it if the binary changes.
The `clean` target now removes the coverage output too. And we use the
target name more often for building path names, as its far less noisy.
Sponsored-by: TrueNAS
[3 lines not shown]
[ExpandVariadics] Expand vaarg instructions (#201156)
Expand vaarg instructions within ExpandVariadics (Clang generally does
not emit these instructions but other front-ends may). This pass already
has all the necessary information to expand these instructions and doing
this in IR as part of this pass is simpler than lowering these
instructions during ISel after type legalization. This fixed a
type-mismatch bug in NVPTX.
coverage_report: produce nice text reports from lcov/geninfo tracefiles
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18619