Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
6becc0d2
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看板
提交
6becc0d2
编写于
8月 10, 2011
作者:
K
kvn
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7077439: Possible reference through NULL in loopPredicate.cpp:726
Summary: Use cl->is_valid_counted_loop() check. Reviewed-by: never
上级
68562bd4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
9 addition
and
7 deletion
+9
-7
src/share/vm/opto/loopPredicate.cpp
src/share/vm/opto/loopPredicate.cpp
+1
-1
src/share/vm/opto/loopTransform.cpp
src/share/vm/opto/loopTransform.cpp
+3
-3
src/share/vm/opto/loopnode.cpp
src/share/vm/opto/loopnode.cpp
+3
-3
src/share/vm/opto/superword.cpp
src/share/vm/opto/superword.cpp
+2
-0
未找到文件。
src/share/vm/opto/loopPredicate.cpp
浏览文件 @
6becc0d2
...
...
@@ -718,7 +718,7 @@ bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) {
}
CountedLoopNode
*
cl
=
NULL
;
if
(
head
->
is_
CountedL
oop
())
{
if
(
head
->
is_
valid_counted_l
oop
())
{
cl
=
head
->
as_CountedLoop
();
// do nothing for iteration-splitted loops
if
(
!
cl
->
is_normal_loop
())
return
false
;
...
...
src/share/vm/opto/loopTransform.cpp
浏览文件 @
6becc0d2
...
...
@@ -2099,7 +2099,7 @@ bool IdealLoopTree::policy_do_remove_empty_loop( PhaseIdealLoop *phase ) {
if
(
!
_head
->
is_CountedLoop
())
return
false
;
// Dead loop
CountedLoopNode
*
cl
=
_head
->
as_CountedLoop
();
if
(
!
cl
->
loopexit
())
if
(
!
cl
->
is_valid_counted_loop
())
return
false
;
// Malformed loop
if
(
!
phase
->
is_member
(
this
,
phase
->
get_ctrl
(
cl
->
loopexit
()
->
in
(
CountedLoopEndNode
::
TestValue
))))
return
false
;
// Infinite loop
...
...
@@ -2255,7 +2255,7 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_
}
CountedLoopNode
*
cl
=
_head
->
as_CountedLoop
();
if
(
!
cl
->
loopexit
())
return
true
;
// Ignore various kinds of broken loops
if
(
!
cl
->
is_valid_counted_loop
())
return
true
;
// Ignore various kinds of broken loops
// Do nothing special to pre- and post- loops
if
(
cl
->
is_pre_loop
()
||
cl
->
is_post_loop
())
return
true
;
...
...
@@ -2636,7 +2636,7 @@ bool PhaseIdealLoop::intrinsify_fill(IdealLoopTree* lpt) {
// Must have constant stride
CountedLoopNode
*
head
=
lpt
->
_head
->
as_CountedLoop
();
if
(
!
head
->
stride_is_con
()
||
!
head
->
is_normal_loop
())
{
if
(
!
head
->
is_valid_counted_loop
()
||
!
head
->
is_normal_loop
())
{
return
false
;
}
...
...
src/share/vm/opto/loopnode.cpp
浏览文件 @
6becc0d2
...
...
@@ -689,6 +689,7 @@ bool PhaseIdealLoop::is_counted_loop( Node *x, IdealLoopTree *loop ) {
Node
*
PhaseIdealLoop
::
exact_limit
(
IdealLoopTree
*
loop
)
{
assert
(
loop
->
_head
->
is_CountedLoop
(),
""
);
CountedLoopNode
*
cl
=
loop
->
_head
->
as_CountedLoop
();
assert
(
cl
->
is_valid_counted_loop
(),
""
);
if
(
!
LoopLimitCheck
||
ABS
(
cl
->
stride_con
())
==
1
||
cl
->
limit
()
->
Opcode
()
==
Op_LoopLimit
)
{
...
...
@@ -1608,14 +1609,13 @@ bool PhaseIdealLoop::is_deleteable_safept(Node* sfpt) {
void
PhaseIdealLoop
::
replace_parallel_iv
(
IdealLoopTree
*
loop
)
{
assert
(
loop
->
_head
->
is_CountedLoop
(),
""
);
CountedLoopNode
*
cl
=
loop
->
_head
->
as_CountedLoop
();
if
(
!
cl
->
is_valid_counted_loop
())
return
;
// skip malformed counted loop
Node
*
incr
=
cl
->
incr
();
if
(
incr
==
NULL
)
return
;
// Dead loop?
Node
*
init
=
cl
->
init_trip
();
Node
*
phi
=
cl
->
phi
();
// protect against stride not being a constant
if
(
!
cl
->
stride_is_con
())
return
;
int
stride_con
=
cl
->
stride_con
();
PhaseGVN
*
gvn
=
&
_igvn
;
...
...
src/share/vm/opto/superword.cpp
浏览文件 @
6becc0d2
...
...
@@ -70,6 +70,8 @@ void SuperWord::transform_loop(IdealLoopTree* lpt) {
assert
(
lpt
->
_head
->
is_CountedLoop
(),
"must be"
);
CountedLoopNode
*
cl
=
lpt
->
_head
->
as_CountedLoop
();
if
(
!
cl
->
is_valid_counted_loop
())
return
;
// skip malformed counted loop
if
(
!
cl
->
is_main_loop
()
)
return
;
// skip normal, pre, and post loops
// Check for no control flow in body (other than exit)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录