If map was deprecated, abort compilation and allow re-compilation.
authorbmeurer@chromium.org <bmeurer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 23 May 2014 08:13:12 +0000 (08:13 +0000)
committerbmeurer@chromium.org <bmeurer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 23 May 2014 08:13:12 +0000 (08:13 +0000)
Also print a message if either map became unstable or map was
deprecated, if --trace-opt is enabled.

R=hpayer@chromium.org

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

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

src/compiler.cc

index 4e55d22..0349a35 100644 (file)
@@ -456,7 +456,19 @@ OptimizedCompileJob::Status OptimizedCompileJob::GenerateCode() {
     if (optimized_code.is_null()) {
       if (info()->bailout_reason() == kNoReason) {
         info_->set_bailout_reason(kCodeGenerationFailed);
+      } else if (info()->bailout_reason() == kMapBecameDeprecated) {
+        if (FLAG_trace_opt) {
+          PrintF("[aborted optimizing ");
+          function->ShortPrint();
+          PrintF(" because a map became deprecated]\n");
+        }
+        return AbortOptimization();
       } else if (info()->bailout_reason() == kMapBecameUnstable) {
+        if (FLAG_trace_opt) {
+          PrintF("[aborted optimizing ");
+          function->ShortPrint();
+          PrintF(" because a map became unstable]\n");
+        }
         return AbortOptimization();
       }
       return AbortAndDisableOptimization();