Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
a4e30aa0
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看板
提交
a4e30aa0
编写于
2月 05, 2009
作者:
N
never
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6793828: G1: invariant: queues are empty when activated
Reviewed-by: jrose, kvn
上级
a0730930
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
4 addition
and
3 deletion
+4
-3
src/share/vm/opto/graphKit.cpp
src/share/vm/opto/graphKit.cpp
+3
-3
src/share/vm/opto/memnode.cpp
src/share/vm/opto/memnode.cpp
+1
-0
未找到文件。
src/share/vm/opto/graphKit.cpp
浏览文件 @
a4e30aa0
...
@@ -3233,12 +3233,11 @@ void GraphKit::g1_write_barrier_pre(Node* obj,
...
@@ -3233,12 +3233,11 @@ void GraphKit::g1_write_barrier_pre(Node* obj,
// Now some of the values
// Now some of the values
Node
*
marking
=
__
load
(
no_ctrl
,
marking_adr
,
TypeInt
::
INT
,
active_type
,
Compile
::
AliasIdxRaw
);
Node
*
marking
=
__
load
(
__
ctrl
(),
marking_adr
,
TypeInt
::
INT
,
active_type
,
Compile
::
AliasIdxRaw
);
Node
*
index
=
__
load
(
no_ctrl
,
index_adr
,
TypeInt
::
INT
,
T_INT
,
Compile
::
AliasIdxRaw
);
Node
*
buffer
=
__
load
(
no_ctrl
,
buffer_adr
,
TypeRawPtr
::
NOTNULL
,
T_ADDRESS
,
Compile
::
AliasIdxRaw
);
// if (!marking)
// if (!marking)
__
if_then
(
marking
,
BoolTest
::
ne
,
zero
);
{
__
if_then
(
marking
,
BoolTest
::
ne
,
zero
);
{
Node
*
index
=
__
load
(
__
ctrl
(),
index_adr
,
TypeInt
::
INT
,
T_INT
,
Compile
::
AliasIdxRaw
);
const
Type
*
t1
=
adr
->
bottom_type
();
const
Type
*
t1
=
adr
->
bottom_type
();
const
Type
*
t2
=
val
->
bottom_type
();
const
Type
*
t2
=
val
->
bottom_type
();
...
@@ -3246,6 +3245,7 @@ void GraphKit::g1_write_barrier_pre(Node* obj,
...
@@ -3246,6 +3245,7 @@ void GraphKit::g1_write_barrier_pre(Node* obj,
Node
*
orig
=
__
load
(
no_ctrl
,
adr
,
val_type
,
bt
,
alias_idx
);
Node
*
orig
=
__
load
(
no_ctrl
,
adr
,
val_type
,
bt
,
alias_idx
);
// if (orig != NULL)
// if (orig != NULL)
__
if_then
(
orig
,
BoolTest
::
ne
,
null
());
{
__
if_then
(
orig
,
BoolTest
::
ne
,
null
());
{
Node
*
buffer
=
__
load
(
__
ctrl
(),
buffer_adr
,
TypeRawPtr
::
NOTNULL
,
T_ADDRESS
,
Compile
::
AliasIdxRaw
);
// load original value
// load original value
// alias_idx correct??
// alias_idx correct??
...
...
src/share/vm/opto/memnode.cpp
浏览文件 @
a4e30aa0
...
@@ -1303,6 +1303,7 @@ Node *LoadNode::Ideal(PhaseGVN *phase, bool can_reshape) {
...
@@ -1303,6 +1303,7 @@ Node *LoadNode::Ideal(PhaseGVN *phase, bool can_reshape) {
Node
*
base
=
AddPNode
::
Ideal_base_and_offset
(
address
,
phase
,
ignore
);
Node
*
base
=
AddPNode
::
Ideal_base_and_offset
(
address
,
phase
,
ignore
);
if
(
base
!=
NULL
if
(
base
!=
NULL
&&
phase
->
type
(
base
)
->
higher_equal
(
TypePtr
::
NOTNULL
)
&&
phase
->
type
(
base
)
->
higher_equal
(
TypePtr
::
NOTNULL
)
&&
phase
->
C
->
get_alias_index
(
phase
->
type
(
address
)
->
is_ptr
())
!=
Compile
::
AliasIdxRaw
&&
all_controls_dominate
(
base
,
phase
->
C
->
start
()))
{
&&
all_controls_dominate
(
base
,
phase
->
C
->
start
()))
{
// A method-invariant, non-null address (constant or 'this' argument).
// A method-invariant, non-null address (constant or 'this' argument).
set_req
(
MemNode
::
Control
,
NULL
);
set_req
(
MemNode
::
Control
,
NULL
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录