Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6384206
Votes 0
Synopsis Phis which are later unneeded are impairing our ability to inline based on static types
Category hotspot:compiler2
Reported Against
Release Fixed hs14(b06), 6u14(b01) (Bug ID:2172782) , 7(b39) (Bug ID:2177308)
State 10-Fix Delivered, bug
Priority: 3-Medium
Related Bugs 6750588 , 6805522 , 6850611
Submit Date 10-FEB-2006
Description
While investigating the performance of HashMap.get(k) I noticed that in cases where the static type of k is available C2 isn't taking advantage of the information in making it's inline decisions for get.  The problem is that Phis which are introduced for the join of a diamond aren't being eliminated aggressively during parsing when one of the paths is proved dead.  Additionally unneeded loop phis are hiding the type k in the search loop, impairing the inlining of equals.  Post parse inlining which remove the need for aggressive elimination of phis but for now we need a better strategy for simplification of phis.
Posted Date : 2006-02-10 17:21:33.0
Work Around
N/A
Evaluation
Some simple changes to parse collapse phis for dead codes paths.  A better strategy is to rely on RPO for parse order and when you reach a block with unparsed predecessors, assume they are dead unless your block is a backward branch target.

Eliminating phis for loops requires some analysis though it can be very cheap if we are looking for the simple case.
Posted Date : 2006-02-10 18:21:07.0

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/194b8e3a2fc4
Posted Date : 2008-09-17 22:10:07.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang