Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
4ef0e12b
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看板
提交
4ef0e12b
编写于
4月 28, 2011
作者:
N
never
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7032162: assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr
Reviewed-by: kvn
上级
2750149d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
4 deletion
+14
-4
src/share/vm/ci/ciObject.cpp
src/share/vm/ci/ciObject.cpp
+10
-0
src/share/vm/opto/stringopts.cpp
src/share/vm/opto/stringopts.cpp
+4
-4
未找到文件。
src/share/vm/ci/ciObject.cpp
浏览文件 @
4ef0e12b
...
@@ -194,6 +194,16 @@ bool ciObject::can_be_constant() {
...
@@ -194,6 +194,16 @@ bool ciObject::can_be_constant() {
// ciObject::should_be_constant()
// ciObject::should_be_constant()
bool
ciObject
::
should_be_constant
()
{
bool
ciObject
::
should_be_constant
()
{
if
(
ScavengeRootsInCode
>=
2
)
return
true
;
// force everybody to be a constant
if
(
ScavengeRootsInCode
>=
2
)
return
true
;
// force everybody to be a constant
if
(
!
JavaObjectsInPerm
&&
!
is_null_object
())
{
// We want Strings and Classes to be embeddable by default since
// they used to be in the perm world. Not all Strings used to be
// embeddable but there's no easy way to distinguish the interned
// from the regulars ones so just treat them all that way.
ciEnv
*
env
=
CURRENT_ENV
;
if
(
klass
()
==
env
->
String_klass
()
||
klass
()
==
env
->
Class_klass
())
{
return
true
;
}
}
return
handle
()
==
NULL
||
!
is_scavengable
();
return
handle
()
==
NULL
||
!
is_scavengable
();
}
}
...
...
src/share/vm/opto/stringopts.cpp
浏览文件 @
4ef0e12b
...
@@ -1172,16 +1172,16 @@ void PhaseStringOpts::int_getChars(GraphKit& kit, Node* arg, Node* char_array, N
...
@@ -1172,16 +1172,16 @@ void PhaseStringOpts::int_getChars(GraphKit& kit, Node* arg, Node* char_array, N
Node
*
PhaseStringOpts
::
copy_string
(
GraphKit
&
kit
,
Node
*
str
,
Node
*
char_array
,
Node
*
start
)
{
Node
*
PhaseStringOpts
::
copy_string
(
GraphKit
&
kit
,
Node
*
str
,
Node
*
char_array
,
Node
*
start
)
{
Node
*
string
=
str
;
Node
*
string
=
str
;
Node
*
offset
=
kit
.
make_load
(
NULL
,
Node
*
offset
=
kit
.
make_load
(
kit
.
control
()
,
kit
.
basic_plus_adr
(
string
,
string
,
java_lang_String
::
offset_offset_in_bytes
()),
kit
.
basic_plus_adr
(
string
,
string
,
java_lang_String
::
offset_offset_in_bytes
()),
TypeInt
::
INT
,
T_INT
,
offset_field_idx
);
TypeInt
::
INT
,
T_INT
,
offset_field_idx
);
Node
*
count
=
kit
.
make_load
(
NULL
,
Node
*
count
=
kit
.
make_load
(
kit
.
control
()
,
kit
.
basic_plus_adr
(
string
,
string
,
java_lang_String
::
count_offset_in_bytes
()),
kit
.
basic_plus_adr
(
string
,
string
,
java_lang_String
::
count_offset_in_bytes
()),
TypeInt
::
INT
,
T_INT
,
count_field_idx
);
TypeInt
::
INT
,
T_INT
,
count_field_idx
);
const
TypeAryPtr
*
value_type
=
TypeAryPtr
::
make
(
TypePtr
::
NotNull
,
const
TypeAryPtr
*
value_type
=
TypeAryPtr
::
make
(
TypePtr
::
NotNull
,
TypeAry
::
make
(
TypeInt
::
CHAR
,
TypeInt
::
POS
),
TypeAry
::
make
(
TypeInt
::
CHAR
,
TypeInt
::
POS
),
ciTypeArrayKlass
::
make
(
T_CHAR
),
true
,
0
);
ciTypeArrayKlass
::
make
(
T_CHAR
),
true
,
0
);
Node
*
value
=
kit
.
make_load
(
NULL
,
Node
*
value
=
kit
.
make_load
(
kit
.
control
()
,
kit
.
basic_plus_adr
(
string
,
string
,
java_lang_String
::
value_offset_in_bytes
()),
kit
.
basic_plus_adr
(
string
,
string
,
java_lang_String
::
value_offset_in_bytes
()),
value_type
,
T_OBJECT
,
value_field_idx
);
value_type
,
T_OBJECT
,
value_field_idx
);
...
@@ -1342,7 +1342,7 @@ void PhaseStringOpts::replace_string_concat(StringConcat* sc) {
...
@@ -1342,7 +1342,7 @@ void PhaseStringOpts::replace_string_concat(StringConcat* sc) {
}
}
// Node* offset = kit.make_load(NULL, kit.basic_plus_adr(arg, arg, offset_offset),
// Node* offset = kit.make_load(NULL, kit.basic_plus_adr(arg, arg, offset_offset),
// TypeInt::INT, T_INT, offset_field_idx);
// TypeInt::INT, T_INT, offset_field_idx);
Node
*
count
=
kit
.
make_load
(
NULL
,
kit
.
basic_plus_adr
(
arg
,
arg
,
java_lang_String
::
count_offset_in_bytes
()),
Node
*
count
=
kit
.
make_load
(
kit
.
control
()
,
kit
.
basic_plus_adr
(
arg
,
arg
,
java_lang_String
::
count_offset_in_bytes
()),
TypeInt
::
INT
,
T_INT
,
count_field_idx
);
TypeInt
::
INT
,
T_INT
,
count_field_idx
);
length
=
__
AddI
(
length
,
count
);
length
=
__
AddI
(
length
,
count
);
string_sizes
->
init_req
(
argi
,
NULL
);
string_sizes
->
init_req
(
argi
,
NULL
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录