Only allow allocation site lifetime transitions from undicided to tenure or don't...
authorhpayer@chromium.org <hpayer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 15 May 2014 11:09:22 +0000 (11:09 +0000)
committerhpayer@chromium.org <hpayer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 15 May 2014 11:09:22 +0000 (11:09 +0000)
BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/289973002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/objects-inl.h

index 6c2b5e2..1a59dcc 100644 (file)
@@ -1587,7 +1587,10 @@ inline bool AllocationSite::DigestPretenuringFeedback() {
           static_cast<double>(found_count) / create_count : 0.0;
   PretenureFlag current_mode = GetPretenureMode();
 
-  if (minimum_mementos_created) {
+  // TODO(hpayer): Add an intermediate state MAYBE_TENURE which collects
+  // more lifetime feedback for tenuring candidates. In the meantime, we
+  // just allow transitions from undecided to tenured or not tenured.
+  if (minimum_mementos_created && pretenure_decision() == kUndecided) {
     PretenureDecision result = ratio >= kPretenureRatio
         ? kTenure
         : kDontTenure;