RESOLVED FIXED 147508
jsc-tailcall: We should reuse the frame efficiently in the DFG instead of doing a memmove
https://bugs.webkit.org/show_bug.cgi?id=147508
Summary jsc-tailcall: We should reuse the frame efficiently in the DFG instead of doi...
Basile Clement
Reported 2015-07-31 14:52:59 PDT
...
Attachments
Patch (164.17 KB, patch)
2015-08-21 14:52 PDT, Basile Clement
no flags
Patch (130.84 KB, patch)
2015-08-21 15:53 PDT, Basile Clement
no flags
Patch (131.28 KB, patch)
2015-08-24 19:17 PDT, Basile Clement
msaboff: review+
Basile Clement
Comment 1 2015-08-21 14:52:41 PDT
Basile Clement
Comment 2 2015-08-21 15:53:53 PDT
Michael Saboff
Comment 3 2015-08-23 21:32:04 PDT
Comment on attachment 259677 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=259677&action=review Add blank lines between function declarations or definitions. Let's use = initialization for "for" loops. r=me with some comment clean up and stylistic changes. > Source/JavaScriptCore/jit/CallFrameShuffleData.cpp:43 > + for (size_t i { 0 }; i < registerSaveLocations->size(); ++i) { Let's use = initialization for "for" loops. > Source/JavaScriptCore/jit/CallFrameShuffleData.cpp:55 > + for (Reg reg { Reg::first() }; reg <= Reg::last(); reg = reg.next()) { Let's use = initialization for "for" loops. > Source/JavaScriptCore/jit/CallFrameShuffler.h:41 > +// A CachedRecovery is a simple wrapper around a ValueRecovery that That what? Complete the comment. > Source/JavaScriptCore/jit/CallFrameShuffler.h:106 > + Delete one blank line. > Source/JavaScriptCore/jit/CallFrameShuffler.h:451 > + int m_frameDelta { m_alignedNewFrameSize - m_alignedOldFrameSize }; Initialize this in the constructor. > Source/JavaScriptCore/jit/CallFrameShuffler.h:685 > + // pointer, and m_oldFrameOffset is 0. We could We could what? Finish the comment.
Basile Clement
Comment 4 2015-08-24 19:17:14 PDT
Comment on attachment 259677 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=259677&action=review Addressed the comments below + added blank lines between method definitions. >> Source/JavaScriptCore/jit/CallFrameShuffleData.cpp:43 >> + for (size_t i { 0 }; i < registerSaveLocations->size(); ++i) { > > Let's use = initialization for "for" loops. Changed all of those. >> Source/JavaScriptCore/jit/CallFrameShuffler.h:41 >> +// A CachedRecovery is a simple wrapper around a ValueRecovery that > > That what? Complete the comment. Oh, oops. I should actually reword it since it's a bit more than a "simple wrapper". Changed to "A CachedRecovery is a wrapper around a ValueRecovery that records where said value should go on the stack and/or in registers. Whenever we perform an operation changing the ValueRecovery, we update the CachedRecovery's member in place." >> Source/JavaScriptCore/jit/CallFrameShuffler.h:106 >> + > > Delete one blank line. Done. >> Source/JavaScriptCore/jit/CallFrameShuffler.h:451 >> + int m_frameDelta { m_alignedNewFrameSize - m_alignedOldFrameSize }; > > Initialize this in the constructor. I did this here because I believed it to make it clearer what happens when reading the comment. Moved to the constructor. >> Source/JavaScriptCore/jit/CallFrameShuffler.h:685 >> + // pointer, and m_oldFrameOffset is 0. We could > > We could what? Finish the comment. I'll just remove the "We could" part. I wanted to say that we could use the stack pointer as well, but that'd just be noise.
Basile Clement
Comment 5 2015-08-24 19:17:20 PDT
Michael Saboff
Comment 6 2015-08-25 15:24:11 PDT
Comment on attachment 259806 [details] Patch r=me
Basile Clement
Comment 7 2015-08-25 15:59:58 PDT
Note You need to log in before you can comment on or make changes to this bug.