Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
58229f32
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
“f57c785366a46bf7a298770a9de21e3a42923569”上不存在“docs/uni-ad/README.md”
提交
58229f32
编写于
9月 24, 2015
作者:
A
asaha
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
c167147a
2a5f7d08
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
28 addition
and
24 deletion
+28
-24
src/share/vm/opto/block.cpp
src/share/vm/opto/block.cpp
+1
-1
src/share/vm/opto/cfgnode.cpp
src/share/vm/opto/cfgnode.cpp
+1
-1
src/share/vm/opto/compile.cpp
src/share/vm/opto/compile.cpp
+3
-3
src/share/vm/opto/domgraph.cpp
src/share/vm/opto/domgraph.cpp
+2
-2
src/share/vm/opto/gcm.cpp
src/share/vm/opto/gcm.cpp
+3
-3
src/share/vm/opto/loopnode.cpp
src/share/vm/opto/loopnode.cpp
+5
-5
src/share/vm/opto/matcher.cpp
src/share/vm/opto/matcher.cpp
+5
-5
src/share/vm/opto/node.cpp
src/share/vm/opto/node.cpp
+1
-1
src/share/vm/opto/phaseX.cpp
src/share/vm/opto/phaseX.cpp
+7
-3
未找到文件。
src/share/vm/opto/block.cpp
浏览文件 @
58229f32
...
...
@@ -393,7 +393,7 @@ uint PhaseCFG::build_cfg() {
VectorSet
visited
(
a
);
// Allocate stack with enough space to avoid frequent realloc
Node_Stack
nstack
(
a
,
C
->
unique
()
>>
1
);
Node_Stack
nstack
(
a
,
C
->
live_nodes
()
>>
1
);
nstack
.
push
(
_root
,
0
);
uint
sum
=
0
;
// Counter for blocks
...
...
src/share/vm/opto/cfgnode.cpp
浏览文件 @
58229f32
...
...
@@ -791,7 +791,7 @@ PhiNode* PhiNode::split_out_instance(const TypePtr* at, PhaseIterGVN *igvn) cons
Compile
*
C
=
igvn
->
C
;
Arena
*
a
=
Thread
::
current
()
->
resource_area
();
Node_Array
node_map
=
new
Node_Array
(
a
);
Node_Stack
stack
(
a
,
C
->
unique
()
>>
4
);
Node_Stack
stack
(
a
,
C
->
live_nodes
()
>>
4
);
PhiNode
*
nphi
=
slice_memory
(
at
);
igvn
->
register_new_node_with_optimizer
(
nphi
);
node_map
.
map
(
_idx
,
nphi
);
...
...
src/share/vm/opto/compile.cpp
浏览文件 @
58229f32
...
...
@@ -327,7 +327,7 @@ static inline bool not_a_node(const Node* n) {
// Use breadth-first pass that records state in a Unique_Node_List,
// recursive traversal is slower.
void
Compile
::
identify_useful_nodes
(
Unique_Node_List
&
useful
)
{
int
estimated_worklist_size
=
unique
();
int
estimated_worklist_size
=
live_nodes
();
useful
.
map
(
estimated_worklist_size
,
NULL
);
// preallocate space
// Initialize worklist
...
...
@@ -3212,8 +3212,8 @@ bool Compile::final_graph_reshaping() {
Final_Reshape_Counts
frc
;
// Visit everybody reachable!
// Allocate stack of size C->
unique
()/2 to avoid frequent realloc
Node_Stack
nstack
(
unique
()
>>
1
);
// Allocate stack of size C->
live_nodes
()/2 to avoid frequent realloc
Node_Stack
nstack
(
live_nodes
()
>>
1
);
final_graph_reshaping_walk
(
nstack
,
root
(),
frc
);
// Check for unreachable (from below) code (i.e., infinite loops).
...
...
src/share/vm/opto/domgraph.cpp
浏览文件 @
58229f32
...
...
@@ -505,8 +505,8 @@ void PhaseIdealLoop::Dominators() {
// Perform DFS search. Setup 'vertex' as DFS to vertex mapping. Setup
// 'semi' as vertex to DFS mapping. Set 'parent' to DFS parent.
int
NTarjan
::
DFS
(
NTarjan
*
ntarjan
,
VectorSet
&
visited
,
PhaseIdealLoop
*
pil
,
uint
*
dfsorder
)
{
// Allocate stack of size C->
unique
()/8 to avoid frequent realloc
GrowableArray
<
Node
*>
dfstack
(
pil
->
C
->
unique
()
>>
3
);
// Allocate stack of size C->
live_nodes
()/8 to avoid frequent realloc
GrowableArray
<
Node
*>
dfstack
(
pil
->
C
->
live_nodes
()
>>
3
);
Node
*
b
=
pil
->
C
->
root
();
int
dfsnum
=
1
;
dfsorder
[
b
->
_idx
]
=
dfsnum
;
// Cache parent's dfsnum for a later use
...
...
src/share/vm/opto/gcm.cpp
浏览文件 @
58229f32
...
...
@@ -118,8 +118,8 @@ void PhaseCFG::replace_block_proj_ctrl( Node *n ) {
//------------------------------schedule_pinned_nodes--------------------------
// Set the basic block for Nodes pinned into blocks
void
PhaseCFG
::
schedule_pinned_nodes
(
VectorSet
&
visited
)
{
// Allocate node stack of size C->
unique
()+8 to avoid frequent realloc
GrowableArray
<
Node
*>
spstack
(
C
->
unique
()
+
8
);
// Allocate node stack of size C->
live_nodes
()+8 to avoid frequent realloc
GrowableArray
<
Node
*>
spstack
(
C
->
live_nodes
()
+
8
);
spstack
.
push
(
_root
);
while
(
spstack
.
is_nonempty
())
{
Node
*
node
=
spstack
.
pop
();
...
...
@@ -1285,7 +1285,7 @@ void PhaseCFG::global_code_motion() {
visited
.
Clear
();
Node_List
stack
(
arena
);
// Pre-grow the list
stack
.
map
((
C
->
unique
()
>>
1
)
+
16
,
NULL
);
stack
.
map
((
C
->
live_nodes
()
>>
1
)
+
16
,
NULL
);
if
(
!
schedule_early
(
visited
,
stack
))
{
// Bailout without retry
C
->
record_method_not_compilable
(
"early schedule failed"
);
...
...
src/share/vm/opto/loopnode.cpp
浏览文件 @
58229f32
...
...
@@ -2230,7 +2230,7 @@ void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool skip_loop_opts)
// _nodes array holds the earliest legal controlling CFG node.
// Allocate stack with enough space to avoid frequent realloc
int
stack_size
=
(
C
->
unique
()
>>
1
)
+
16
;
// (unique
>>1)+16 from Java2D stats
int
stack_size
=
(
C
->
live_nodes
()
>>
1
)
+
16
;
// (live_nodes
>>1)+16 from Java2D stats
Node_Stack
nstack
(
a
,
stack_size
);
visited
.
Clear
();
...
...
@@ -2686,7 +2686,7 @@ void PhaseIdealLoop::recompute_dom_depth() {
}
}
if
(
_dom_stk
==
NULL
)
{
uint
init_size
=
C
->
unique
()
/
100
;
// Guess that 1/100 is a reasonable initial size.
uint
init_size
=
C
->
live_nodes
()
/
100
;
// Guess that 1/100 is a reasonable initial size.
if
(
init_size
<
10
)
init_size
=
10
;
_dom_stk
=
new
GrowableArray
<
uint
>
(
init_size
);
}
...
...
@@ -2776,8 +2776,8 @@ IdealLoopTree *PhaseIdealLoop::sort( IdealLoopTree *loop, IdealLoopTree *innermo
// The sort is of size number-of-control-children, which generally limits
// it to size 2 (i.e., I just choose between my 2 target loops).
void
PhaseIdealLoop
::
build_loop_tree
()
{
// Allocate stack of size C->
unique
()/2 to avoid frequent realloc
GrowableArray
<
Node
*>
bltstack
(
C
->
unique
()
>>
1
);
// Allocate stack of size C->
live_nodes
()/2 to avoid frequent realloc
GrowableArray
<
Node
*>
bltstack
(
C
->
live_nodes
()
>>
1
);
Node
*
n
=
C
->
root
();
bltstack
.
push
(
n
);
int
pre_order
=
1
;
...
...
@@ -3666,7 +3666,7 @@ void PhaseIdealLoop::dump_bad_graph(const char* msg, Node* n, Node* early, Node*
void
PhaseIdealLoop
::
dump
(
)
const
{
ResourceMark
rm
;
Arena
*
arena
=
Thread
::
current
()
->
resource_area
();
Node_Stack
stack
(
arena
,
C
->
unique
()
>>
2
);
Node_Stack
stack
(
arena
,
C
->
live_nodes
()
>>
2
);
Node_List
rpo_list
;
VectorSet
visited
(
arena
);
visited
.
set
(
C
->
top
()
->
_idx
);
...
...
src/share/vm/opto/matcher.cpp
浏览文件 @
58229f32
...
...
@@ -335,14 +335,14 @@ void Matcher::match( ) {
grow_new_node_array
(
C
->
unique
());
// Reset node counter so MachNodes start with _idx at 0
int
nodes
=
C
->
unique
();
// save value
int
live_nodes
=
C
->
live_nodes
();
C
->
set_unique
(
0
);
C
->
reset_dead_node_list
();
// Recursively match trees from old space into new space.
// Correct leaves of new-space Nodes; they point to old-space.
_visited
.
Clear
();
// Clear visit bits for xform call
C
->
set_cached_top_node
(
xform
(
C
->
top
(),
nodes
));
C
->
set_cached_top_node
(
xform
(
C
->
top
(),
live_nodes
));
if
(
!
C
->
failing
())
{
Node
*
xroot
=
xform
(
C
->
root
(),
1
);
if
(
xroot
==
NULL
)
{
...
...
@@ -995,7 +995,7 @@ class MStack: public Node_Stack {
Node
*
Matcher
::
transform
(
Node
*
n
)
{
ShouldNotCallThis
();
return
n
;
}
Node
*
Matcher
::
xform
(
Node
*
n
,
int
max_stack
)
{
// Use one stack to keep both: child's node/state and parent's node/index
MStack
mstack
(
max_stack
*
2
*
2
);
//
C->unique
() * 2 * 2
MStack
mstack
(
max_stack
*
2
*
2
);
//
usually: C->live_nodes
() * 2 * 2
mstack
.
push
(
n
,
Visit
,
NULL
,
-
1
);
// set NULL as parent to indicate root
while
(
mstack
.
is_nonempty
())
{
...
...
@@ -2021,8 +2021,8 @@ bool Matcher::is_bmi_pattern(Node *n, Node *m) {
//------------------------------find_shared------------------------------------
// Set bits if Node is shared or otherwise a root
void
Matcher
::
find_shared
(
Node
*
n
)
{
// Allocate stack of size C->
unique
() * 2 to avoid frequent realloc
MStack
mstack
(
C
->
unique
()
*
2
);
// Allocate stack of size C->
live_nodes
() * 2 to avoid frequent realloc
MStack
mstack
(
C
->
live_nodes
()
*
2
);
// Mark nodes as address_visited if they are inputs to an address expression
VectorSet
address_visited
(
Thread
::
current
()
->
resource_area
());
mstack
.
push
(
n
,
Visit
);
// Don't need to pre-visit root node
...
...
src/share/vm/opto/node.cpp
浏览文件 @
58229f32
...
...
@@ -1749,7 +1749,7 @@ static void dump_nodes(const Node* start, int d, bool only_ctrl) {
uint
depth
=
(
uint
)
ABS
(
d
);
int
direction
=
d
;
Compile
*
C
=
Compile
::
current
();
GrowableArray
<
Node
*>
nstack
(
C
->
unique
());
GrowableArray
<
Node
*>
nstack
(
C
->
live_nodes
());
nstack
.
append
(
s
);
int
begin
=
0
;
...
...
src/share/vm/opto/phaseX.cpp
浏览文件 @
58229f32
...
...
@@ -783,7 +783,7 @@ void PhaseGVN::dead_loop_check( Node *n ) {
//------------------------------PhaseIterGVN-----------------------------------
// Initialize hash table to fresh and clean for +VerifyOpto
PhaseIterGVN
::
PhaseIterGVN
(
PhaseIterGVN
*
igvn
,
const
char
*
dummy
)
:
PhaseGVN
(
igvn
,
dummy
),
_worklist
(
),
_stack
(
C
->
unique
()
>>
1
),
_stack
(
C
->
live_nodes
()
>>
1
),
_delay_transform
(
false
)
{
}
...
...
@@ -800,7 +800,11 @@ PhaseIterGVN::PhaseIterGVN( PhaseIterGVN *igvn ) : PhaseGVN(igvn),
// Initialize with previous PhaseGVN info from Parser
PhaseIterGVN
::
PhaseIterGVN
(
PhaseGVN
*
gvn
)
:
PhaseGVN
(
gvn
),
_worklist
(
*
C
->
for_igvn
()),
_stack
(
C
->
unique
()
>>
1
),
// TODO: Before incremental inlining it was allocated only once and it was fine. Now that
// the constructor is used in incremental inlining, this consumes too much memory:
// _stack(C->live_nodes() >> 1),
// So, as a band-aid, we replace this by:
_stack
(
C
->
comp_arena
(),
32
),
_delay_transform
(
false
)
{
uint
max
;
...
...
@@ -1586,7 +1590,7 @@ Node *PhaseCCP::transform( Node *n ) {
_nodes
.
map
(
n
->
_idx
,
new_node
);
// Flag as having been cloned
// Allocate stack of size _nodes.Size()/2 to avoid frequent realloc
GrowableArray
<
Node
*>
trstack
(
C
->
unique
()
>>
1
);
GrowableArray
<
Node
*>
trstack
(
C
->
live_nodes
()
>>
1
);
trstack
.
push
(
new_node
);
// Process children of cloned node
while
(
trstack
.
is_nonempty
()
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录