[maglev] Fix deopt node printing
We were forgetting to print the interpreted frame closure, leading to an
off-by-one in the remaining inputs.
Bug: v8:7700
Change-Id: I0bf6a036bdede160f6b525c9129a56053350fa70
Fixed: v8:14537
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5185349
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#91781}
diff --git a/src/maglev/maglev-graph-printer.cc b/src/maglev/maglev-graph-printer.cc
index c9e7df4..6d17db1 100644
--- a/src/maglev/maglev-graph-printer.cc
+++ b/src/maglev/maglev-graph-printer.cc
@@ -390,16 +390,14 @@
return;
}
os << " : {";
- bool first = true;
+ os << "<closure>:"
+ << PrintNodeLabel(graph_labeller, frame.as_interpreted().closure())
+ << ":" << current_input_location->operand();
+ current_input_location++;
frame.as_interpreted().frame_state()->ForEachValue(
frame.as_interpreted().unit(),
[&](ValueNode* node, interpreter::Register reg) {
- if (first) {
- first = false;
- } else {
- os << ", ";
- }
- os << reg.ToString() << ":";
+ os << ", " << reg.ToString() << ":";
if (lazy_deopt_info_if_top_frame &&
lazy_deopt_info_if_top_frame->IsResultRegister(reg)) {
os << "<result>";