| Summary: | AirAllocateStackByGraphColoring should use the optimized interference graphs from AirAllocateRegistersByGraphColoring | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Robin Morisset <rmorisset> | ||||||||||||||
| Component: | JavaScriptCore | Assignee: | Robin Morisset <rmorisset> | ||||||||||||||
| Status: | RESOLVED FIXED | ||||||||||||||||
| Severity: | Normal | CC: | annulen, benjamin, cdumez, cmarcelo, ews-watchlist, fpizlo, gyuyoung.kim, keith_miller, mark.lam, msaboff, ryuan.choi, saam, sergio, tzagallo, webkit-bug-importer | ||||||||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||||||||
| Version: | WebKit Nightly Build | ||||||||||||||||
| Hardware: | Unspecified | ||||||||||||||||
| OS: | Unspecified | ||||||||||||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=225848 | ||||||||||||||||
| Bug Depends on: | |||||||||||||||||
| Bug Blocks: | 226388 | ||||||||||||||||
| Attachments: |
|
||||||||||||||||
|
Description
Robin Morisset
2021-05-25 23:58:33 PDT
Created attachment 429733 [details]
WIP
Created attachment 429786 [details]
Patch
Looks like the jsc EWS bot failures are real. Can you investigate? (In reply to Mark Lam from comment #3) > Looks like the jsc EWS bot failures are real. Can you investigate? Looking at it. Created attachment 429915 [details]
Patch
The test failures were caused by a debugging option that I had forgotten to reset to false before committing (AirAllocateStackByGraphColoringInternal::reportLargeMemoryUses).
I also tested it on JetStream2 and RAMification, and the patch appears neutral.
Comment on attachment 429915 [details]
Patch
After discussing with Phil, I appear to have some problem with coalescing which I really should fix before trying to land this.
Created attachment 429934 [details]
Patch
Fix a stupid infinite loop in remap() !
Also avoided creating self-interfering edges, so we no longer need to be on the lookout for those.
Comment on attachment 429934 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=429934&action=review > Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1365 > + if constexpr (reportInterferenceGraphMemoryUse && (std::is_same<InterferenceSet, WTF::LargeInterferenceGraph>::value || std::is_same<InterferenceSet, WTF::HugeInterferenceGraph>::value)) { You should do “using WTF::LargeInterferenceGraph” (and ditto for Huge) at the bottom of the file in WTF that defines these things. That way you don’t have to say WTF:: here. That’s what other WTF ADTs do. /Volumes/Data/worker/Commit-Queue/build/Source/WTF/ChangeLog neither lists a valid reviewer nor contains the string "Unreviewed" or "Rubber stamp" (case insensitive). Created attachment 429965 [details]
Patch for landing
Thanks Phil for the review.
I added the using statements in wtf/InterferenceGraph.h as suggested.
Created attachment 429966 [details]
Patch for landing
I had missed a couple of redundant "WTF::"
Committed r278186 (238229@main): <https://commits.webkit.org/238229@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 429966 [details]. |