Description[Interpreter] Support compiling for baseline on return from interpreted function.
We cannot tier up from interpreted to baseline code when there is an
activation of the function on the stack. This significantly regresses
the performance of recursive functions since they are unlikely to get
tiered up.
This CL adds the ability for a function to be marked for baseline
compilation when it returns. To do this we patch the
InterpreterEntryTrampoline return address to point to
InterpreterMarkBaselineOnReturn, which leaves the
interpreted frame and recompile the function for
baseline.
This improves the score of EarlyBoyer by ~8x for Ignition.
BUG=v8:4280
LOG=N
Committed: https://crrev.com/f241a61a3409cef1f8d631d5c3ee992e182f294e
Cr-Commit-Position: refs/heads/master@{#36360}
Patch Set 1 #
Total comments: 6
Patch Set 2 : Update based on interpreter actually returning to marker. #
Total comments: 4
Patch Set 3 : Add ports and cctest #Patch Set 4 : Fix test for always-opt #Patch Set 5 : Fix interpreted frame walking #Patch Set 6 : Fix test for nosnap build #
Depends on Patchset: Messages
Total messages: 32 (15 generated)
|