docs(ci): attribute the native_owned_typed_views control_flow misses to #8457 - #8854
Merged
Conversation
This was referenced Aug 26, 2026
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe change corrects documentation for three ChangesVectorization documentation
Estimated code review effort: 1 (Trivial) | ~3 minutes Suggested reviewers: ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Records the attribution for #8489 and corrects three claims in the existing rationale that were all false. Comment and changelog only —
allowed_missed_reason_kindsis unchanged (#8490 already widened it on 2026-08-20; the release was never actually blocked after that).Attribution:
40e2ce86d(#8457, "make-Osthe default native optimization level")Found from CI job history rather than guessed: the native-ABI step was green at
526e0b502(Aug 20 03:31) and red at40e2ce86d(07:28). That window holds exactly two commits, and the other (f14a9e262, #8418) measures clean.control_flow526e0b502(parent of window)f14a9e262(#8418)40e2ce86d(#8457)40e2ce86d's counts match CI's Linux numbers (call 4, cf 3, unknown 1) exactly.Verdict: legitimate, not a codegen regression
Perry's emitted IR is byte-identical across the flip — same sha256 at
526e0b502,f14a9e262and40e2ce86d. Codegen output did not change at all. What changed is the clang args:The harness's remark pass reuses the compile's own args (
_analysis_args_from_metadata), so the analysis moved to-Ostoo. At-OsLLVM declines the SimplifyCFG speculation and if-conversion that at-O3flattened those branches into selects before the vectorizer ran — so the loops genuinely carry control flow it cannot if-convert, and vectorizing them would grow code size, which is exactly what-Osasks it not to do.-Oscost nothing measurable:vectorized_buffer_transformstill vectorizes 2 loops against a floor of 1.So the widening in #8490 was the right call. This PR only replaces its rationale, which recorded three now-falsified claims and no cause.
The three corrections
cargo build -p perry→--perry target/debug/perry(test.yml:1809,:1821) — a debug build. The macOS attempt that "did not reproduce" used--profile perry-dev(opt-level 1), a different profile, not a different OS. It reproduces on macOS with a CI-matching debug build.control_flow=3already at5876c9cdd, which precedes refactor(stdlib): centralize string header readers #8448/perf(codegen): fuse String.concat arguments into concat chain #8450/fix(ui): replace borrowed runtime strings with owned copies #8453/perf(codegen): append strings through variable cells #8454. And40e2ce86dis an ancestor of the3627657c7attribution baseline — which is precisely why that baseline looked "pre-existing" and made the original attribution circular.Validation
benchmarks/compiler_output/workloads.tomlparses;allowed_missed_reason_kindsbyte-for-byte unchangedSummary by CodeRabbit