Code Review for 6862956

Prepared by:never on Wed Aug 12 15:10:33 PDT 2009
Workspace:/net/smite.sfbay/export/ws/dom
Compare against: ssh://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot
Summary of changes: 219 lines changed: 126 ins; 7 del; 86 mod; 7353 unchg
Patch of changes: 6862956.patch
Author comments:
During debugging it would be helpful to be able to verify that the
dominance relationships in the graph are still valid. PhaseIdealLoop
effectively verifies this during construction but it's not really
structured to operate as a pure verifier. During debugging of another
issue I hacked to PhaseIdealLoop to support this and verified the
graph after every Ideal call in PhaseIterGVN which quickly narrowed
down the transformation that corrupted the graph. This webrev is a
cleaned up and test version of that code. It adds a new mode to
PhaseIdealLoop which performs loop tree construction without mutating
the graph at all, making it suitable as a verifier. I added calls to
verify the graph after each set of loop opts, which verifies that the
last pass didn't produce a malformed graph. This exposed a
preexisting issue with SuperWord producing malformed memory graphs for
which I'll file a separate bug. I also added some logic to print
debug info when compute_lca_of_uses failed.

Tested with full CTW on all platforms and configurations.

Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/compile.cpp

17 lines changed: 13 ins; 0 del; 4 mod; 2707 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/domgraph.cpp

2 lines changed: 0 ins; 0 del; 2 mod; 662 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/loopnode.cpp

145 lines changed: 62 ins; 7 del; 76 mod; 2791 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/loopnode.hpp

52 lines changed: 48 ins; 0 del; 4 mod; 920 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/phase.hpp

1 line changed: 1 ins; 0 del; 0 mod; 109 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/phase.cpp

2 lines changed: 2 ins; 0 del; 0 mod; 164 unchg

This code review page was prepared using /net/smite.sfbay/never/bin/webrev (vers 23.18-hg-never).