InstCombine: Consider not-inf/nan context when simplifying fmul
Consider if the result can be nan, or if the inputs cannot
be infinity from the flag when trying to simplify fmul into
copysign.
[mlir][py] ability to downcast AffineExpr after #172892
AffineExpr is a separate hierarchy of LLVM-style nested classes that doesn't
rely on TypeID and is not extensible. We need the ability to downcast the
Python equivalent of those to a specific subclass that was seemingly lost in
PR #172892. Bring it back by having an explicit cast. We don't really need
user-defined type casters here since AffineExpr is entirely closed and not
typed, unlike values.
[mlir][OpenMP] Lower device clause for target data/enter/exit/update (#174665)
Extend OpenMP device clause lowering for target data, target enter data,
target exit data, and target update to accept non-constant values.
Previously, only constant device IDs could be lowered to LLVM IR.
Add Flang tests to validate device clause handling and mark the feature
as supported in the OpenMPSupport documentation. New tests cover:
- target teams
- target teams distribute
- target teams distribute parallel do
- target teams distribute parallel do simd
- target data
Tests for target update and target enter/exit were
already present in Flang.
[libc++] Refactor poll_with_backoff (#173184)
This patch gets rid of bool result values which were confusing, and
instead replaces them with enum class values describing the meaning of
each return value.
bhyve: improve console error reporting on arm64
Currently, on arm64, if bhyve fails to initialize the console,
it falls into assert(), which does not look particularly pretty
for users.
Replace the assert with proper error handling so bhyve prints
a meaningful error message and exits with status code 4 (error).
That matches the behavior on amd64.
Approved by: markj
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D54504
NAS-139203 / 26.04 / Disable SMB3 unix extensions by default (#17971)
This commit disables the SMB3 unix extensions by default. They will be
exposed as a configurable option in a future PR.
[SPIRV] Add legalization pass for zero-size arrays (#172367)
This adds a legalization pass to convert zero size arrays to legal types
for common cases. It doesn't handle all cases, but if we see real use
cases for other cases, we can add them in the future.
For globals, and their initializers, we generally replace `[0 x T]` with
`ptr`.
For instructions, we either replace `[0 x T]` with `poision`, for
`alloca` we just allocate `T`.
This is motivated by IR generated by the OpenMP front end.
Issue: https://github.com/llvm/llvm-project/issues/170150
---------
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
[HLSL][Matrix] Implement dynamic single subscript swizzle (#173201)
fixes #170777
If we don't use vector type and instead continue to pass on the matrix
type when we enter `EmitExtVectorElementExpr` Then we don't need to
store the row and column length on the LValue.
Using the Matrix type means we can reuse the isMatrixRow() cases in
EmitLoadOfLValue and EmitStoreThroughLValue and not have to support a
new lValue that is a hybrid between the ExtVectorElt and MatrixRow
cases.
All we need to do to support this is pass the list of column indices as
a `ConstantDataVector` and check the size of this Vector to know how
many column iterations we need to do. Further just index into the vector
to fetch the right encoded element index value.
[mlir][spirv][nfc] Escape < and > with ` in description and summary (#174786)
Not escaping < and > was causing the text not to get displayed in the
documentation.
[DirectX] Account for GlobalOffset in CurrentIndex calculation for cbuffer loads with GEPs in DXILResourceAccess pass (#174666)
Fixes #174656
---------
Co-authored-by: Alex Sepkowski <alexsepkowski at gmail.com>
update to wget2-2.2.1
there is an ABI break (major shlib bump), but as nothing depends on the
library in ports, let's just roll with it as suggested by jca.
Revert "[C++20][Modules] Improve namespace look-up performance for modules. (#171769)" (#174783)
This reverts commit 1928c1ea9b57e9c44325d436bc7bb2f4585031f3.
We have at least one repro, but I won't be able to work on this until
next week. Also with Clang 22 cut upcoming, we probably need to revert
for now.
[ByteCode] InterpBuiltin.cpp - consistently use castAs<> if dereferencing the result (#174781)
castAs<> will at least assert the cast is valid while getAs<> will always just return nullptr and then explode