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).