Repository navigation
merge queue: checking #2421 on master (fefb2b2) - #2437
Closed
mergify[bot] wants to merge 2 commits into
Closed
mergify[bot] wants to merge 2 commits into
mergify[bot] wants to merge 2 commits into
Conversation
Each `$bits`, `$size` or other array query that validation binds discovers the types of its owners' declarations, iterating over the scope's declarations until they settle. Every pass bound the signature of every method of every class specialization of the scope again, copying the whole discovery context for each class. In uvm_pkg one query took 60 to 110 seconds in three passes, and UVM elaboration did not finish in 25 minutes. A class's signatures are bound in the scope that declares it, not in the declarations around a query. Bind them once by discovering the scope's own declarations from its base context until they settle, binding the class signatures in every pass as before, so a method range that uses a scope declaration (`logic [$bits(data)-1:0]`) still sees it. Later queries and their passes publish the class methods' entries again while that context (its constants, types and function results) and the set of specializations are unchanged; the scope's other subroutines are still discovered with each query, where a generate block may hide them. The type, function result and parameter tables of a discovery context are shared until written, so copying a context no longer copies them. With the `ref` and unpacked-struct gates bypassed locally, UVM elaboration of uvm_test_run_test now reaches its next unsupported construct after 177 seconds instead of running for more than 25 minutes. A regression counts the bindings for 2 and 16 query-bearing methods: they are equal, while rebinding on every discovery pass gives 30 and 198. The shared case `class::method_ranges_of_scope_declarations` sizes a module variable by a class method whose range uses `$bits` of a module variable; Verilator 5.052 passes, Icarus 13.0 rejects the call in a declaration range and the pinned xezim reads 1 (new sv_class-X16); both exact failures are retained with adapter-free Top/Wrapped observations. Analyzer/frontend units: 881 / 11; full SV suite: 6,247 passed, 20 skipped; sv-tests verdicts unchanged. Change-Id: Ia9baaf704906c2ed6f06f6ffec193051824d5ed2
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.
Note
This is a merge queue draft opened by Mergify. Nobody needs to act on it.
Mergify opened it for batch humane-praline-wwm9wv of the
changesqueue, to test #2421 before it merges intomaster. Pushing to this branch or closing this pull request removes #2421 from the queue.What this draft tests
Mergify checks that #2421 still passes CI on top of
master. CI runs on this draft's code, built in this order:masteratfefb2b2🎉 Where it stands: checks passed
CI passed on this draft.
Follow the
changesqueue in the dashboardWhat happens next
masterand closes this draft.Metadata for CI tooling, read by
mergify ci1 scope
coreRequired conditions of queue rule
changesfor mergecheck-success = Conventional Commit titlecheck-success = Queue validationmaster]:check-success = @github-actions/Lint & Formatcheck-neutral = @github-actions/Lint & Formatcheck-skipped = @github-actions/Lint & Formatmaster]:check-success = @github-actions/Rust Test & NAPI Buildcheck-neutral = @github-actions/Rust Test & NAPI Buildcheck-skipped = @github-actions/Rust Test & NAPI Buildmaster]:check-success = @github-actions/JS Test (Ubuntu)check-neutral = @github-actions/JS Test (Ubuntu)check-skipped = @github-actions/JS Test (Ubuntu)master]:check-success = @github-actions/Conventional Commit titlecheck-neutral = @github-actions/Conventional Commit titlecheck-skipped = @github-actions/Conventional Commit titlemaster]:check-success = @github-actions/Queue validationcheck-neutral = @github-actions/Queue validationcheck-skipped = @github-actions/Queue validationRequired conditions to stay in the queue
-conflict-draft-head ~= ^(integration/|renovate/veryl-crates$|upgrade/veryl-|release-please--branches--master--components--celox$|master$)-head ~= ^renovate/-label = release:holdbase ~= ^(master|develop)$base ~= ^stack/body ~= (?m)^Depends-On:head != release-please--branches--master--components--celoxlabel = merge-readymaster]:check-success = @github-actions/Lint & Formatcheck-neutral = @github-actions/Lint & Formatcheck-skipped = @github-actions/Lint & Formatmaster]:check-success = @github-actions/Rust Test & NAPI Buildcheck-neutral = @github-actions/Rust Test & NAPI Buildcheck-skipped = @github-actions/Rust Test & NAPI Buildmaster]:check-success = @github-actions/JS Test (Ubuntu)check-neutral = @github-actions/JS Test (Ubuntu)check-skipped = @github-actions/JS Test (Ubuntu)master]:check-success = @github-actions/Conventional Commit titlecheck-neutral = @github-actions/Conventional Commit titlecheck-skipped = @github-actions/Conventional Commit titlemaster]:check-skipped = @github-actions/Queue validationcheck-neutral = @github-actions/Queue validationcheck-success = @github-actions/Queue validationQueue graph
The diagram is not laid out in queue order, so a node's position says nothing about when it merges.
graph LR 2a7c22b846d64823a174cc45698a02db["humane-praline-wwm9wv<br/>#2421<br/>scopes: core"] e6e7c891ad684b8e8944ee5b11aa8404["volumetric-palmier-99istr<br/>#2428<br/>scopes: core"] 2a7c22b846d64823a174cc45698a02db --> e6e7c891ad684b8e8944ee5b11aa8404 style 2a7c22b846d64823a174cc45698a02db fill:#6366f1,color:#fff