[clang][analyzer] Test cases for CTU import failures
Add tests for all kinds of CTU import failures expressed in the
`cross_tu::index_error_code` enumeration. Many of the test cases have no
diagnostics, because the respective errors are silently ignored in
`CrossTranslationUnitContext::emitCrossTUDiagnostics`.
I expect to improve this part, and these tests should demonstrate how
the improvements manifest to the user.
--
CPP-7804
[DAGCombine] Enable div by constant optimization for odd sized vectors before type legalization. (#188313)
If we we are going to legalize to a vector with the same element type
and mulh or mul_lohi are supported, allow the optimization before type
legalization.
RISC-V will widen vectors using vp.udiv/sdiv that doesn't support
division by constant optimization. In addition, type legalization will create
a build_vector with undef elements making it hard to match after type
legalization.
Other targets may need to widen by a combination of vector and scalar
divisions to avoid traps if we widen a vector with garbage.
I had to enable the MULHU->SRL DAG combine before type legalization to
prevent regressions. After type legalization, the multiply constant
build_vector will have undef elements and the combine won't trigger.
[cross-project-tests] Mark expect_step_kind/direction.cpp as UNSUPPORTED
The test was failing on one Linux bot but XPASSing on another.
To unblock PR CI I'm going to skip it for now until we figure out what's going on.
[SPIR-V] Update tests for opaque pointer migration (#187674)
Enable tests `linked-list.ll`, `pstruct.ll`, and
`extract_insert_value.ll` where additional code changes are not required
related to #60133
[MLIR][Python] Support `has_trait` for operations (#188492)
This PR adds a `has_trait(trait_cls)` API to `_OperationBase`, that can
be used for:
- C++-defined operations and C++-defined traits (e.g.
`func_return_op.has_trait(IsTerminatorTrait)`)
- Python-defined operations and C++-defined traits (e.g.
`my_python_op.has_trait(IsTerminatorTrait)`)
- Python-defined operations and Python-defined traits (e.g.
`my_python_op.has_trait(MyPythonTrait)`)
---------
Co-authored-by: Maksim Levental <maksim.levental at gmail.com>
[lit] Explicitly unset timer to free thread stack (#188717)
Currently the virtual address space usage of lit fluctuates wildly, with
peak usage exceeding 4GB, which results in subsequent thread spawning
errors on 32-bit systems.
The cause of this is a circular reference in TimeoutHelper._timer (via the
callback), which causes the 8MB thread stack to not be immediately
reclaimed when the timer is cancelled.
We can avoid this by explicitly unsetting the timer.
sys: vt_efifb: EFI not supported on i386; move it back to amd64/NOTES
We do not support EFI boot on i386. Thus:
1. Move (back) 'device vt_efifb' from x86/NOTES to amd64/NOTES.
2. Remove 'device vt_efifb' from i386/MINIMAL.
Reported by: jhb
Fixes: f224591746bd ("Add ASMC_DEBUG make option")
Fixes: 67599eef01f5 ("sys/x86/NOTES: Add vt_efifb")
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 9c25620e57f01d8227f0d53c6b2134ab37a49fdf)
[DA] Fix -Wunused-variable
A couple of these variables are only used within LLVM_DEBUG statements
which get removed by the preprocessor in non-assertions builds which
will cause the variable to become unused. Mark them maybe_unused given
the names make the code more readable.
[flang][OpenMP] Support user-defined declare reduction with derived types (#184897)
Fix lowering of `!$omp declare reduction` for intrinsic operators
applied
to user-defined derived types (e.g., `+` on `type(t)`). Previously, this
hit a TODO in `ReductionProcessor::getReductionInitValue` because the
code
tried to compute an init value for a non-predefined type, when it should
instead use the initializer region from the `DeclareReductionOp`.
This fixes the issue #176278: [Flang][OpenMP] Compilation error when
type-list in declare reduction directive is derived type name.
The root cause was a naming mismatch: `genOMP` for
`OpenMPDeclareReductionConstruct` used a raw operator string (e.g.,
"Add")
as the reduction name, while `processReductionArguments` at the use site
computed a canonical name via `getReductionName` (e.g.,
"add_reduction_byref_rec__QFTt"). The `lookupSymbol` in
[83 lines not shown]
graphics/converseen: Update to 0.15.2.2
ChangeLog: https://converseen.fasterland.net/
* Fixed a potential bug with the settings directory
* Updated Chinese translation
* Various Bugfixes
Fix a fatal firmware error during association on non-MIMO iwx(4) devices.
If MIMO is disabled we must not try to configure Tx rates in firmware
which require MIMO. Otherwise we trigger sysassert 0x20101A0D.
Problem reported and fix tested by Kirill Kaplin.
Meaning of sysassert hex code provided by Johannes Berg, thanks!
Improvements to cost-model
The chosen costs are more precise as it tries to better use the target-features to determine if something can be expanded.
The costs in sdot-i16-i32 are now more accurate and the loops that didn't vectorise before result in equivalent or better codegen.
Various changes to the cost-model.
This has a number of changes to the partial reduction cost-model:
* Implement the fact that *MLALB/T instructions can be used for
16-bit -> 32-bit partial reductions (or *MLAL/MLAL2 for NEON).
* Fixes the cost of reductions that don't have specific lowering,
rather than returning a random number, we now return the cost of
expanding the partial reduction in ISel.
For sub-reductions we scale the cost to make them slightly cheaper,
so that they're still candidates for forming cdot operations.
* Reduce the cost of FP reductions, which are currently prohibitively
expensive.