United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7004535 Clone loop predicate during loop unswitch
JDK-7004535 : Clone loop predicate during loop unswitch

Details
Type:
Enhancement
Submit Date:
2010-12-03
Status:
Closed
Updated Date:
2011-09-22
Project Name:
JDK
Resolved Date:
2011-04-24
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs20
Fixed Versions:
hs21 (b09)

Related Reports
Backport:
Relates:
Relates:

Sub Tasks

Description
There could be more optimization opportunities if loop predicate is cloned to each branch during loop unswitch.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/08eb13460b3a
                                     
2011-04-02
PUBLIC COMMENTS

Currently loop predicates generated during parsing could be separated from loops when loops are cloned. As result such predicates are removed. There could be more optimization opportunities if loop predicates are also cloned in such situations.

Loop predicate code become big so I moved it into new file loopPredicate.cpp.

I separated the cloning code for IdealLoop and IterGVN. The generated Ideal
code is the same but registration of new Ideal nodes is different enough to
have separate methods, I think. I welcome any suggestions to improve this code.

Keep loop predicates after CCP and perform optimizations with them until no more
loop optimizations could be done. After that switch them off and do more loop
optimizations.

VectorNode missed size_of() method as result it was cloned incorrectly.

Added TraceLoopOpts outputs I missed in previous changes.
                                     
2011-04-04



Hardware and Software, Engineered to Work Together