-
Mythri A authored
When setting optimized code on feedback vector we had a DCHECK that ensured the optimization tier is kNone or it is kMidTier and we are installing TurboFan code. While this holds usually, this fails in few corner cases like: 1. Trigger a TF concurrent compilation 2. Create a new closure with --always-opt, which triggers a TF concurrent compilation and installs optimized code. We set OptimizationTier to kTopTier 3. Optimized code gets deoptimized / GC clears the optimized code, but we haven't healed the optimized code slot / optimization tier yet. 4. Concurrent compilation finishes and tries to install optimized code but the optimization tier is still set to kTopTier. This cl fixes the DCHECK by actually checking we are not overwriting valid optimized code except for tiering up. Drive by fixes: Also print optimization tier with feedback vector and print when marking a function for optimization with --always-opt. Bug: v8:11101, v8:9684 Change-Id: Icad673ea01bb225f8b05e727a56f890af7e86514 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2520900 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71047}
a7857d44