hotspot/src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
changeset 25644 5319fc0701c7
parent 24673 2ec56802b829
child 29086 74100114a95a
equal deleted inserted replaced
25643:4ff52a1e3a23 25644:5319fc0701c7
   476                 if (site.getMethod() == m) {
   476                 if (site.getMethod() == m) {
   477                     scopes.push(site);
   477                     scopes.push(site);
   478                 } else if (scopes.peek().getCalls().size() > 2 && m == scopes.peek().last(-2).getMethod()) {
   478                 } else if (scopes.peek().getCalls().size() > 2 && m == scopes.peek().last(-2).getMethod()) {
   479                     scopes.push(scopes.peek().last(-2));
   479                     scopes.push(scopes.peek().last(-2));
   480                 } else {
   480                 } else {
   481                     System.out.println(site.getMethod());
   481                     // C1 prints multiple method tags during inlining when it narrows method being inlinied.
   482                     System.out.println(m);
   482                     // Example:
   483                     throw new InternalError("call site and parse don't match");
   483                     //   ...
       
   484                     //   <method id="813" holder="694" name="toString" return="695" flags="1" bytes="36" iicount="1"/>
       
   485                     //   <call method="813" instr="invokevirtual"/>
       
   486                     //   <inline_success reason="receiver is statically known"/>
       
   487                     //   <method id="814" holder="792" name="toString" return="695" flags="1" bytes="5" iicount="3"/>
       
   488                     //   <parse method="814">
       
   489                     //   ...
       
   490                     site.setMethod(m);
       
   491                     scopes.push(site);
   484                 }
   492                 }
   485             }
   493             }
   486         } else if (qname.equals("parse_done")) {
   494         } else if (qname.equals("parse_done")) {
   487             CallSite call = scopes.pop();
   495             CallSite call = scopes.pop();
   488             call.setEndNodes(Integer.parseInt(search(atts, "nodes", "0")));
   496             call.setEndNodes(Integer.parseInt(search(atts, "nodes", "0")));