[NVPTX] Add lowering for v2i32/v2f16/v2f32 scalar_to_vector operations (#175712)
#153478 revealed additional cases where these scalar_to_vector
operations can appear at the lowering stage. Generally the DAGCombiner
transforms these to something else. Without it running however these can
directly manifest (hence the unit test disabling DAGCombine for
simplicity) but we can map them directly to real instructions so add the
proper lowering.
libc: print extended errors from warn(3) and vwarn(3)
Noted and reviewed by: mckusick
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D55327
[Offload] Add argument to 'olInit' for global configuration options (#181872)
Summary:
This PR adds a pointer argument to the initialization routine to be used
for global options. Right now this is used to allow the user to
constrain which backends they wish to use.
If a null argument is passed, the same behavior as before is observed.
This is epxected to be extensible by forcing the user to encode the size
of the struct. So, old executables will encode which fields they have
access to.
We use a macro helper to get this struct rather than a runtime call so
that the current state of the size is baked into the executable rather
than something looked up by the runtime. Otherwise it would just return
the size that the (potentially newer) runtime would see
[Hexagon] Support partial reduction intrinsics (#179797)
This commit has changes necessary for using vrmpy instructions in full and partial multiply/add reductions on extended arguments. There are three main parts:
- partial reduction operations PARTIAL_REDUCE_(U|S|SU)MLA are lowered to accumulating vrmpy, including native and multiples of native vector sizes;
- full and partial reductions can be "split" into an inner partial reduction and a residual full or partial reduction. The inner reduction will be lowered to vrmpy due to the first change;
- vecreduce_add expansion is moved to Hexagon backend from a generic pass, accompanied by a set of tests.
In addition, there is a minor cleanup in HexagonTargetLowering::PerformDAGCombine().
[lld][WebAssembly] clang-format lld/wasm files. NFC (#181871)
This was originally done back in 2018 in 4821ebf73, and things seem to
have strayed a little since then.
I noticed this while reviewing #175800.
[modules] Fix warning: missing submodule 'LLVM_IR.FunctionProperties'
When compiling LLVM with LLVM_ENABLE_MODULES=ON, I get the warning
```
warning: missing submodule 'LLVM_IR.FunctionProperties' [-Wincomplete-umbrella]
```
Fix is to add file `FunctionProperties.def` to the module map.
[clang][ssaf] Implement TUSummaryBuilder with test infrastructure (#181220)
Also adds a ssaf::TestFixture to provide access to the private fields of
the SSAF object for introspection.
Assisted-By: claude
rdar://168773578
[clang][ssaf] Fix UB caused by missing virtual dtor of FormatInfoEntry (#181838)
In the `llvm::Registry` the `Add` will create a `unique_ptr` of the
desired derived type on the heap; then it puts it into the linked list
of base pointers.
Consequently, when destructing the registry, it needs to call the
matching dtor for the object, so that must be virtual.
In this patch, I fix it by marking it virtual, and also put a static
assert to prevent future mistakes of this kind.
FYI: The static assert must be in dependent context to ensure that `T`
is complete by the time hitting the static assert.
Fixes https://github.com/Quuxplusone/llvm-project/issues/51