Bug 207849

Summary: [Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
Product: WebKit Reporter: Tadeu Zagallo <tzagallo>
Component: JavaScriptCoreAssignee: Tadeu Zagallo <tzagallo>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, ews-watchlist, keith_miller, Lawrence.j, mark.lam, msaboff, saam, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Tadeu Zagallo
Reported 2020-02-17 11:12:05 PST
...
Attachments
Patch (3.23 KB, patch)
2020-02-17 11:16 PST, Tadeu Zagallo
no flags
Tadeu Zagallo
Comment 1 2020-02-17 11:16:58 PST
Tadeu Zagallo
Comment 2 2020-02-17 11:19:01 PST
Mark Lam
Comment 3 2020-02-17 11:54:07 PST
Comment on attachment 390944 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=390944&action=review > Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:165 > + // Pessimistically save callee saves in BoundsChecking mode since the LLInt always bounds checks > + return Wasm::PinnedRegisterInfo::get().toSave(Wasm::MemoryMode::BoundsChecking); When would we ever not want to save the sizeRegister? Why not get rid of the memoryMode condition and always save the register? From gripping the code, I don't see a case where toSave() is ever called with anything other than MemoryMode::BoundsChecking.
Mark Lam
Comment 4 2020-02-17 11:57:36 PST
(In reply to Mark Lam from comment #3) > > Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:165 > > + // Pessimistically save callee saves in BoundsChecking mode since the LLInt always bounds checks > > + return Wasm::PinnedRegisterInfo::get().toSave(Wasm::MemoryMode::BoundsChecking); > > When would we ever not want to save the sizeRegister? Why not get rid of > the memoryMode condition and always save the register? From gripping the > code, I don't see a case where toSave() is ever called with anything other > than MemoryMode::BoundsChecking. /gripping/grepping/
Mark Lam
Comment 5 2020-02-17 12:42:25 PST
Comment on attachment 390944 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=390944&action=review r=me >> Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:165 >> + return Wasm::PinnedRegisterInfo::get().toSave(Wasm::MemoryMode::BoundsChecking); > > When would we ever not want to save the sizeRegister? Why not get rid of the memoryMode condition and always save the register? From gripping the code, I don't see a case where toSave() is ever called with anything other than MemoryMode::BoundsChecking. I'm wrong, there's still one place where we may not pass MemoryMode::BoundsChecking.
Tadeu Zagallo
Comment 6 2020-02-17 13:15:14 PST
*** Bug 207843 has been marked as a duplicate of this bug. ***
WebKit Commit Bot
Comment 7 2020-02-17 13:24:18 PST
Comment on attachment 390944 [details] Patch Clearing flags on attachment: 390944 Committed r256766: <https://trac.webkit.org/changeset/256766>
WebKit Commit Bot
Comment 8 2020-02-17 13:24:19 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.