Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
e1acb998
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e1acb998
编写于
10月 30, 2008
作者:
N
never
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6764622: IdealGraphVisualizer fixes
Reviewed-by: rasbold, jrose
上级
48ef65a5
变更
36
隐藏空白更改
内联
并排
Showing
36 changed file
with
326 addition
and
202 deletion
+326
-202
hotspot/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewTopComponent.java
...m/sun/hotspot/igv/bytecodes/BytecodeViewTopComponent.java
+6
-1
hotspot/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowScene.java
...src/com/sun/hotspot/igv/controlflow/ControlFlowScene.java
+3
-4
hotspot/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowTopComponent.java
.../sun/hotspot/igv/controlflow/ControlFlowTopComponent.java
+6
-1
hotspot/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/FolderNode.java
...nator/src/com/sun/hotspot/igv/coordinator/FolderNode.java
+17
-1
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/GraphDocument.java
...izer/Data/src/com/sun/hotspot/igv/data/GraphDocument.java
+1
-1
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Group.java
...phVisualizer/Data/src/com/sun/hotspot/igv/data/Group.java
+1
-1
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputGraph.java
...ualizer/Data/src/com/sun/hotspot/igv/data/InputGraph.java
+13
-14
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputMethod.java
...alizer/Data/src/com/sun/hotspot/igv/data/InputMethod.java
+1
-1
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputNode.java
...sualizer/Data/src/com/sun/hotspot/igv/data/InputNode.java
+1
-1
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Properties.java
...ualizer/Data/src/com/sun/hotspot/igv/data/Properties.java
+98
-50
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Property.java
...isualizer/Data/src/com/sun/hotspot/igv/data/Property.java
+14
-10
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Parser.java
...ta/src/com/sun/hotspot/igv/data/serialization/Parser.java
+25
-14
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Printer.java
...a/src/com/sun/hotspot/igv/data/serialization/Printer.java
+1
-1
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLParser.java
...src/com/sun/hotspot/igv/data/serialization/XMLParser.java
+4
-4
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java
...src/com/sun/hotspot/igv/data/serialization/XMLWriter.java
+4
-4
hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java
...erence/src/com/sun/hotspot/igv/difference/Difference.java
+14
-13
hotspot/src/share/tools/IdealGraphVisualizer/Filter/manifest.mf
...t/src/share/tools/IdealGraphVisualizer/Filter/manifest.mf
+6
-6
hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java
...r/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java
+1
-2
hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/SplitFilter.java
...er/Filter/src/com/sun/hotspot/igv/filter/SplitFilter.java
+2
-2
hotspot/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Diagram.java
...sualizer/Graph/src/com/sun/hotspot/igv/graph/Diagram.java
+2
-2
hotspot/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java
...isualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java
+1
-1
hotspot/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Graph.java
...out/src/com/sun/hotspot/igv/hierarchicallayout/Graph.java
+5
-5
hotspot/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalClusterLayoutManager.java
.../hierarchicallayout/HierarchicalClusterLayoutManager.java
+13
-13
hotspot/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/LayoutGraph.java
...er/Layout/src/com/sun/hotspot/igv/layout/LayoutGraph.java
+7
-7
hotspot/src/share/tools/IdealGraphVisualizer/README
hotspot/src/share/tools/IdealGraphVisualizer/README
+7
-12
hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java
...er/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java
+3
-3
hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java
...r/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java
+7
-1
hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java
...lizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java
+9
-9
hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java
...r/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java
+38
-1
hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/FindPanel.java
...sualizer/View/src/com/sun/hotspot/igv/view/FindPanel.java
+1
-1
hotspot/src/share/tools/IdealGraphVisualizer/nbproject/platform.properties
.../tools/IdealGraphVisualizer/nbproject/platform.properties
+6
-6
hotspot/src/share/tools/IdealGraphVisualizer/nbproject/project.properties
...e/tools/IdealGraphVisualizer/nbproject/project.properties
+2
-3
hotspot/src/share/vm/adlc/output_h.cpp
hotspot/src/share/vm/adlc/output_h.cpp
+1
-1
hotspot/src/share/vm/opto/compile.cpp
hotspot/src/share/vm/opto/compile.cpp
+1
-1
hotspot/src/share/vm/opto/type.cpp
hotspot/src/share/vm/opto/type.cpp
+1
-1
hotspot/src/share/vm/runtime/frame.cpp
hotspot/src/share/vm/runtime/frame.cpp
+4
-4
未找到文件。
hotspot/src/share/tools/IdealGraphVisualizer/Bytecodes/src/com/sun/hotspot/igv/bytecodes/BytecodeViewTopComponent.java
浏览文件 @
e1acb998
...
...
@@ -28,6 +28,7 @@ import com.sun.hotspot.igv.data.InputGraph;
import
com.sun.hotspot.igv.data.services.InputGraphProvider
;
import
java.awt.BorderLayout
;
import
java.io.Serializable
;
import
javax.swing.SwingUtilities
;
import
org.openide.ErrorManager
;
import
org.openide.explorer.ExplorerManager
;
import
org.openide.explorer.ExplorerUtils
;
...
...
@@ -151,14 +152,18 @@ final class BytecodeViewTopComponent extends TopComponent implements ExplorerMan
}
public
void
resultChanged
(
LookupEvent
lookupEvent
)
{
InputGraphProvider
p
=
Lookup
.
getDefault
().
lookup
(
InputGraphProvider
.
class
);
final
InputGraphProvider
p
=
Lookup
.
getDefault
().
lookup
(
InputGraphProvider
.
class
);
if
(
p
!=
null
)
{
SwingUtilities
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
InputGraph
graph
=
p
.
getGraph
();
if
(
graph
!=
null
)
{
Group
g
=
graph
.
getGroup
();
rootNode
.
update
(
graph
,
g
.
getMethod
());
}
}
});
}
}
final
static
class
ResolvableHelper
implements
Serializable
{
...
...
hotspot/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowScene.java
浏览文件 @
e1acb998
...
...
@@ -33,7 +33,7 @@ import java.awt.Point;
import
java.awt.Rectangle
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.Set
;
import
javax.swing.BorderFactory
;
import
org.netbeans.api.visual.action.ActionFactory
;
...
...
@@ -44,7 +44,6 @@ import org.netbeans.api.visual.action.SelectProvider;
import
org.netbeans.api.visual.action.WidgetAction
;
import
org.netbeans.api.visual.anchor.AnchorFactory
;
import
org.netbeans.api.visual.anchor.AnchorShape
;
import
com.sun.hotspot.igv.controlflow.HierarchicalGraphLayout
;
import
org.netbeans.api.visual.layout.LayoutFactory
;
import
org.netbeans.api.visual.router.RouterFactory
;
import
org.netbeans.api.visual.widget.LayerWidget
;
...
...
@@ -61,8 +60,8 @@ import org.openide.util.Lookup;
*/
public
class
ControlFlowScene
extends
GraphScene
<
InputBlock
,
InputBlockEdge
>
implements
SelectProvider
,
MoveProvider
,
RectangularSelectDecorator
,
RectangularSelectProvider
{
private
Set
<
BlockWidget
>
selection
;
private
Hash
table
<
InputBlock
,
BlockWidget
>
blockMap
;
private
Hash
Set
<
BlockWidget
>
selection
;
private
Hash
Map
<
InputBlock
,
BlockWidget
>
blockMap
;
private
InputGraph
oldGraph
;
private
LayerWidget
edgeLayer
;
private
LayerWidget
mainLayer
;
...
...
hotspot/src/share/tools/IdealGraphVisualizer/ControlFlow/src/com/sun/hotspot/igv/controlflow/ControlFlowTopComponent.java
浏览文件 @
e1acb998
...
...
@@ -28,6 +28,7 @@ import com.sun.hotspot.igv.data.services.InputGraphProvider;
import
java.awt.BorderLayout
;
import
java.io.Serializable
;
import
javax.swing.JScrollPane
;
import
javax.swing.SwingUtilities
;
import
org.openide.ErrorManager
;
import
org.openide.util.Lookup
;
import
org.openide.util.LookupEvent
;
...
...
@@ -143,13 +144,17 @@ final class ControlFlowTopComponent extends TopComponent implements LookupListen
public
void
resultChanged
(
LookupEvent
lookupEvent
)
{
InputGraphProvider
p
=
Lookup
.
getDefault
().
lookup
(
InputGraphProvider
.
class
);
final
InputGraphProvider
p
=
Lookup
.
getDefault
().
lookup
(
InputGraphProvider
.
class
);
if
(
p
!=
null
)
{
SwingUtilities
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
InputGraph
g
=
p
.
getGraph
();
if
(
g
!=
null
)
{
scene
.
setGraph
(
g
);
}
}
});
}
}
@Override
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/FolderNode.java
浏览文件 @
e1acb998
...
...
@@ -24,6 +24,7 @@
package
com.sun.hotspot.igv.coordinator
;
import
com.sun.hotspot.igv.coordinator.actions.RemoveCookie
;
import
com.sun.hotspot.igv.data.ChangedListener
;
import
com.sun.hotspot.igv.data.Group
;
import
com.sun.hotspot.igv.data.services.GroupOrganizer
;
import
com.sun.hotspot.igv.data.InputGraph
;
...
...
@@ -50,17 +51,24 @@ public class FolderNode extends AbstractNode {
private
List
<
String
>
subFolders
;
private
FolderChildren
children
;
private
static
class
FolderChildren
extends
Children
.
Keys
{
private
static
class
FolderChildren
extends
Children
.
Keys
implements
ChangedListener
<
Group
>
{
private
FolderNode
parent
;
private
List
<
Group
>
registeredGroups
;
public
void
setParent
(
FolderNode
parent
)
{
this
.
parent
=
parent
;
this
.
registeredGroups
=
new
ArrayList
<
Group
>();
}
@Override
protected
Node
[]
createNodes
(
Object
arg0
)
{
for
(
Group
g
:
registeredGroups
)
{
g
.
getChangedEvent
().
removeListener
(
this
);
}
registeredGroups
.
clear
();
Pair
<
String
,
List
<
Group
>>
p
=
(
Pair
<
String
,
List
<
Group
>>)
arg0
;
if
(
p
.
getLeft
().
length
()
==
0
)
{
...
...
@@ -69,6 +77,8 @@ public class FolderNode extends AbstractNode {
for
(
InputGraph
graph
:
g
.
getGraphs
())
{
curNodes
.
add
(
new
GraphNode
(
graph
));
}
g
.
getChangedEvent
().
addListener
(
this
);
registeredGroups
.
add
(
g
);
}
Node
[]
result
=
new
Node
[
curNodes
.
size
()];
...
...
@@ -85,7 +95,13 @@ public class FolderNode extends AbstractNode {
@Override
public
void
addNotify
()
{
this
.
setKeys
(
parent
.
structure
);
}
public
void
changed
(
Group
source
)
{
List
<
Pair
<
String
,
List
<
Group
>>>
newStructure
=
new
ArrayList
<
Pair
<
String
,
List
<
Group
>>>();
for
(
Pair
<
String
,
List
<
Group
>>
p
:
parent
.
structure
)
{
refreshKey
(
p
);
}
}
}
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/GraphDocument.java
浏览文件 @
e1acb998
...
...
@@ -31,7 +31,7 @@ import java.util.List;
*
* @author Thomas Wuerthinger
*/
public
class
GraphDocument
extends
Properties
.
Object
implements
ChangedEventProvider
<
GraphDocument
>
{
public
class
GraphDocument
extends
Properties
.
Entity
implements
ChangedEventProvider
<
GraphDocument
>
{
private
List
<
Group
>
groups
;
private
ChangedEvent
<
GraphDocument
>
changedEvent
;
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Group.java
浏览文件 @
e1acb998
...
...
@@ -37,7 +37,7 @@ import java.util.Set;
*
* @author Thomas Wuerthinger
*/
public
class
Group
extends
Properties
.
Object
implements
ChangedEventProvider
<
Group
>
{
public
class
Group
extends
Properties
.
Entity
implements
ChangedEventProvider
<
Group
>
{
private
List
<
InputGraph
>
graphs
;
private
transient
ChangedEvent
<
Group
>
changedEvent
;
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputGraph.java
浏览文件 @
e1acb998
...
...
@@ -23,26 +23,25 @@
*/
package
com.sun.hotspot.igv.data
;
import
com.sun.hotspot.igv.data.Properties
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.HashSet
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
*
* @author Thomas Wuerthinger
*/
public
class
InputGraph
extends
Properties
.
Object
{
public
class
InputGraph
extends
Properties
.
Entity
{
private
Map
<
Integer
,
InputNode
>
nodes
;
private
Se
t
<
InputEdge
>
edges
;
private
Hash
Map
<
Integer
,
InputNode
>
nodes
;
private
ArrayLis
t
<
InputEdge
>
edges
;
private
Group
parent
;
private
Map
<
String
,
InputBlock
>
blocks
;
private
Map
<
Integer
,
InputBlock
>
nodeToBlock
;
private
Hash
Map
<
String
,
InputBlock
>
blocks
;
private
Hash
Map
<
Integer
,
InputBlock
>
nodeToBlock
;
private
boolean
isDifferenceGraph
;
public
InputGraph
(
Group
parent
)
{
...
...
@@ -61,10 +60,10 @@ public class InputGraph extends Properties.Object {
public
InputGraph
(
Group
parent
,
InputGraph
last
,
String
name
)
{
this
.
parent
=
parent
;
setName
(
name
);
nodes
=
new
Hash
table
<
Integer
,
InputNode
>();
edges
=
new
HashSe
t
<
InputEdge
>();
blocks
=
new
Hash
table
<
String
,
InputBlock
>();
nodeToBlock
=
new
Hash
table
<
Integer
,
InputBlock
>();
nodes
=
new
Hash
Map
<
Integer
,
InputNode
>();
edges
=
new
ArrayLis
t
<
InputEdge
>();
blocks
=
new
Hash
Map
<
String
,
InputBlock
>();
nodeToBlock
=
new
Hash
Map
<
Integer
,
InputBlock
>();
if
(
last
!=
null
)
{
for
(
InputNode
n
:
last
.
getNodes
())
{
...
...
@@ -182,8 +181,8 @@ public class InputGraph extends Properties.Object {
return
nodes
.
remove
(
index
);
}
public
Set
<
InputEdge
>
getEdges
()
{
return
Collections
.
unmodifiable
Se
t
(
edges
);
public
Collection
<
InputEdge
>
getEdges
()
{
return
Collections
.
unmodifiable
Lis
t
(
edges
);
}
public
void
removeEdge
(
InputEdge
c
)
{
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputMethod.java
浏览文件 @
e1acb998
...
...
@@ -32,7 +32,7 @@ import java.util.List;
*
* @author Thomas Wuerthinger
*/
public
class
InputMethod
extends
Properties
.
Object
{
public
class
InputMethod
extends
Properties
.
Entity
{
private
String
name
;
private
int
bci
;
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputNode.java
浏览文件 @
e1acb998
...
...
@@ -27,7 +27,7 @@ package com.sun.hotspot.igv.data;
*
* @author Thomas Wuerthinger
*/
public
class
InputNode
extends
Properties
.
Object
{
public
class
InputNode
extends
Properties
.
Entity
{
private
int
id
;
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Properties.java
浏览文件 @
e1acb998
...
...
@@ -26,24 +26,22 @@ package com.sun.hotspot.igv.data;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
*
* @author Thomas Wuerthinger
*/
public
class
Properties
implements
Serializable
{
public
class
Properties
implements
Serializable
,
Iterable
<
Property
>
{
public
static
final
long
serialVersionUID
=
1L
;
private
Map
<
String
,
Property
>
map
;
private
String
[]
map
=
new
String
[
4
]
;
public
Properties
()
{
map
=
new
HashMap
<
String
,
Property
>(
5
);
}
@Override
...
...
@@ -54,10 +52,7 @@ public class Properties implements Serializable {
Properties
p
=
(
Properties
)
o
;
if
(
getProperties
().
size
()
!=
p
.
getProperties
().
size
())
{
return
false
;
}
for
(
Property
prop
:
getProperties
())
{
for
(
Property
prop
:
this
)
{
String
value
=
p
.
get
(
prop
.
getName
());
if
(
value
==
null
||
!
value
.
equals
(
prop
.
getValue
()))
{
return
false
;
...
...
@@ -75,32 +70,33 @@ public class Properties implements Serializable {
public
Properties
(
String
name
,
String
value
)
{
this
();
this
.
add
(
new
Property
(
name
,
value
)
);
this
.
setProperty
(
name
,
value
);
}
public
Properties
(
String
name
,
String
value
,
String
name1
,
String
value1
)
{
this
(
name
,
value
);
this
.
add
(
new
Property
(
name1
,
value1
)
);
this
.
setProperty
(
name1
,
value1
);
}
public
Properties
(
String
name
,
String
value
,
String
name1
,
String
value1
,
String
name2
,
String
value2
)
{
this
(
name
,
value
,
name1
,
value1
);
this
.
add
(
new
Property
(
name2
,
value2
)
);
this
.
setProperty
(
name2
,
value2
);
}
public
Properties
(
Properties
p
)
{
map
=
new
HashMap
<
String
,
Property
>(
p
.
map
);
map
=
new
String
[
p
.
map
.
length
];
System
.
arraycopy
(
map
,
0
,
p
.
map
,
0
,
p
.
map
.
length
);
}
public
static
class
Object
implements
Provider
{
public
static
class
Entity
implements
Provider
{
private
Properties
properties
;
public
Object
()
{
public
Entity
()
{
properties
=
new
Properties
();
}
public
Object
(
Properties
.
Object
object
)
{
public
Entity
(
Properties
.
Entity
object
)
{
properties
=
new
Properties
(
object
.
getProperties
());
}
...
...
@@ -109,6 +105,14 @@ public class Properties implements Serializable {
}
}
private
String
getProperty
(
String
key
)
{
for
(
int
i
=
0
;
i
<
map
.
length
;
i
+=
2
)
if
(
map
[
i
]
!=
null
&&
map
[
i
].
equals
(
key
))
{
return
map
[
i
+
1
];
}
return
null
;
}
public
interface
PropertyMatcher
{
String
getName
();
...
...
@@ -173,13 +177,15 @@ public class Properties implements Serializable {
}
public
Property
selectSingle
(
PropertyMatcher
matcher
)
{
Property
p
=
this
.
map
.
get
(
matcher
.
getName
());
if
(
p
==
null
)
{
return
null
;
String
value
=
null
;
for
(
int
i
=
0
;
i
<
map
.
length
;
i
+=
2
)
{
if
(
map
[
i
]
!=
null
&&
matcher
.
getName
().
equals
(
map
[
i
]))
{
value
=
map
[
i
+
1
];
break
;
}
}
if
(
matcher
.
match
(
p
.
getValue
()
))
{
return
p
;
if
(
value
!=
null
&&
matcher
.
match
(
value
))
{
return
new
Property
(
matcher
.
getName
(),
value
)
;
}
else
{
return
null
;
}
...
...
@@ -194,8 +200,11 @@ public class Properties implements Serializable {
public
String
toString
()
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"["
);
for
(
Property
p
:
map
.
values
())
{
sb
.
append
(
p
.
toString
());
for
(
int
i
=
0
;
i
<
map
.
length
;
i
+=
2
)
{
if
(
map
[
i
+
1
]
!=
null
)
{
String
p
=
map
[
i
+
1
];
sb
.
append
(
map
[
i
]
+
" = "
+
map
[
i
+
1
]
+
"; "
);
}
}
return
sb
.
append
(
"]"
).
toString
();
}
...
...
@@ -241,41 +250,51 @@ public class Properties implements Serializable {
}
public
String
get
(
String
key
)
{
Property
p
=
map
.
get
(
key
);
if
(
p
==
null
)
{
return
null
;
}
else
{
return
p
.
getValue
();
for
(
int
i
=
0
;
i
<
map
.
length
;
i
+=
2
)
{
if
(
map
[
i
]
!=
null
&&
map
[
i
].
equals
(
key
))
{
return
map
[
i
+
1
];
}
}
return
null
;
}
public
String
getProperty
(
String
string
)
{
return
get
(
string
);
}
public
Property
setProperty
(
String
name
,
String
value
)
{
public
void
setProperty
(
String
name
,
String
value
)
{
for
(
int
i
=
0
;
i
<
map
.
length
;
i
+=
2
)
{
if
(
map
[
i
]
!=
null
&&
map
[
i
].
equals
(
name
))
{
String
p
=
map
[
i
+
1
];
if
(
value
==
null
)
{
// remove this property
map
[
i
]
=
null
;
map
[
i
+
1
]
=
null
;
}
else
{
map
[
i
+
1
]
=
value
;
}
return
;
}
}
if
(
value
==
null
)
{
// remove this property
return
map
.
remove
(
name
);
}
else
{
Property
p
=
map
.
get
(
name
);
if
(
p
==
null
)
{
p
=
new
Property
(
name
,
value
);
map
.
put
(
name
,
p
);
}
else
{
p
.
setValue
(
value
);
return
;
}
for
(
int
i
=
0
;
i
<
map
.
length
;
i
+=
2
)
{
if
(
map
[
i
]
==
null
)
{
map
[
i
]
=
name
;
map
[
i
+
1
]
=
value
;
return
;
}
return
p
;
}
String
[]
newMap
=
new
String
[
map
.
length
+
4
];
System
.
arraycopy
(
map
,
0
,
newMap
,
0
,
map
.
length
);
newMap
[
map
.
length
]
=
name
;
newMap
[
map
.
length
+
1
]
=
value
;
map
=
newMap
;
}
public
Collection
<
Property
>
getProperties
()
{
return
Collections
.
unmodifiableCollection
(
map
.
values
()
);
public
Iterator
<
Property
>
getProperties
()
{
return
iterator
(
);
}
public
void
add
(
Properties
properties
)
{
for
(
Property
p
:
properties
.
getProperties
()
)
{
for
(
Property
p
:
properties
)
{
add
(
p
);
}
}
...
...
@@ -283,6 +302,35 @@ public class Properties implements Serializable {
public
void
add
(
Property
property
)
{
assert
property
.
getName
()
!=
null
;
assert
property
.
getValue
()
!=
null
;
map
.
put
(
property
.
getName
(),
property
);
setProperty
(
property
.
getName
(),
property
.
getValue
());
}
class
PropertiesIterator
implements
Iterator
<
Property
>,
Iterable
<
Property
>
{
public
Iterator
<
Property
>
iterator
()
{
return
this
;
}
int
index
;
public
boolean
hasNext
()
{
while
(
index
<
map
.
length
&&
map
[
index
+
1
]
==
null
)
index
+=
2
;
return
index
<
map
.
length
;
}
public
Property
next
()
{
if
(
index
<
map
.
length
)
{
index
+=
2
;
return
new
Property
(
map
[
index
-
2
],
map
[
index
-
1
]);
}
return
null
;
}
public
void
remove
()
{
throw
new
UnsupportedOperationException
(
"Not supported yet."
);
}
}
public
Iterator
<
Property
>
iterator
()
{
return
new
PropertiesIterator
();
}
}
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Property.java
浏览文件 @
e1acb998
...
...
@@ -32,18 +32,19 @@ import java.io.Serializable;
public
class
Property
implements
Serializable
{
public
static
final
long
serialVersionUID
=
1L
;
private
String
name
;
private
String
value
;
p
ublic
Property
()
{
p
rivate
Property
()
{
this
(
null
,
null
);
}
p
ublic
Property
(
Property
p
)
{
p
rivate
Property
(
Property
p
)
{
this
(
p
.
getName
(),
p
.
getValue
());
}
p
ublic
Property
(
String
name
)
{
p
rivate
Property
(
String
name
)
{
this
(
name
,
null
);
}
...
...
@@ -60,16 +61,19 @@ public class Property implements Serializable {
return
value
;
}
public
void
setName
(
String
s
)
{
this
.
name
=
s
;
@Override
public
String
toString
()
{
return
name
+
" = "
+
value
+
"; "
;
}
public
void
setValue
(
String
s
)
{
this
.
value
=
s
;
@Override
public
boolean
equals
(
Object
o
)
{
if
(!(
o
instanceof
Property
))
return
false
;
Property
p2
=
(
Property
)
o
;
return
name
.
equals
(
p2
.
name
)
&&
value
.
equals
(
p2
.
value
);
}
@Override
public
String
toString
()
{
return
name
+
" = "
+
value
+
"; "
;
public
int
hashCode
()
{
return
name
.
hashCode
()
+
value
==
null
?
0
:
value
.
hashCode
()
;
}
}
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Parser.java
浏览文件 @
e1acb998
...
...
@@ -38,6 +38,7 @@ import com.sun.hotspot.igv.data.serialization.XMLParser.HandoverElementHandler;
import
com.sun.hotspot.igv.data.serialization.XMLParser.ParseMonitor
;
import
com.sun.hotspot.igv.data.serialization.XMLParser.TopElementHandler
;
import
java.io.IOException
;
import
java.util.HashMap
;
import
org.xml.sax.InputSource
;
import
org.xml.sax.SAXException
;
import
org.xml.sax.XMLReader
;
...
...
@@ -88,6 +89,18 @@ public class Parser {
private
TopElementHandler
xmlDocument
=
new
TopElementHandler
();
private
boolean
difference
;
private
GroupCallback
groupCallback
;
private
HashMap
<
String
,
Integer
>
idCache
=
new
HashMap
<
String
,
Integer
>();
private
int
maxId
=
0
;
private
int
lookupID
(
String
i
)
{
Integer
id
=
idCache
.
get
(
i
);
if
(
id
==
null
)
{
id
=
maxId
++;
idCache
.
put
(
i
,
id
);
}
return
id
.
intValue
();
}
// <graphDocument>
private
ElementHandler
<
GraphDocument
,
Object
>
topHandler
=
new
ElementHandler
<
GraphDocument
,
Object
>(
TOP_ELEMENT
)
{
...
...
@@ -187,13 +200,13 @@ public class Parser {
previous
=
null
;
}
InputGraph
curGraph
=
new
InputGraph
(
getParentObject
(),
previous
,
name
);
getParentObject
().
addGraph
(
curGraph
);
this
.
graph
=
curGraph
;
return
curGraph
;
}
@Override
protected
void
end
(
String
text
)
throws
SAXException
{
getParentObject
().
addGraph
(
graph
);
graph
.
resolveBlockLinks
();
}
};
...
...
@@ -207,7 +220,7 @@ public class Parser {
@Override
protected
InputBlock
start
()
throws
SAXException
{
InputGraph
graph
=
getParentObject
();
String
name
=
readRequiredAttribute
(
BLOCK_NAME_PROPERTY
);
String
name
=
readRequiredAttribute
(
BLOCK_NAME_PROPERTY
)
.
intern
()
;
InputBlock
b
=
new
InputBlock
(
getParentObject
(),
name
);
graph
.
addBlock
(
b
);
return
b
;
...
...
@@ -224,7 +237,7 @@ public class Parser {
int
id
=
0
;
try
{
id
=
Integer
.
parseInt
(
s
);
id
=
lookupID
(
s
);
}
catch
(
NumberFormatException
e
)
{
throw
new
SAXException
(
e
);
}
...
...
@@ -252,7 +265,7 @@ public class Parser {
String
s
=
readRequiredAttribute
(
NODE_ID_PROPERTY
);
int
id
=
0
;
try
{
id
=
Integer
.
parseInt
(
s
);
id
=
lookupID
(
s
);
}
catch
(
NumberFormatException
e
)
{
throw
new
SAXException
(
e
);
}
...
...
@@ -269,7 +282,7 @@ public class Parser {
String
s
=
readRequiredAttribute
(
NODE_ID_PROPERTY
);
int
id
=
0
;
try
{
id
=
Integer
.
parseInt
(
s
);
id
=
lookupID
(
s
);
}
catch
(
NumberFormatException
e
)
{
throw
new
SAXException
(
e
);
}
...
...
@@ -280,7 +293,7 @@ public class Parser {
private
HandoverElementHandler
<
InputGraph
>
edgesHandler
=
new
HandoverElementHandler
<
InputGraph
>(
EDGES_ELEMENT
);
// Local class for edge elements
private
static
class
EdgeElementHandler
extends
ElementHandler
<
InputEdge
,
InputGraph
>
{
private
class
EdgeElementHandler
extends
ElementHandler
<
InputEdge
,
InputGraph
>
{
public
EdgeElementHandler
(
String
name
)
{
super
(
name
);
...
...
@@ -298,8 +311,8 @@ public class Parser {
toIndex
=
Integer
.
parseInt
(
toIndexString
);
}
from
=
Integer
.
parseInt
(
readRequiredAttribute
(
FROM_PROPERTY
));
to
=
Integer
.
parseInt
(
readRequiredAttribute
(
TO_PROPERTY
));
from
=
lookupID
(
readRequiredAttribute
(
FROM_PROPERTY
));
to
=
lookupID
(
readRequiredAttribute
(
TO_PROPERTY
));
}
catch
(
NumberFormatException
e
)
{
throw
new
SAXException
(
e
);
}
...
...
@@ -344,18 +357,16 @@ public class Parser {
}
};
// <property>
private
ElementHandler
<
Property
,
Properties
.
Provider
>
propertyHandler
=
new
XMLParser
.
ElementHandler
<
Property
,
Properties
.
Provider
>(
PROPERTY_ELEMENT
,
true
)
{
private
ElementHandler
<
String
,
Properties
.
Provider
>
propertyHandler
=
new
XMLParser
.
ElementHandler
<
String
,
Properties
.
Provider
>(
PROPERTY_ELEMENT
,
true
)
{
@Override
public
Property
start
()
throws
SAXException
{
String
value
=
""
;
String
name
=
readRequiredAttribute
(
PROPERTY_NAME_PROPERTY
).
intern
();
return
getParentObject
().
getProperties
().
setProperty
(
name
,
value
);
public
String
start
()
throws
SAXException
{
return
readRequiredAttribute
(
PROPERTY_NAME_PROPERTY
).
intern
();
}
@Override
public
void
end
(
String
text
)
{
get
Object
().
setValue
(
text
.
trim
().
intern
());
get
ParentObject
().
getProperties
().
setProperty
(
getObject
(),
text
.
trim
().
intern
());
}
};
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Printer.java
浏览文件 @
e1acb998
...
...
@@ -67,7 +67,7 @@ public class Printer {
private
void
export
(
XMLWriter
writer
,
Group
g
)
throws
IOException
{
Properties
attributes
=
new
Properties
();
attributes
.
add
(
new
Property
(
"difference"
,
Boolean
.
toString
(
true
)
));
attributes
.
setProperty
(
"difference"
,
Boolean
.
toString
(
true
));
writer
.
startTag
(
Parser
.
GROUP_ELEMENT
,
attributes
);
writer
.
writeProperties
(
g
.
getProperties
());
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLParser.java
浏览文件 @
e1acb998
...
...
@@ -25,7 +25,7 @@ package com.sun.hotspot.igv.data.serialization;
import
com.sun.hotspot.igv.data.Property
;
import
com.sun.hotspot.igv.data.Properties
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.Stack
;
import
org.xml.sax.Attributes
;
import
org.xml.sax.ContentHandler
;
...
...
@@ -89,7 +89,7 @@ public class XMLParser implements ContentHandler {
private
Attributes
attr
;
private
StringBuilder
currentText
;
private
ParseMonitor
monitor
;
private
Hash
table
<
String
,
ElementHandler
<?,
?
super
T
>>
hashtable
;
private
Hash
Map
<
String
,
ElementHandler
<?,
?
super
T
>>
hashtable
;
private
boolean
needsText
;
private
ElementHandler
<
P
,
?>
parentElement
;
...
...
@@ -110,7 +110,7 @@ public class XMLParser implements ContentHandler {
}
public
ElementHandler
(
String
name
,
boolean
needsText
)
{
this
.
hashtable
=
new
Hash
table
<
String
,
ElementHandler
<?,
?
super
T
>>();
this
.
hashtable
=
new
Hash
Map
<
String
,
ElementHandler
<?,
?
super
T
>>();
this
.
name
=
name
;
this
.
needsText
=
needsText
;
}
...
...
@@ -153,7 +153,7 @@ public class XMLParser implements ContentHandler {
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
String
val
=
attr
.
getValue
(
i
).
intern
();
String
localName
=
attr
.
getLocalName
(
i
).
intern
();
p
.
add
(
new
Property
(
val
,
localName
)
);
p
.
setProperty
(
val
,
localName
);
}
}
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java
浏览文件 @
e1acb998
...
...
@@ -89,7 +89,7 @@ public class XMLWriter extends Writer {
inner
.
write
(
"<"
+
name
);
elementStack
.
push
(
name
);
for
(
Property
p
:
attributes
.
getProperties
()
)
{
for
(
Property
p
:
attributes
)
{
inner
.
write
(
" "
+
p
.
getName
()
+
"=\""
);
write
(
p
.
getValue
().
toCharArray
());
inner
.
write
(
"\""
);
...
...
@@ -101,7 +101,7 @@ public class XMLWriter extends Writer {
public
void
simpleTag
(
String
name
,
Properties
attributes
)
throws
IOException
{
inner
.
write
(
"<"
+
name
);
for
(
Property
p
:
attributes
.
getProperties
()
)
{
for
(
Property
p
:
attributes
)
{
inner
.
write
(
" "
+
p
.
getName
()
+
"=\""
);
write
(
p
.
getValue
().
toCharArray
());
inner
.
write
(
"\""
);
...
...
@@ -111,13 +111,13 @@ public class XMLWriter extends Writer {
}
public
void
writeProperties
(
Properties
props
)
throws
IOException
{
if
(
props
.
getProperties
().
size
()
==
0
)
{
if
(
props
.
getProperties
().
hasNext
()
==
false
)
{
return
;
}
startTag
(
Parser
.
PROPERTIES_ELEMENT
);
for
(
Property
p
:
props
.
getProperties
()
)
{
for
(
Property
p
:
props
)
{
startTag
(
Parser
.
PROPERTY_ELEMENT
,
new
Properties
(
Parser
.
PROPERTY_NAME_PROPERTY
,
p
.
getName
()));
this
.
write
(
p
.
getValue
().
toCharArray
());
endTag
();
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java
浏览文件 @
e1acb998
...
...
@@ -29,6 +29,7 @@ import com.sun.hotspot.igv.data.InputEdge;
import
com.sun.hotspot.igv.data.InputGraph
;
import
com.sun.hotspot.igv.data.InputNode
;
import
com.sun.hotspot.igv.data.Property
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Map
;
...
...
@@ -124,8 +125,8 @@ public class Difference {
inputNodeMap
.
put
(
n
,
n2
);
}
Set
<
InputEdge
>
edgesA
=
a
.
getEdges
();
Set
<
InputEdge
>
edgesB
=
b
.
getEdges
();
Collection
<
InputEdge
>
edgesA
=
a
.
getEdges
();
Collection
<
InputEdge
>
edgesB
=
b
.
getEdges
();
Set
<
InputEdge
>
newEdges
=
new
HashSet
<
InputEdge
>();
...
...
@@ -182,7 +183,7 @@ public class Difference {
public
double
getValue
()
{
double
result
=
0.0
;
for
(
Property
p
:
n1
.
getProperties
()
.
getProperties
()
)
{
for
(
Property
p
:
n1
.
getProperties
())
{
double
faktor
=
1.0
;
for
(
String
forbidden
:
IGNORE_PROPERTIES
)
{
if
(
p
.
getName
().
equals
(
forbidden
))
{
...
...
@@ -287,34 +288,34 @@ public class Difference {
private
static
void
markAsChanged
(
InputNode
n
,
InputNode
firstNode
,
InputNode
otherNode
)
{
boolean
difference
=
false
;
for
(
Property
p
:
otherNode
.
getProperties
()
.
getProperties
()
)
{
String
s
=
firstNode
.
getProperties
().
get
Property
(
p
.
getName
());
for
(
Property
p
:
otherNode
.
getProperties
())
{
String
s
=
firstNode
.
getProperties
().
get
(
p
.
getName
());
if
(!
p
.
getValue
().
equals
(
s
))
{
difference
=
true
;
n
.
getProperties
().
add
(
new
Property
(
OLD_PREFIX
+
p
.
getName
(),
p
.
getValue
()
));
n
.
getProperties
().
setProperty
(
OLD_PREFIX
+
p
.
getName
(),
p
.
getValue
(
));
}
}
for
(
Property
p
:
firstNode
.
getProperties
()
.
getProperties
()
)
{
String
s
=
otherNode
.
getProperties
().
get
Property
(
p
.
getName
());
for
(
Property
p
:
firstNode
.
getProperties
())
{
String
s
=
otherNode
.
getProperties
().
get
(
p
.
getName
());
if
(
s
==
null
&&
p
.
getValue
().
length
()
>
0
)
{
difference
=
true
;
n
.
getProperties
().
add
(
new
Property
(
OLD_PREFIX
+
p
.
getName
(),
""
)
);
n
.
getProperties
().
setProperty
(
OLD_PREFIX
+
p
.
getName
(),
""
);
}
}
if
(
difference
)
{
n
.
getProperties
().
add
(
new
Property
(
PROPERTY_STATE
,
VALUE_CHANGED
)
);
n
.
getProperties
().
setProperty
(
PROPERTY_STATE
,
VALUE_CHANGED
);
}
else
{
n
.
getProperties
().
add
(
new
Property
(
PROPERTY_STATE
,
VALUE_SAME
)
);
n
.
getProperties
().
setProperty
(
PROPERTY_STATE
,
VALUE_SAME
);
}
}
private
static
void
markAsDeleted
(
InputNode
n
)
{
n
.
getProperties
().
add
(
new
Property
(
PROPERTY_STATE
,
VALUE_DELETED
)
);
n
.
getProperties
().
setProperty
(
PROPERTY_STATE
,
VALUE_DELETED
);
}
private
static
void
markAsNew
(
InputNode
n
)
{
n
.
getProperties
().
add
(
new
Property
(
PROPERTY_STATE
,
VALUE_NEW
)
);
n
.
getProperties
().
setProperty
(
PROPERTY_STATE
,
VALUE_NEW
);
}
}
hotspot/src/share/tools/IdealGraphVisualizer/Filter/manifest.mf
浏览文件 @
e1acb998
Manifest-Version: 1.0
OpenIDE-Module: com.sun.hotspot.igv.filter
OpenIDE-Module-Layer: com/sun/hotspot/igv/filter/layer.xml
OpenIDE-Module-Localizing-Bundle: com/sun/hotspot/igv/filter/Bundle.properties
OpenIDE-Module-Specification-Version: 1.0
Manifest-Version: 1.0
OpenIDE-Module: com.sun.hotspot.igv.filter
OpenIDE-Module-Layer: com/sun/hotspot/igv/filter/layer.xml
OpenIDE-Module-Localizing-Bundle: com/sun/hotspot/igv/filter/Bundle.properties
OpenIDE-Module-Specification-Version: 1.0
hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java
浏览文件 @
e1acb998
...
...
@@ -25,7 +25,6 @@
package
com.sun.hotspot.igv.filter
;
import
com.sun.hotspot.igv.graph.Diagram
;
import
com.sun.hotspot.igv.data.Property
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStream
;
...
...
@@ -56,7 +55,7 @@ public class CustomFilter extends AbstractFilter {
public
CustomFilter
(
String
name
,
String
code
)
{
this
.
name
=
name
;
this
.
code
=
code
;
getProperties
().
add
(
new
Property
(
"name"
,
name
)
);
getProperties
().
setProperty
(
"name"
,
name
);
}
public
String
getName
()
{
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/SplitFilter.java
浏览文件 @
e1acb998
...
...
@@ -56,8 +56,8 @@ public class SplitFilter extends AbstractFilter {
for
(
OutputSlot
os
:
f
.
getOutputSlots
())
{
for
(
Connection
c
:
os
.
getConnections
())
{
InputSlot
is
=
c
.
getInputSlot
();
is
.
setName
(
f
.
getProperties
().
get
Property
(
"dump_spec"
));
String
s
=
f
.
getProperties
().
get
Property
(
"short_name"
);
is
.
setName
(
f
.
getProperties
().
get
(
"dump_spec"
));
String
s
=
f
.
getProperties
().
get
(
"short_name"
);
if
(
s
!=
null
)
{
is
.
setShortName
(
s
);
}
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Diagram.java
浏览文件 @
e1acb998
...
...
@@ -35,7 +35,7 @@ import java.util.Collections;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
...
...
@@ -126,7 +126,7 @@ public class Diagram {
d
.
updateBlocks
();
Collection
<
InputNode
>
nodes
=
graph
.
getNodes
();
Hash
table
<
Integer
,
Figure
>
figureHash
=
new
Hashtable
<
Integer
,
Figure
>();
Hash
Map
<
Integer
,
Figure
>
figureHash
=
new
HashMap
<
Integer
,
Figure
>();
for
(
InputNode
n
:
nodes
)
{
Figure
f
=
d
.
createFigure
();
f
.
getSource
().
addSourceNode
(
n
);
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java
浏览文件 @
e1acb998
...
...
@@ -42,7 +42,7 @@ import java.util.Set;
*
* @author Thomas Wuerthinger
*/
public
class
Figure
extends
Properties
.
Object
implements
Source
.
Provider
,
Vertex
{
public
class
Figure
extends
Properties
.
Entity
implements
Source
.
Provider
,
Vertex
{
public
static
final
int
INSET
=
6
;
public
static
final
int
SLOT_WIDTH
=
10
;
...
...
hotspot/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/Graph.java
浏览文件 @
e1acb998
...
...
@@ -26,7 +26,7 @@ package com.sun.hotspot.igv.hierarchicallayout;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Queue
;
...
...
@@ -37,13 +37,13 @@ import java.util.Queue;
*/
public
class
Graph
<
N
,
E
>
{
private
Hash
table
<
Object
,
Node
<
N
,
E
>>
nodes
;
private
Hash
table
<
Object
,
Edge
<
N
,
E
>>
edges
;
private
Hash
Map
<
Object
,
Node
<
N
,
E
>>
nodes
;
private
Hash
Map
<
Object
,
Edge
<
N
,
E
>>
edges
;
private
List
<
Node
<
N
,
E
>>
nodeList
;
public
Graph
()
{
nodes
=
new
Hash
table
<
Object
,
Node
<
N
,
E
>>();
edges
=
new
Hash
table
<
Object
,
Edge
<
N
,
E
>>();
nodes
=
new
Hash
Map
<
Object
,
Node
<
N
,
E
>>();
edges
=
new
Hash
Map
<
Object
,
Edge
<
N
,
E
>>();
nodeList
=
new
ArrayList
<
Node
<
N
,
E
>>();
}
...
...
hotspot/src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalClusterLayoutManager.java
浏览文件 @
e1acb998
...
...
@@ -25,7 +25,7 @@ package com.sun.hotspot.igv.hierarchicallayout;
import
java.awt.Point
;
import
java.awt.Rectangle
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.ArrayList
;
...
...
@@ -69,19 +69,19 @@ public class HierarchicalClusterLayoutManager implements LayoutManager {
assert
graph
.
verify
();
Hash
table
<
Cluster
,
List
<
Vertex
>>
lists
=
new
Hashtable
<
Cluster
,
List
<
Vertex
>>();
Hash
table
<
Cluster
,
List
<
Link
>>
listsConnection
=
new
Hashtable
<
Cluster
,
List
<
Link
>>();
Hash
table
<
Cluster
,
Hashtable
<
Port
,
ClusterInputSlotNode
>>
clusterInputSlotHash
=
new
Hashtable
<
Cluster
,
Hashtable
<
Port
,
ClusterInputSlotNode
>>();
Hash
table
<
Cluster
,
Hashtable
<
Port
,
ClusterOutputSlotNode
>>
clusterOutputSlotHash
=
new
Hashtable
<
Cluster
,
Hashtable
<
Port
,
ClusterOutputSlotNode
>>();
Hash
Map
<
Cluster
,
List
<
Vertex
>>
lists
=
new
HashMap
<
Cluster
,
List
<
Vertex
>>();
Hash
Map
<
Cluster
,
List
<
Link
>>
listsConnection
=
new
HashMap
<
Cluster
,
List
<
Link
>>();
Hash
Map
<
Cluster
,
HashMap
<
Port
,
ClusterInputSlotNode
>>
clusterInputSlotHash
=
new
HashMap
<
Cluster
,
HashMap
<
Port
,
ClusterInputSlotNode
>>();
Hash
Map
<
Cluster
,
HashMap
<
Port
,
ClusterOutputSlotNode
>>
clusterOutputSlotHash
=
new
HashMap
<
Cluster
,
HashMap
<
Port
,
ClusterOutputSlotNode
>>();
Hash
table
<
Cluster
,
ClusterNode
>
clusterNodes
=
new
Hashtable
<
Cluster
,
ClusterNode
>();
Hash
table
<
Cluster
,
Set
<
ClusterInputSlotNode
>>
clusterInputSlotSet
=
new
Hashtable
<
Cluster
,
Set
<
ClusterInputSlotNode
>>();
Hash
table
<
Cluster
,
Set
<
ClusterOutputSlotNode
>>
clusterOutputSlotSet
=
new
Hashtable
<
Cluster
,
Set
<
ClusterOutputSlotNode
>>();
Hash
Map
<
Cluster
,
ClusterNode
>
clusterNodes
=
new
HashMap
<
Cluster
,
ClusterNode
>();
Hash
Map
<
Cluster
,
Set
<
ClusterInputSlotNode
>>
clusterInputSlotSet
=
new
HashMap
<
Cluster
,
Set
<
ClusterInputSlotNode
>>();
Hash
Map
<
Cluster
,
Set
<
ClusterOutputSlotNode
>>
clusterOutputSlotSet
=
new
HashMap
<
Cluster
,
Set
<
ClusterOutputSlotNode
>>();
Set
<
Link
>
clusterEdges
=
new
HashSet
<
Link
>();
Set
<
Link
>
interClusterEdges
=
new
HashSet
<
Link
>();
Hash
table
<
Link
,
ClusterOutgoingConnection
>
linkClusterOutgoingConnection
=
new
Hashtable
<
Link
,
ClusterOutgoingConnection
>();
Hash
table
<
Link
,
InterClusterConnection
>
linkInterClusterConnection
=
new
Hashtable
<
Link
,
InterClusterConnection
>();
Hash
table
<
Link
,
ClusterIngoingConnection
>
linkClusterIngoingConnection
=
new
Hashtable
<
Link
,
ClusterIngoingConnection
>();
Hash
Map
<
Link
,
ClusterOutgoingConnection
>
linkClusterOutgoingConnection
=
new
HashMap
<
Link
,
ClusterOutgoingConnection
>();
Hash
Map
<
Link
,
InterClusterConnection
>
linkInterClusterConnection
=
new
HashMap
<
Link
,
InterClusterConnection
>();
Hash
Map
<
Link
,
ClusterIngoingConnection
>
linkClusterIngoingConnection
=
new
HashMap
<
Link
,
ClusterIngoingConnection
>();
Set
<
ClusterNode
>
clusterNodeSet
=
new
HashSet
<
ClusterNode
>();
Set
<
Cluster
>
cluster
=
graph
.
getClusters
();
...
...
@@ -89,8 +89,8 @@ public class HierarchicalClusterLayoutManager implements LayoutManager {
for
(
Cluster
c
:
cluster
)
{
lists
.
put
(
c
,
new
ArrayList
<
Vertex
>());
listsConnection
.
put
(
c
,
new
ArrayList
<
Link
>());
clusterInputSlotHash
.
put
(
c
,
new
Hash
table
<
Port
,
ClusterInputSlotNode
>());
clusterOutputSlotHash
.
put
(
c
,
new
Hash
table
<
Port
,
ClusterOutputSlotNode
>());
clusterInputSlotHash
.
put
(
c
,
new
Hash
Map
<
Port
,
ClusterInputSlotNode
>());
clusterOutputSlotHash
.
put
(
c
,
new
Hash
Map
<
Port
,
ClusterOutputSlotNode
>());
clusterOutputSlotSet
.
put
(
c
,
new
TreeSet
<
ClusterOutputSlotNode
>());
clusterInputSlotSet
.
put
(
c
,
new
TreeSet
<
ClusterInputSlotNode
>());
ClusterNode
cn
=
new
ClusterNode
(
c
,
""
+
z
);
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/LayoutGraph.java
浏览文件 @
e1acb998
...
...
@@ -24,7 +24,7 @@
package
com.sun.hotspot.igv.layout
;
import
java.util.HashSet
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.Set
;
import
java.util.SortedSet
;
import
java.util.TreeSet
;
...
...
@@ -37,9 +37,9 @@ public class LayoutGraph {
private
Set
<?
extends
Link
>
links
;
private
SortedSet
<
Vertex
>
vertices
;
private
Hash
table
<
Vertex
,
Set
<
Port
>>
inputPorts
;
private
Hash
table
<
Vertex
,
Set
<
Port
>>
outputPorts
;
private
Hash
table
<
Port
,
Set
<
Link
>>
portLinks
;
private
Hash
Map
<
Vertex
,
Set
<
Port
>>
inputPorts
;
private
Hash
Map
<
Vertex
,
Set
<
Port
>>
outputPorts
;
private
Hash
Map
<
Port
,
Set
<
Link
>>
portLinks
;
public
LayoutGraph
(
Set
<?
extends
Link
>
links
)
{
this
(
links
,
new
HashSet
<
Vertex
>());
...
...
@@ -50,9 +50,9 @@ public class LayoutGraph {
assert
verify
();
vertices
=
new
TreeSet
<
Vertex
>();
portLinks
=
new
Hash
table
<
Port
,
Set
<
Link
>>();
inputPorts
=
new
Hash
table
<
Vertex
,
Set
<
Port
>>();
outputPorts
=
new
Hash
table
<
Vertex
,
Set
<
Port
>>();
portLinks
=
new
Hash
Map
<
Port
,
Set
<
Link
>>();
inputPorts
=
new
Hash
Map
<
Vertex
,
Set
<
Port
>>();
outputPorts
=
new
Hash
Map
<
Vertex
,
Set
<
Port
>>();
for
(
Link
l
:
links
)
{
Port
p
=
l
.
getFrom
();
...
...
hotspot/src/share/tools/IdealGraphVisualizer/README
浏览文件 @
e1acb998
...
...
@@ -5,21 +5,16 @@ of Linz in Austria and has been included as part of hotspot since that
was the primary target of the tool. The tool itself is fairly general
with only a few modules that contain C2 specific elements.
The tool is built on top of the NetBeans 6.
0
rich client
The tool is built on top of the NetBeans 6.
1
rich client
infrastructure and so requires NetBeans to build. It currently
requires Java 6 to run as it needs support for JavaScript for its
filtering mechanism and assumes it's built into the platform. It
should build out of the box whit NetBeans 6 and Java 6 or later. It's
possible to run it on 1.5 by including Rhino on the classpath though
that currently isn't working correctly. Support for exporting graphs
as SVG can be enabled by adding batik to the classpath which isn't
included by default.
It can be built on top of NetBeans 6.1 if you change the required
modules to be platform8 instead of platform7. The tool could run on
JDK 1.5 with some reworking of the how the JavaScript support is
enabled but currently it requires some tweaking of the setup. This
will be fixed in a later setup.
should build out of the box with NetBeans 6.1 and Java 6 or later.
It's possible to run it on 1.5 by including Rhino on the classpath
though that currently isn't working correctly. Support for exporting
graphs as SVG can be enabled by adding batik to the classpath which
isn't included by default. It can be built on top of NetBeans 6.0 if
you change the required modules to be platform7 instead of platform8.
The JVM support is controlled by the flag -XX:PrintIdealGraphLevel=#
where # is:
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java
浏览文件 @
e1acb998
...
...
@@ -36,11 +36,11 @@ import org.openide.nodes.Sheet;
*/
public
class
PropertiesSheet
{
public
static
void
initializeSheet
(
Properties
properties
,
Sheet
s
)
{
public
static
void
initializeSheet
(
final
Properties
properties
,
Sheet
s
)
{
Sheet
.
Set
set1
=
Sheet
.
createPropertiesSet
();
set1
.
setDisplayName
(
"Properties"
);
for
(
final
Property
p
:
properties
.
getProperties
()
)
{
for
(
final
Property
p
:
properties
)
{
Node
.
Property
<
String
>
prop
=
new
Node
.
Property
<
String
>(
String
.
class
)
{
@Override
...
...
@@ -60,7 +60,7 @@ public class PropertiesSheet {
@Override
public
void
setValue
(
String
arg0
)
throws
IllegalAccessException
,
IllegalArgumentException
,
InvocationTargetException
{
p
.
setValue
(
arg0
);
p
roperties
.
setProperty
(
p
.
getName
(),
arg0
);
}
};
prop
.
setName
(
p
.
getName
());
...
...
hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java
浏览文件 @
e1acb998
...
...
@@ -65,13 +65,19 @@ public class RangeSliderModel implements ChangedEventProvider<RangeSliderModel>
public
RangeSliderModel
(
List
<
String
>
positions
)
{
assert
positions
.
size
()
>
0
;
this
.
positions
=
positions
;
this
.
changedEvent
=
new
ChangedEvent
<
RangeSliderModel
>(
this
);
this
.
colorChangedEvent
=
new
ChangedEvent
<
RangeSliderModel
>(
this
);
setPositions
(
positions
);
}
protected
void
setPositions
(
List
<
String
>
positions
)
{
this
.
positions
=
positions
;
colors
=
new
ArrayList
<
Color
>();
for
(
int
i
=
0
;
i
<
positions
.
size
();
i
++)
{
colors
.
add
(
Color
.
black
);
}
changedEvent
.
fire
();
colorChangedEvent
.
fire
();
}
public
void
setColors
(
List
<
Color
>
colors
)
{
...
...
hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java
浏览文件 @
e1acb998
...
...
@@ -63,7 +63,7 @@ import java.util.ArrayList;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Hash
table
;
import
java.util.Hash
Map
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
...
...
@@ -104,10 +104,10 @@ import org.openide.util.lookup.InstanceContent;
*/
public
class
DiagramScene
extends
Scene
implements
ChangedListener
<
DiagramViewModel
>
{
private
Hash
table
<
Figure
,
FigureWidget
>
figureWidgets
;
private
Hash
table
<
Slot
,
SlotWidget
>
slotWidgets
;
private
Hash
table
<
Connection
,
ConnectionWidget
>
connectionWidgets
;
private
Hash
table
<
InputBlock
,
BlockWidget
>
blockWidgets
;
private
Hash
Map
<
Figure
,
FigureWidget
>
figureWidgets
;
private
Hash
Map
<
Slot
,
SlotWidget
>
slotWidgets
;
private
Hash
Map
<
Connection
,
ConnectionWidget
>
connectionWidgets
;
private
Hash
Map
<
InputBlock
,
BlockWidget
>
blockWidgets
;
private
Widget
hoverWidget
;
private
WidgetAction
hoverAction
;
private
List
<
FigureWidget
>
selectedWidgets
;
...
...
@@ -414,7 +414,7 @@ public class DiagramScene extends Scene implements ChangedListener<DiagramViewMo
this
.
addChild
(
selectLayer
);
this
.
getActions
().
addAction
(
ActionFactory
.
createRectangularSelectAction
(
rectangularSelectDecorator
,
selectLayer
,
rectangularSelectProvider
));
blockWidgets
=
new
Hash
table
<
InputBlock
,
BlockWidget
>();
blockWidgets
=
new
Hash
Map
<
InputBlock
,
BlockWidget
>();
boolean
b
=
this
.
getUndoRedoEnabled
();
this
.
setUndoRedoEnabled
(
false
);
...
...
@@ -543,9 +543,9 @@ public class DiagramScene extends Scene implements ChangedListener<DiagramViewMo
blockLayer
.
removeChildren
();
blockWidgets
.
clear
();
figureWidgets
=
new
Hash
table
<
Figure
,
FigureWidget
>();
slotWidgets
=
new
Hash
table
<
Slot
,
SlotWidget
>();
connectionWidgets
=
new
Hash
table
<
Connection
,
ConnectionWidget
>();
figureWidgets
=
new
Hash
Map
<
Figure
,
FigureWidget
>();
slotWidgets
=
new
Hash
Map
<
Slot
,
SlotWidget
>();
connectionWidgets
=
new
Hash
Map
<
Connection
,
ConnectionWidget
>();
WidgetAction
selectAction
=
new
ExtendedSelectAction
(
selectProvider
);
Diagram
d
=
getModel
().
getDiagramToView
();
...
...
hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java
浏览文件 @
e1acb998
...
...
@@ -55,6 +55,7 @@ public class DiagramViewModel extends RangeSliderModel implements ChangedListene
private
FilterChain
filterChain
;
private
FilterChain
sequenceFilterChain
;
private
Diagram
diagram
;
private
ChangedEvent
<
DiagramViewModel
>
groupChangedEvent
;
private
ChangedEvent
<
DiagramViewModel
>
diagramChangedEvent
;
private
ChangedEvent
<
DiagramViewModel
>
viewChangedEvent
;
private
ChangedEvent
<
DiagramViewModel
>
viewPropertiesChangedEvent
;
...
...
@@ -67,6 +68,7 @@ public class DiagramViewModel extends RangeSliderModel implements ChangedListene
}
};
@Override
public
DiagramViewModel
copy
()
{
DiagramViewModel
result
=
new
DiagramViewModel
(
group
,
filterChain
,
sequenceFilterChain
);
result
.
setData
(
this
);
...
...
@@ -79,6 +81,7 @@ public class DiagramViewModel extends RangeSliderModel implements ChangedListene
boolean
viewChanged
=
false
;
boolean
viewPropertiesChanged
=
false
;
boolean
groupChanged
=
(
group
==
newModel
.
group
);
this
.
group
=
newModel
.
group
;
diagramChanged
|=
(
filterChain
!=
newModel
.
filterChain
);
this
.
filterChain
=
newModel
.
filterChain
;
...
...
@@ -97,6 +100,10 @@ public class DiagramViewModel extends RangeSliderModel implements ChangedListene
viewPropertiesChanged
|=
(
showNodeHull
!=
newModel
.
showNodeHull
);
this
.
showNodeHull
=
newModel
.
showNodeHull
;
if
(
groupChanged
)
{
groupChangedEvent
.
fire
();
}
if
(
diagramChanged
)
{
diagramChangedEvent
.
fire
();
}
...
...
@@ -143,11 +150,38 @@ public class DiagramViewModel extends RangeSliderModel implements ChangedListene
diagramChangedEvent
=
new
ChangedEvent
<
DiagramViewModel
>(
this
);
viewChangedEvent
=
new
ChangedEvent
<
DiagramViewModel
>(
this
);
viewPropertiesChangedEvent
=
new
ChangedEvent
<
DiagramViewModel
>(
this
);
groupChangedEvent
=
new
ChangedEvent
<
DiagramViewModel
>(
this
);
groupChangedEvent
.
addListener
(
groupChangedListener
);
groupChangedEvent
.
fire
();
filterChain
.
getChangedEvent
().
addListener
(
filterChainChangedListener
);
sequenceFilterChain
.
getChangedEvent
().
addListener
(
filterChainChangedListener
);
}
private
final
ChangedListener
<
DiagramViewModel
>
groupChangedListener
=
new
ChangedListener
<
DiagramViewModel
>()
{
private
Group
oldGroup
;
public
void
changed
(
DiagramViewModel
source
)
{
if
(
oldGroup
!=
null
)
{
oldGroup
.
getChangedEvent
().
removeListener
(
groupContentChangedListener
);
}
group
.
getChangedEvent
().
addListener
(
groupContentChangedListener
);
oldGroup
=
group
;
}
};
private
final
ChangedListener
<
Group
>
groupContentChangedListener
=
new
ChangedListener
<
Group
>()
{
public
void
changed
(
Group
source
)
{
assert
source
==
group
;
setPositions
(
calculateStringList
(
source
));
setSelectedNodes
(
selectedNodes
);
}
};
public
ChangedEvent
<
DiagramViewModel
>
getDiagramChangedEvent
()
{
return
diagramChangedEvent
;
}
...
...
@@ -268,7 +302,10 @@ public class DiagramViewModel extends RangeSliderModel implements ChangedListene
}
public
InputGraph
getSecondGraph
()
{
return
group
.
getGraphs
().
get
(
getSecondPosition
());
List
<
InputGraph
>
graphs
=
group
.
getGraphs
();
if
(
graphs
.
size
()
>=
getSecondPosition
())
return
group
.
getGraphs
().
get
(
getSecondPosition
());
return
getFirstGraph
();
}
public
void
selectGraph
(
InputGraph
g
)
{
...
...
hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/FindPanel.java
浏览文件 @
e1acb998
...
...
@@ -67,7 +67,7 @@ class FindPanel extends JPanel implements KeyListener {
for
(
Figure
f
:
figures
)
{
Properties
prop
=
f
.
getProperties
();
for
(
Property
p
:
prop
.
getProperties
()
)
{
for
(
Property
p
:
prop
)
{
if
(!
propertyNames
.
contains
(
p
.
getName
()))
{
propertyNames
.
add
(
p
.
getName
());
}
...
...
hotspot/src/share/tools/IdealGraphVisualizer/nbproject/platform.properties
浏览文件 @
e1acb998
# Deprecated since 5.0u1; for compatibility with 5.0:
disabled.clusters
=
\
apisupport1,
\
gsf1,
\
harness,
\
ide
8
,
\
java
1
,
\
nb6.
0
,
\
profiler
2
ide
9
,
\
java
2
,
\
nb6.
1
,
\
profiler
3
disabled.modules
=
\
org.netbeans.core.execution,
\
org.netbeans.core.multiview,
\
org.netbeans.core.output2,
\
org.netbeans.modules.applemenu,
\
org.netbeans.modules.autoupdate.services,
\
org.netbeans.modules.autoupdate.ui,
\
org.netbeans.modules.core.kit,
\
...
...
@@ -24,6 +24,6 @@ disabled.modules=\
org.openide.execution,
\
org.openide.util.enumerations
enabled.clusters
=
\
platform
7
platform
8
nbjdk.active
=
default
nbplatform.active
=
default
hotspot/src/share/tools/IdealGraphVisualizer/nbproject/project.properties
浏览文件 @
e1acb998
...
...
@@ -15,7 +15,6 @@ modules=\
${project.com.sun.hotspot.igv.difference}:
\
${project.com.sun.hotspot.igv.settings}:
\
${project.com.sun.hotspot.igv.util}:
\
${project.com.sun.hotspot.igv.rhino}:
\
${project.com.sun.hotspot.igv.svg}:
\
${project.com.sun.hotspot.connection}:
\
${project.com.sun.hotspot.igv.servercompilerscheduler}:
\
...
...
@@ -31,10 +30,10 @@ project.com.sun.hotspot.igv.filterwindow=FilterWindow
project.com.sun.hotspot.igv.graph
=
Graph
project.com.sun.hotspot.igv.hierarchicallayout
=
HierarchicalLayout
project.com.sun.hotspot.igv.layout
=
Layout
project.com.sun.hotspot.igv.rhino
=
RhinoScriptEngineProxy
project.com.sun.hotspot.igv.servercompilerscheduler
=
ServerCompiler
project.com.sun.hotspot.igv.settings
=
Settings
project.com.sun.hotspot.igv.svg
=
BatikSVGProxy
project.com.sun.hotspot.igv.view
=
View
project.com.sun.hotspot.igv.util
=
Util
run.args
=
-server -J-Xms64m -J-Xmx512m -J-da
run.args
=
-J-server -J-Xms64m -J-Xmx1g -J-da
run.args.extra
=
-J-server -J-Xms64m -J-Xmx1g -J-da
hotspot/src/share/vm/adlc/output_h.cpp
浏览文件 @
e1acb998
...
...
@@ -377,7 +377,7 @@ static uint dump_spec_constant(FILE *fp, const char *ideal_type, uint i, Operand
++
i
;
}
else
if
(
!
strcmp
(
ideal_type
,
"ConN"
))
{
fprintf
(
fp
,
" _c%d->dump
(
);
\n
"
,
i
);
fprintf
(
fp
,
" _c%d->dump
_on(st
);
\n
"
,
i
);
++
i
;
}
else
if
(
!
strcmp
(
ideal_type
,
"ConL"
))
{
...
...
hotspot/src/share/vm/opto/compile.cpp
浏览文件 @
e1acb998
...
...
@@ -551,7 +551,7 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
rethrow_exceptions
(
kit
.
transfer_exceptions_into_jvms
());
}
print_method
(
"Before RemoveUseless"
);
print_method
(
"Before RemoveUseless"
,
3
);
// Remove clutter produced by parsing.
if
(
!
failing
())
{
...
...
hotspot/src/share/vm/opto/type.cpp
浏览文件 @
e1acb998
...
...
@@ -3541,7 +3541,7 @@ intptr_t TypeNarrowOop::get_con() const {
#ifndef PRODUCT
void
TypeNarrowOop
::
dump2
(
Dict
&
d
,
uint
depth
,
outputStream
*
st
)
const
{
tty
->
print
(
"narrowoop: "
);
st
->
print
(
"narrowoop: "
);
_ooptype
->
dump2
(
d
,
depth
,
st
);
}
#endif
...
...
hotspot/src/share/vm/runtime/frame.cpp
浏览文件 @
e1acb998
...
...
@@ -83,12 +83,12 @@ void RegisterMap::print_on(outputStream* st) const {
intptr_t
*
src
=
(
intptr_t
*
)
location
(
r
);
if
(
src
!=
NULL
)
{
r
->
print
(
);
tty
->
print
(
" ["
INTPTR_FORMAT
"] = "
,
src
);
r
->
print
_on
(
st
);
st
->
print
(
" ["
INTPTR_FORMAT
"] = "
,
src
);
if
(((
uintptr_t
)
src
&
(
sizeof
(
*
src
)
-
1
))
!=
0
)
{
tty
->
print_cr
(
"<misaligned>"
);
st
->
print_cr
(
"<misaligned>"
);
}
else
{
tty
->
print_cr
(
INTPTR_FORMAT
,
*
src
);
st
->
print_cr
(
INTPTR_FORMAT
,
*
src
);
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录