Repository navigation
Final sync release branch to main - #9122
Open
Ashley Coleman (V-FEXrt) wants to merge 9 commits into
Open
Ashley Coleman (V-FEXrt) wants to merge 9 commits into
Ashley Coleman (V-FEXrt) wants to merge 9 commits into
Conversation
…-heap-stride CLI flags (#8519) Building off of #8518, this PR adds two new command-line flags that override the ArrayStride of the descriptor heap runtime arrays emitted by -fspv-use-descriptor-heap. It is part 3/4 in a series. -fvk-resource-heap-stride <N> and -fvk-sampler-heap-stride <M> sets the stride for ResourceDescriptorHeap SamplerDescriptorHeap arrays respectively. N and M must be a power of two in [8, 256]. When set, the CLI value takes the highest precedence. Assisted by an AI agent. @dnovillo
This updates the HLSL SROA pass's split copy function to not chase pointers through layers of nesting. Because this function calls itself recursively you can end up walking too many layers through pointers instead of just copying a pointer. This patch works by detecting when the index list is already populated and bouncing out to a non-recursive simple pointer copy.
…sts (#9096) The LinAlg float matrix multiply tests compared results exactly, but some hardware returns results a few units off even when the exact result is representable, for example -2.9999993 instead of -3.0 in an F32 accumulator. The larger shapes added in #8939 exposed this. The spec owner has confirmed that correctly rounded results are not required. - Accept F32 matrix multiply results within K + 2 ULPs of the expected value, where K is the inner dimension, since the error of a K-term dot product grows with K (for example -0.9999986 instead of -1.0 at K = 32). Accept F16 results within 4 ULPs. ULPs are taken of max(|expected|, 1.0) so results near zero aren't held to a tighter bound. Inf and NaN must match. - Applies to MatMatMul and MatMatMulAccum at Wave and ThreadGroup scope. - MatVec, outer product, element-wise accumulate, integer multiplies, transfers and conversions stay exact. --------- Co-authored-by: Jack Elliott <jackell@ntdev.microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f05f926c-8544-4ea3-87aa-307088e1622a
GVN::performScalarPRE replaces an instruction with a PHI node whose incoming values include existing predecessor instructions. Intersect poison-generating flags and metadata on those existing values with the instruction being replaced so later passes do not optimize using flags that only held on one path. Backports llvm/llvm-project@722339e40562 (D39637). pre-jt-add.ll is omitted because DXC's LazyValueInfo does not infer the nuw range that triggered JumpThreading in upstream LLVM.
…#9110) InstCombiner::visitICmpInst unconditionally emitted nsw when folding icmp (A + C1), (C + C2) into a single add. Only preserve nsw from the original add, and only preserve nuw when the constant difference does not wrap unsigned. Backports llvm/llvm-project@29f189f90d44 (D100095).
SimplifyIndvar::eliminateIVComparison folds a proven ICmp in place via replaceAllUsesWith without notifying ScalarEvolution. Because i1 values have no SCEVCallbackVH, cached SCEV expressions on users of the ICmp remain live after their def-use link to the loop is severed, surviving ScalarEvolution::forgetLoop if the loop is deleted. Call forgetValue on the ICmp before replacing its uses. Backports llvm/llvm-project@fd236772f566.
ScalarEvolution::getGEPExpr previously converted a GEP instruction's inbounds flag into SCEV::FlagNSW on the index-by-size multiplication and base addition. When a GEP is guarded by control flow, its inbounds property may not hold across the entire loop, and attaching no-wrap flags to the resulting recurrence can pollute a globally uniqued SCEVAddRecExpr shared with another value (such as the loop's induction variable), causing IndVarSimplify to fold away live loop exit checks. This resolves the PR23527 FIXME in ScalarEvolution::getGEPExpr, matching createSCEV's handling of Add and Mul and partially backporting the fix from: llvm/llvm-project@2ca8a3f (PR23527, D109789) --------- Co-authored-by: Chris B <beanz@abolishcrlf.org>
`ubuntu-latest` was recently updated to `26.04` and as part of that bump `clang-format 17.0.1` is now unavailable. Bump to `clang-format 17.0.6`
Runtime metadata tracking would give up and report the most conservative flagset when encountering a dynamically indexed array of matrices. This change updates the tracking to follow up to the array alloca then assume every stored matrix is used which allows the tracking to be slighly less conservative. Fixes #9097 Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sync latest changes from main into the release branch in preparation to diverge