Description[TypeFeedbackVector] Root literal arrays in function literals slots
Literal arrays and feedback vectors for a function can be garbage
collected if we don't have a rooted closure for the function, which
happens often. It's expensive to come back from this (recreating
boilerplates and gathering feedback again), and the cost is
disproportionate if the function was inlined into optimized code.
To guard against losing these arrays when we need them, we'll now
create literal arrays when creating the feedback vector for the outer
closure, and root them strongly in that vector.
BUG=v8:5456
Review-Url: https://codereview.chromium.org/2620753003
Cr-Original-Commit-Position: refs/heads/master@{#42258}
Committed: https://chromium.googlesource.com/v8/v8/+/31887804107bf5c103d915f5c601cfaaf1cd7cb6
Review-Url: https://codereview.chromium.org/2620753003
Cr-Commit-Position: refs/heads/master@{#42264}
Committed: https://chromium.googlesource.com/v8/v8/+/b8294aaa978e972978b8d82cedf63befad5d7af1
Patch Set 1 #Patch Set 2 : Updated test and compilelazy builtin. #Patch Set 3 : Compile fix. #
Total comments: 2
Patch Set 4 : Comments, TODOs. #
Total comments: 8
Patch Set 5 : Code comments. #
Total comments: 8
Patch Set 6 : Moar comments. #
Total comments: 2
Patch Set 7 : REBASE. #Patch Set 8 : GCSTRESS bugfix. #Patch Set 9 : GCSTRESS fix. #
Messages
Total messages: 58 (42 generated)
|