The current JIT solution stores and changes the start character position of the whole pattern's match on the stack. To store the beginning of the match directly in the output array can be a better solution because this value doesn't need to be available by the use of the stack pointer.
Created attachment 55838 [details] proposed patch
Ping? Any YARR JIT reviewers care able to review this simple patch?
Peter, can you post performance test results? For this patch, I would test SunSpider and v8-regexp.
Comment on attachment 55838 [details] proposed patch Code looks good, but I'm going to say r- for now, waiting on performance numbers.
Comment on attachment 55838 [details] proposed patch We don't need to do this allocation on stack, so this patch solves the removed TODO. It saves sizeof(int) bytes from stack per matching. In fact, this patch doesn't even have effect on performance, it improves the memory usage. Btw, the performance results are: ref mod regexp-dna: 22.4ms +/- 1.6% 22.4ms +/- 1.6% v8-regexp: 445.9ms +/- 2.6% 444.5ms +/- 2.6% I set to r? again.
Comment on attachment 55838 [details] proposed patch r=me
Comment on attachment 55838 [details] proposed patch Thanks Geoffrey. cq removed to land it manually.
Comment on attachment 55838 [details] proposed patch Sending JavaScriptCore/ChangeLog Sending JavaScriptCore/yarr/RegexJIT.cpp Transmitting file data .. Committed revision 61244. Clearing flags. (In reply to comment #7) > (From update of attachment 55838 [details]) > Thanks Geoffrey. > cq removed to land it manually.
All reviewed patches landed. Closing bug.