[VPlan] Add specialized VPValue subclasses for different types (NFC) (#172758)
This patch adds VPValue sub-classes for the different cases we currently
have:
* VPIRValue: A live-in VPValue that wraps an underlying IR value
* VPSymbolicValue: A symbolic VPValue not tied to an underlying value,
e.g. the vector trip count or VF VPValues
* VPRecipeValue: A VPValue defined by a VPDef/VPRecipeBase.
This has multiple benefits:
* clearer constructors for each kind of VPValue
* limited scope: for example allows moving VPDef member to VPRecipeValue,
reducing size of other VPValues.
* stricter type checking for member variables (e.g. using VPLiveIn in
the Value -> live-in map in VPlan, or using VPSymbolicValue for symbolic
member VPValues)
There probably are additional opportunities for cleanups as follow-ups.
PR: https://github.com/llvm/llvm-project/pull/172758
[LV] Add tests for argmin/argmax with epilogue vectorization. (NFC)
Add additional test coverage for vectorizing argmin/argmax with epilogue
vectorization.
nuclei: Update to 3.6.2
Changes:
v3.6.2
* Enabled TLS session caching in the client pool to improve connection
reuse and reduce handshake overhead (internal)
* Added support for providing a custom Jira server URL (`site-url`)
when using OAuth authentication
* Bug fixes
* Performance improvements
v3.6.1
* Bug fixes
gh: Update to 2.83.2
Changes:
GitHub CLI 2.83.2
* Isolate user-provided search query from contextual qualifiers
* Refactor cfg out of CAPI Client
* Remove extra flag default from help usage
* Add PGP key rotation PoC
* Add Debian/Ubuntu to unofficial packages
* Error if go-licenses is not on the PATH
* refactor: drop multierror in favor of std
GitHub CLI 2.83.1
* `gh pr edit`: Ensure empty arrays for reviewers in PR API calls
* Integrate license checks back into lint workflow
* Update third-party licenses and dependencies
[LLVM][NVPTX] Mark ldmatrix/stmatrix intrinsics convergent (#174669)
NVVM ldmatrix and stmatrix intrinsics map to corresponding PTX
instructions that have a .sync.aligned behavior. Mark these intrinsics
as convergent to prevent control flow transformations that can break
these semantics. This is similar to other .sync.aligned intrinsics.
[llvm] Bypass sandbox for `getMainExecutable()` (#174816)
Getting the executable path is a fairly common operation in LLVM tools
that doesn't affect their outputs. Allow calling it under the sandbox.
[DirectX] Specify NegZero as signed (#174840)
#171456 set `ImplicitTrunc` to false by default. So `NegZero` value was
no longer being created as a signed integer.
This caused a similar crash during `DXILIntrinsicExpansion` as reported
here:
https://github.com/llvm/llvm-project/pull/171456#issuecomment-3718690088.
This change fixes the test case from crashing in the DirectX backend by
manually specifying it as a signed integer.