From 9654becf1514dfaad859cc7af30f493ec2395764 Mon Sep 17 00:00:00 2001 From: Christian Hagedorn Date: Thu, 28 Nov 2024 08:28:30 +0100 Subject: [PATCH] 8344089: Fix wrong location of TestWrongMinLWiden.java --- src/hotspot/share/opto/ifnode.cpp | 4 ++-- .../filters/customNodeInfo.filter | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/opto/ifnode.cpp b/src/hotspot/share/opto/ifnode.cpp index c0ed3f7e5d4a6..677cf5b7d6079 100644 --- a/src/hotspot/share/opto/ifnode.cpp +++ b/src/hotspot/share/opto/ifnode.cpp @@ -2213,10 +2213,10 @@ void ParsePredicateNode::dump_spec(outputStream* st) const { st->print("Loop "); break; case Deoptimization::DeoptReason::Reason_profile_predicate: - st->print("Profiled_Loop "); + st->print("Profiled Loop "); break; case Deoptimization::DeoptReason::Reason_loop_limit_check: - st->print("Loop_Limit_Check "); + st->print("Loop Limit Check "); break; default: fatal("unknown kind"); diff --git a/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter b/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter index bcdd86ba7d37b..f94f06ab28454 100644 --- a/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter +++ b/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter @@ -34,3 +34,27 @@ editProperty(matches("name", "CallLeafDirect|CallLeafDirectVector|CallLeafNoFPDi // Show pre/main/post at CountedLoopNodes. editProperty(hasProperty("loop_kind"), ["loop_kind"], "extra_label", function(loop_kind) { return loop_kind[0]; }); + +// Show Parse Predicate type. +function parsePredicateInfo(dump_spec) { + // It's easier to match with ".*" because type "Loop" can also be found in type "Loop Limit Check" and "Profiled Loop". + // Matching with ".*" also requires us to exclude the optional "#useless" string at the end. + var predicateMatch = /#(.*)(#useless)?/.exec(dump_spec); + if (predicateMatch != null) { + return predicateMatch[1].trim(); + } + return null; +} +editProperty(matches("name", "ParsePredicate"), ["dump_spec"], "extra_label", + function(dump_spec) { return parsePredicateInfo(dump_spec[0]);}); + +// Show Assertion Predicate type. +function assertionPredicateInfo(dump_spec) { + var predicateMatch = /#((Init|Last) Value Assertion Predicate)/.exec(dump_spec); + if (predicateMatch != null) { + return predicateMatch[1]; + } + return null; +} +editProperty(matches("name", "If|RangeCheck"), ["dump_spec"], "extra_label", + function(dump_spec) { return assertionPredicateInfo(dump_spec[0]);});