aboutsummaryrefslogtreecommitdiff
path: root/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java')
-rw-r--r--src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java b/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
index c24a2103e..ecd17b309 100644
--- a/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
+++ b/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
@@ -406,9 +406,17 @@ public class LogParser extends DefaultHandler implements ErrorHandler, Constants
} else if (scopes.peek().getCalls().size() > 2 && m == scopes.peek().last(-2).getMethod()) {
scopes.push(scopes.peek().last(-2));
} else {
- System.out.println(site.getMethod());
- System.out.println(m);
- throw new InternalError("call site and parse don't match");
+ // C1 prints multiple method tags during inlining when it narrows method being inlinied.
+ // Example:
+ // ...
+ // <method id="813" holder="694" name="toString" return="695" flags="1" bytes="36" iicount="1"/>
+ // <call method="813" instr="invokevirtual"/>
+ // <inline_success reason="receiver is statically known"/>
+ // <method id="814" holder="792" name="toString" return="695" flags="1" bytes="5" iicount="3"/>
+ // <parse method="814">
+ // ...
+ site.setMethod(m);
+ scopes.push(site);
}
}
} else if (qname.equals("parse_done")) {