Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
8246dd44
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,发现更多精彩内容 >>
提交
8246dd44
编写于
2月 08, 2011
作者:
S
stefank
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7014851: Remove unused parallel compaction code
Summary: Removed. Reviewed-by: jcoomes, brutisso
上级
63edba37
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
24 addition
and
424 deletion
+24
-424
hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
.../gc_implementation/parallelScavenge/psParallelCompact.hpp
+1
-15
hotspot/src/share/vm/oops/arrayKlassKlass.cpp
hotspot/src/share/vm/oops/arrayKlassKlass.cpp
+1
-22
hotspot/src/share/vm/oops/compiledICHolderKlass.cpp
hotspot/src/share/vm/oops/compiledICHolderKlass.cpp
+1
-16
hotspot/src/share/vm/oops/constMethodKlass.cpp
hotspot/src/share/vm/oops/constMethodKlass.cpp
+1
-16
hotspot/src/share/vm/oops/constantPoolKlass.cpp
hotspot/src/share/vm/oops/constantPoolKlass.cpp
+1
-35
hotspot/src/share/vm/oops/cpCacheKlass.cpp
hotspot/src/share/vm/oops/cpCacheKlass.cpp
+1
-20
hotspot/src/share/vm/oops/cpCacheOop.cpp
hotspot/src/share/vm/oops/cpCacheOop.cpp
+1
-11
hotspot/src/share/vm/oops/cpCacheOop.hpp
hotspot/src/share/vm/oops/cpCacheOop.hpp
+1
-2
hotspot/src/share/vm/oops/instanceKlass.cpp
hotspot/src/share/vm/oops/instanceKlass.cpp
+1
-18
hotspot/src/share/vm/oops/instanceKlass.hpp
hotspot/src/share/vm/oops/instanceKlass.hpp
+1
-2
hotspot/src/share/vm/oops/instanceKlassKlass.cpp
hotspot/src/share/vm/oops/instanceKlassKlass.cpp
+1
-30
hotspot/src/share/vm/oops/instanceRefKlass.cpp
hotspot/src/share/vm/oops/instanceRefKlass.cpp
+1
-28
hotspot/src/share/vm/oops/klassKlass.cpp
hotspot/src/share/vm/oops/klassKlass.cpp
+1
-14
hotspot/src/share/vm/oops/klassPS.hpp
hotspot/src/share/vm/oops/klassPS.hpp
+3
-7
hotspot/src/share/vm/oops/klassVtable.cpp
hotspot/src/share/vm/oops/klassVtable.cpp
+1
-39
hotspot/src/share/vm/oops/klassVtable.hpp
hotspot/src/share/vm/oops/klassVtable.hpp
+1
-5
hotspot/src/share/vm/oops/methodDataKlass.cpp
hotspot/src/share/vm/oops/methodDataKlass.cpp
+1
-20
hotspot/src/share/vm/oops/methodDataOop.cpp
hotspot/src/share/vm/oops/methodDataOop.cpp
+0
-11
hotspot/src/share/vm/oops/methodDataOop.hpp
hotspot/src/share/vm/oops/methodDataOop.hpp
+1
-3
hotspot/src/share/vm/oops/methodKlass.cpp
hotspot/src/share/vm/oops/methodKlass.cpp
+1
-22
hotspot/src/share/vm/oops/objArrayKlass.cpp
hotspot/src/share/vm/oops/objArrayKlass.cpp
+0
-10
hotspot/src/share/vm/oops/objArrayKlassKlass.cpp
hotspot/src/share/vm/oops/objArrayKlassKlass.cpp
+1
-17
hotspot/src/share/vm/oops/oop.hpp
hotspot/src/share/vm/oops/oop.hpp
+1
-9
hotspot/src/share/vm/oops/oop.pcgc.inline.hpp
hotspot/src/share/vm/oops/oop.pcgc.inline.hpp
+1
-45
hotspot/src/share/vm/oops/typeArrayKlass.cpp
hotspot/src/share/vm/oops/typeArrayKlass.cpp
+0
-7
未找到文件。
hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 2005, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -1196,11 +1196,6 @@ class PSParallelCompact : AllStatic {
static
inline
void
adjust_pointer
(
oop
*
p
)
{
adjust_pointer
(
p
,
false
);
}
static
inline
void
adjust_pointer
(
narrowOop
*
p
)
{
adjust_pointer
(
p
,
false
);
}
template
<
class
T
>
static
inline
void
adjust_pointer
(
T
*
p
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
);
// Reference Processing
static
ReferenceProcessor
*
const
ref_processor
()
{
return
_ref_processor
;
}
...
...
@@ -1408,15 +1403,6 @@ inline bool PSParallelCompact::should_update_klass(klassOop k) {
return
((
HeapWord
*
)
k
)
>=
dense_prefix
(
perm_space_id
);
}
template
<
class
T
>
inline
void
PSParallelCompact
::
adjust_pointer
(
T
*
p
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
if
(
is_in
((
HeapWord
*
)
p
,
beg_addr
,
end_addr
))
{
adjust_pointer
(
p
);
}
}
#ifdef ASSERT
inline
void
PSParallelCompact
::
check_new_location
(
HeapWord
*
old_addr
,
HeapWord
*
new_addr
)
...
...
hotspot/src/share/vm/oops/arrayKlassKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -128,27 +128,6 @@ int arrayKlassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
}
return
klassKlass
::
oop_update_pointers
(
cm
,
obj
);
}
int
arrayKlassKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_klass
(),
"must be klass"
);
arrayKlass
*
ak
=
arrayKlass
::
cast
(
klassOop
(
obj
));
oop
*
p
;
p
=
ak
->
adr_component_mirror
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
ak
->
adr_lower_dimension
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
ak
->
adr_higher_dimension
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
{
HandleMark
hm
;
ak
->
vtable
()
->
oop_update_pointers
(
cm
,
beg_addr
,
end_addr
);
}
return
klassKlass
::
oop_update_pointers
(
cm
,
obj
,
beg_addr
,
end_addr
);
}
#endif // SERIALGC
// Printing
...
...
hotspot/src/share/vm/oops/compiledICHolderKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1998, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -145,21 +145,6 @@ int compiledICHolderKlass::oop_update_pointers(ParCompactionManager* cm,
PSParallelCompact
::
adjust_pointer
(
c
->
adr_holder_klass
());
return
c
->
object_size
();
}
int
compiledICHolderKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_compiledICHolder
(),
"must be compiledICHolder"
);
compiledICHolderOop
c
=
compiledICHolderOop
(
obj
);
oop
*
p
;
p
=
c
->
adr_holder_method
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
c
->
adr_holder_klass
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
return
c
->
object_size
();
}
#endif // SERIALGC
// Printing
...
...
hotspot/src/share/vm/oops/constMethodKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 2003, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -184,21 +184,6 @@ int constMethodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
}
return
cm_oop
->
object_size
();
}
int
constMethodKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_constMethod
(),
"should be constMethod"
);
constMethodOop
cm_oop
=
constMethodOop
(
obj
);
oop
*
const
beg_oop
=
MAX2
((
oop
*
)
beg_addr
,
cm_oop
->
oop_block_beg
());
oop
*
const
end_oop
=
MIN2
((
oop
*
)
end_addr
,
cm_oop
->
oop_block_end
());
for
(
oop
*
cur_oop
=
beg_oop
;
cur_oop
<
end_oop
;
++
cur_oop
)
{
PSParallelCompact
::
adjust_pointer
(
cur_oop
);
}
return
cm_oop
->
object_size
();
}
#endif // SERIALGC
// Printing
...
...
hotspot/src/share/vm/oops/constantPoolKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -279,40 +279,6 @@ int constantPoolKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
return
cp
->
object_size
();
}
int
constantPoolKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_constantPool
(),
"obj must be constant pool"
);
constantPoolOop
cp
=
(
constantPoolOop
)
obj
;
// If the tags array is null we are in the middle of allocating this constant
// pool.
if
(
cp
->
tags
()
!=
NULL
)
{
oop
*
base
=
(
oop
*
)
cp
->
base
();
oop
*
const
beg_oop
=
MAX2
((
oop
*
)
beg_addr
,
base
);
oop
*
const
end_oop
=
MIN2
((
oop
*
)
end_addr
,
base
+
cp
->
length
());
const
size_t
beg_idx
=
pointer_delta
(
beg_oop
,
base
,
sizeof
(
oop
*
));
const
size_t
end_idx
=
pointer_delta
(
end_oop
,
base
,
sizeof
(
oop
*
));
for
(
size_t
cur_idx
=
beg_idx
;
cur_idx
<
end_idx
;
++
cur_idx
,
++
base
)
{
if
(
cp
->
is_pointer_entry
(
int
(
cur_idx
)))
{
PSParallelCompact
::
adjust_pointer
(
base
);
}
}
}
oop
*
p
;
p
=
cp
->
tags_addr
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
cp
->
cache_addr
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
cp
->
operands_addr
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
cp
->
pool_holder_addr
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
return
cp
->
object_size
();
}
void
constantPoolKlass
::
oop_push_contents
(
PSPromotionManager
*
pm
,
oop
obj
)
{
assert
(
obj
->
is_constantPool
(),
"should be constant pool"
);
constantPoolOop
cp
=
(
constantPoolOop
)
obj
;
...
...
hotspot/src/share/vm/oops/cpCacheKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1998, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -203,25 +203,6 @@ constantPoolCacheKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
return
cache
->
object_size
();
}
int
constantPoolCacheKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_constantPoolCache
(),
"obj must be constant pool cache"
);
constantPoolCacheOop
cache
=
(
constantPoolCacheOop
)
obj
;
// Iteration over constant pool cache instance variables
oop
*
p
;
p
=
(
oop
*
)
cache
->
constant_pool_addr
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
// Iteration over constant pool cache entries
for
(
int
i
=
0
;
i
<
cache
->
length
();
++
i
)
{
cache
->
entry_at
(
i
)
->
update_pointers
(
beg_addr
,
end_addr
);
}
return
cache
->
object_size
();
}
#endif // SERIALGC
void
constantPoolCacheKlass
::
oop_print_on
(
oop
obj
,
outputStream
*
st
)
{
...
...
hotspot/src/share/vm/oops/cpCacheOop.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1998, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -368,16 +368,6 @@ void ConstantPoolCacheEntry::update_pointers() {
PSParallelCompact
::
adjust_pointer
((
oop
*
)
&
_f2
);
}
}
void
ConstantPoolCacheEntry
::
update_pointers
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
in_words
(
size
())
==
4
,
"check code below - may need adjustment"
);
// field[1] is always oop or NULL
PSParallelCompact
::
adjust_pointer
((
oop
*
)
&
_f1
,
beg_addr
,
end_addr
);
if
(
is_vfinal
())
{
PSParallelCompact
::
adjust_pointer
((
oop
*
)
&
_f2
,
beg_addr
,
end_addr
);
}
}
#endif // SERIALGC
// RedefineClasses() API support:
...
...
hotspot/src/share/vm/oops/cpCacheOop.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1998, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -287,7 +287,6 @@ class ConstantPoolCacheEntry VALUE_OBJ_CLASS_SPEC {
#endif // SERIALGC
void
update_pointers
();
void
update_pointers
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
);
// RedefineClasses() API support:
// If this constantPoolCacheEntry refers to old_method then update it
...
...
hotspot/src/share/vm/oops/instanceKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -1736,14 +1736,6 @@ void instanceKlass::update_static_fields() {
PSParallelCompact
::
adjust_pointer
(
p
),
\
assert_nothing
)
}
void
instanceKlass
::
update_static_fields
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
InstanceKlass_BOUNDED_OOP_ITERATE
(
\
start_of_static_fields
(),
static_oop_field_size
(),
\
beg_addr
,
end_addr
,
\
PSParallelCompact
::
adjust_pointer
(
p
),
\
assert_nothing
)
}
#endif // SERIALGC
void
instanceKlass
::
oop_follow_contents
(
oop
obj
)
{
...
...
@@ -1876,15 +1868,6 @@ int instanceKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
return
size_helper
();
}
int
instanceKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
InstanceKlass_BOUNDED_OOP_MAP_ITERATE
(
\
obj
,
beg_addr
,
end_addr
,
\
PSParallelCompact
::
adjust_pointer
(
p
),
\
assert_nothing
)
return
size_helper
();
}
void
instanceKlass
::
push_static_fields
(
PSPromotionManager
*
pm
)
{
InstanceKlass_OOP_ITERATE
(
\
start_of_static_fields
(),
static_oop_field_size
(),
\
...
...
hotspot/src/share/vm/oops/instanceKlass.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -740,7 +740,6 @@ class instanceKlass: public Klass {
void
follow_static_fields
(
ParCompactionManager
*
cm
);
void
copy_static_fields
(
ParCompactionManager
*
cm
);
void
update_static_fields
();
void
update_static_fields
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
);
#endif // SERIALGC
// Naming
...
...
hotspot/src/share/vm/oops/instanceKlassKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -353,35 +353,6 @@ int instanceKlassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
return
ik
->
object_size
();
}
int
instanceKlassKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_klass
(),
"must be a klass"
);
assert
(
klassOop
(
obj
)
->
klass_part
()
->
oop_is_instance_slow
(),
"must be instance klass"
);
instanceKlass
*
ik
=
instanceKlass
::
cast
(
klassOop
(
obj
));
ik
->
update_static_fields
(
beg_addr
,
end_addr
);
ik
->
vtable
()
->
oop_update_pointers
(
cm
,
beg_addr
,
end_addr
);
ik
->
itable
()
->
oop_update_pointers
(
cm
,
beg_addr
,
end_addr
);
oop
*
const
beg_oop
=
MAX2
((
oop
*
)
beg_addr
,
ik
->
oop_block_beg
());
oop
*
const
end_oop
=
MIN2
((
oop
*
)
end_addr
,
ik
->
oop_block_end
());
for
(
oop
*
cur_oop
=
beg_oop
;
cur_oop
<
end_oop
;
++
cur_oop
)
{
PSParallelCompact
::
adjust_pointer
(
cur_oop
);
}
// The oop_map_cache, jni_ids and jni_id_map are allocated from the C heap,
// and so don't lie within any 'Chunk' boundaries. Update them when the
// lowest addressed oop in the instanceKlass 'oop_block' is updated.
if
(
beg_oop
==
ik
->
oop_block_beg
())
{
OopClosure
*
closure
=
PSParallelCompact
::
adjust_root_pointer_closure
();
iterate_c_heap_oops
(
ik
,
closure
);
}
klassKlass
::
oop_update_pointers
(
cm
,
obj
,
beg_addr
,
end_addr
);
return
ik
->
object_size
();
}
#endif // SERIALGC
klassOop
...
...
hotspot/src/share/vm/oops/instanceRefKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -344,33 +344,6 @@ int instanceRefKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
}
return
size_helper
();
}
template
<
class
T
>
void
specialized_oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
T
*
p
;
T
*
referent_addr
=
p
=
(
T
*
)
java_lang_ref_Reference
::
referent_addr
(
obj
);
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
T
*
next_addr
=
p
=
(
T
*
)
java_lang_ref_Reference
::
next_addr
(
obj
);
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
T
*
discovered_addr
=
p
=
(
T
*
)
java_lang_ref_Reference
::
discovered_addr
(
obj
);
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
debug_only
(
trace_reference_gc
(
"instanceRefKlass::oop_update_ptrs"
,
obj
,
referent_addr
,
next_addr
,
discovered_addr
);)
}
int
instanceRefKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
instanceKlass
::
oop_update_pointers
(
cm
,
obj
,
beg_addr
,
end_addr
);
if
(
UseCompressedOops
)
{
specialized_oop_update_pointers
<
narrowOop
>
(
cm
,
obj
,
beg_addr
,
end_addr
);
}
else
{
specialized_oop_update_pointers
<
oop
>
(
cm
,
obj
,
beg_addr
,
end_addr
);
}
return
size_helper
();
}
#endif // SERIALGC
void
instanceRefKlass
::
update_nonstatic_oop_maps
(
klassOop
k
)
{
...
...
hotspot/src/share/vm/oops/klassKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -188,19 +188,6 @@ int klassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
return
oop_size
(
obj
);
}
int
klassKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
Klass
*
k
=
Klass
::
cast
(
klassOop
(
obj
));
oop
*
const
beg_oop
=
MAX2
((
oop
*
)
beg_addr
,
k
->
oop_block_beg
());
oop
*
const
end_oop
=
MIN2
((
oop
*
)
end_addr
,
k
->
oop_block_end
());
for
(
oop
*
cur_oop
=
beg_oop
;
cur_oop
<
end_oop
;
++
cur_oop
)
{
PSParallelCompact
::
adjust_pointer
(
cur_oop
);
}
return
oop_size
(
obj
);
}
#endif // SERIALGC
...
...
hotspot/src/share/vm/oops/klassPS.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 2007, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -37,17 +37,13 @@
objects that do (or may) cross chunk boundaries; it updates only those \
oops that are in the region [beg_addr, end_addr). */
\
virtual void oop_follow_contents(ParCompactionManager* cm, oop obj); \
virtual int oop_update_pointers(ParCompactionManager* cm, oop obj); \
virtual int oop_update_pointers(ParCompactionManager* cm, oop obj, \
HeapWord* beg_addr, HeapWord* end_addr);
virtual int oop_update_pointers(ParCompactionManager* cm, oop obj);
// Pure virtual version for klass.hpp
#define PARALLEL_GC_DECLS_PV \
virtual void oop_push_contents(PSPromotionManager* pm, oop obj) = 0; \
virtual void oop_follow_contents(ParCompactionManager* cm, oop obj) = 0; \
virtual int oop_update_pointers(ParCompactionManager* cm, oop obj) = 0; \
virtual int oop_update_pointers(ParCompactionManager* cm, oop obj, \
HeapWord* beg_addr, HeapWord* end_addr) = 0;
virtual int oop_update_pointers(ParCompactionManager* cm, oop obj) = 0;
#else // SERIALGC
#define PARALLEL_GC_DECLS
#define PARALLEL_GC_DECLS_PV
...
...
hotspot/src/share/vm/oops/klassVtable.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -677,25 +677,6 @@ void klassVtable::oop_update_pointers(ParCompactionManager* cm) {
PSParallelCompact
::
adjust_pointer
(
adr_method_at
(
i
));
}
}
void
klassVtable
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
const
int
n
=
length
();
const
int
entry_size
=
vtableEntry
::
size
();
int
beg_idx
=
0
;
HeapWord
*
const
method_0
=
(
HeapWord
*
)
adr_method_at
(
0
);
if
(
beg_addr
>
method_0
)
{
// it's safe to use cast, as we have guarantees on vtable size to be sane
beg_idx
=
int
((
pointer_delta
(
beg_addr
,
method_0
)
+
entry_size
-
1
)
/
entry_size
);
}
oop
*
const
beg_oop
=
adr_method_at
(
beg_idx
);
oop
*
const
end_oop
=
MIN2
((
oop
*
)
end_addr
,
adr_method_at
(
n
));
for
(
oop
*
cur_oop
=
beg_oop
;
cur_oop
<
end_oop
;
cur_oop
+=
entry_size
)
{
PSParallelCompact
::
adjust_pointer
(
cur_oop
);
}
}
#endif // SERIALGC
// Iterators
...
...
@@ -820,25 +801,6 @@ void klassItable::oop_update_pointers(ParCompactionManager* cm) {
ime
++
;
}
}
void
klassItable
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
// offset table
itableOffsetEntry
*
ioe
=
offset_entry
(
0
);
for
(
int
i
=
0
;
i
<
_size_offset_table
;
i
++
)
{
oop
*
p
=
(
oop
*
)
&
ioe
->
_interface
;
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
ioe
++
;
}
// method table
itableMethodEntry
*
ime
=
method_entry
(
0
);
for
(
int
j
=
0
;
j
<
_size_method_table
;
j
++
)
{
oop
*
p
=
(
oop
*
)
&
ime
->
_method
;
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
ime
++
;
}
}
#endif // SERIALGC
// Iterators
...
...
hotspot/src/share/vm/oops/klassVtable.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -99,8 +99,6 @@ class klassVtable : public ResourceObj {
// Parallel Old
void
oop_follow_contents
(
ParCompactionManager
*
cm
);
void
oop_update_pointers
(
ParCompactionManager
*
cm
);
void
oop_update_pointers
(
ParCompactionManager
*
cm
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
);
#endif // SERIALGC
// Iterators
...
...
@@ -295,8 +293,6 @@ class klassItable : public ResourceObj {
// Parallel Old
void
oop_follow_contents
(
ParCompactionManager
*
cm
);
void
oop_update_pointers
(
ParCompactionManager
*
cm
);
void
oop_update_pointers
(
ParCompactionManager
*
cm
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
);
#endif // SERIALGC
// Iterators
...
...
hotspot/src/share/vm/oops/methodDataKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 2000, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -188,25 +188,6 @@ int methodDataKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
}
return
m
->
object_size
();
}
int
methodDataKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_methodData
(),
"should be method data"
);
oop
*
p
;
methodDataOop
m
=
methodDataOop
(
obj
);
p
=
m
->
adr_method
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
ResourceMark
rm
;
ProfileData
*
data
;
for
(
data
=
m
->
first_data
();
m
->
is_valid
(
data
);
data
=
m
->
next_data
(
data
))
{
data
->
update_pointers
(
beg_addr
,
end_addr
);
}
return
m
->
object_size
();
}
#endif // SERIALGC
#ifndef PRODUCT
...
...
hotspot/src/share/vm/oops/methodDataOop.cpp
浏览文件 @
8246dd44
...
...
@@ -271,17 +271,6 @@ void ReceiverTypeData::update_pointers() {
}
}
}
void
ReceiverTypeData
::
update_pointers
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
// The loop bounds could be computed based on beg_addr/end_addr and the
// boundary test hoisted outside the loop (see klassVTable for an example);
// however, row_limit() is small enough (2) to make that less efficient.
for
(
uint
row
=
0
;
row
<
row_limit
();
row
++
)
{
if
(
receiver_unchecked
(
row
)
!=
NULL
)
{
PSParallelCompact
::
adjust_pointer
(
adr_receiver
(
row
),
beg_addr
,
end_addr
);
}
}
}
#endif // SERIALGC
#ifndef PRODUCT
...
...
hotspot/src/share/vm/oops/methodDataOop.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 2000, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -452,7 +452,6 @@ public:
// Parallel old support
virtual
void
follow_contents
(
ParCompactionManager
*
cm
)
{}
virtual
void
update_pointers
()
{}
virtual
void
update_pointers
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{}
#endif // SERIALGC
// CI translation: ProfileData can represent both MethodDataOop data
...
...
@@ -748,7 +747,6 @@ public:
// Parallel old support
virtual
void
follow_contents
(
ParCompactionManager
*
cm
);
virtual
void
update_pointers
();
virtual
void
update_pointers
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
);
#endif // SERIALGC
oop
*
adr_receiver
(
uint
row
)
{
...
...
hotspot/src/share/vm/oops/methodKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -214,27 +214,6 @@ int methodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
#endif // COMPILER2
return
m
->
object_size
();
}
int
methodKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_method
(),
"should be method"
);
oop
*
p
;
methodOop
m
=
methodOop
(
obj
);
p
=
m
->
adr_constMethod
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
m
->
adr_constants
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
#ifdef COMPILER2
if
(
m
->
method_data
()
!=
NULL
)
{
p
=
m
->
adr_method_data
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
}
#endif // COMPILER2
return
m
->
object_size
();
}
#endif // SERIALGC
#ifndef PRODUCT
...
...
hotspot/src/share/vm/oops/objArrayKlass.cpp
浏览文件 @
8246dd44
...
...
@@ -470,16 +470,6 @@ int objArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
ObjArrayKlass_OOP_ITERATE
(
a
,
p
,
PSParallelCompact
::
adjust_pointer
(
p
))
return
a
->
object_size
();
}
int
objArrayKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_objArray
(),
"obj must be obj array"
);
objArrayOop
a
=
objArrayOop
(
obj
);
ObjArrayKlass_BOUNDED_OOP_ITERATE
(
\
a
,
p
,
beg_addr
,
end_addr
,
\
PSParallelCompact
::
adjust_pointer
(
p
))
return
a
->
object_size
();
}
#endif // SERIALGC
// JVM support
...
...
hotspot/src/share/vm/oops/objArrayKlassKlass.cpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -254,22 +254,6 @@ int objArrayKlassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
return
arrayKlassKlass
::
oop_update_pointers
(
cm
,
obj
);
}
int
objArrayKlassKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_klass
(),
"must be klass"
);
assert
(
klassOop
(
obj
)
->
klass_part
()
->
oop_is_objArray_slow
(),
"must be obj array"
);
oop
*
p
;
objArrayKlass
*
oak
=
objArrayKlass
::
cast
((
klassOop
)
obj
);
p
=
oak
->
element_klass_addr
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
p
=
oak
->
bottom_klass_addr
();
PSParallelCompact
::
adjust_pointer
(
p
,
beg_addr
,
end_addr
);
return
arrayKlassKlass
::
oop_update_pointers
(
cm
,
obj
,
beg_addr
,
end_addr
);
}
#endif // SERIALGC
#ifndef PRODUCT
...
...
hotspot/src/share/vm/oops/oop.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 1997, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -322,13 +322,6 @@ class oopDesc {
// Parallel Old
void
update_contents
(
ParCompactionManager
*
cm
);
void
update_contents
(
ParCompactionManager
*
cm
,
HeapWord
*
begin_limit
,
HeapWord
*
end_limit
);
void
update_contents
(
ParCompactionManager
*
cm
,
klassOop
old_klass
,
HeapWord
*
begin_limit
,
HeapWord
*
end_limit
);
void
follow_contents
(
ParCompactionManager
*
cm
);
void
follow_header
(
ParCompactionManager
*
cm
);
...
...
@@ -369,7 +362,6 @@ class oopDesc {
#ifndef SERIALGC
// Parallel old
void
update_header
();
void
update_header
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
);
#endif // SERIALGC
// mark-sweep support
...
...
hotspot/src/share/vm/oops/oop.pcgc.inline.hpp
浏览文件 @
8246dd44
/*
* Copyright (c) 2005, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
1
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -57,41 +57,6 @@ inline void oopDesc::update_contents(ParCompactionManager* cm) {
// Else skip it. The typeArrayKlass in the header never needs scavenging.
}
inline
void
oopDesc
::
update_contents
(
ParCompactionManager
*
cm
,
HeapWord
*
begin_limit
,
HeapWord
*
end_limit
)
{
// The klass field must be updated before anything else
// can be done.
debug_only
(
klassOopDesc
*
original_klass
=
klass
());
update_contents
(
cm
,
klass
(),
begin_limit
,
end_limit
);
}
inline
void
oopDesc
::
update_contents
(
ParCompactionManager
*
cm
,
klassOop
old_klass
,
HeapWord
*
begin_limit
,
HeapWord
*
end_limit
)
{
klassOop
updated_klass
=
PSParallelCompact
::
summary_data
().
calc_new_klass
(
old_klass
);
// Needs to be boundary aware for the 64 bit case
// update_header();
// The klass has moved. Is the location of the klass
// within the limits?
if
((((
HeapWord
*
)
&
_metadata
.
_klass
)
>=
begin_limit
)
&&
(((
HeapWord
*
)
&
_metadata
.
_klass
)
<
end_limit
))
{
set_klass
(
updated_klass
);
}
Klass
*
klass
=
updated_klass
->
klass_part
();
if
(
!
klass
->
oop_is_typeArray
())
{
// It might contain oops beyond the header, so take the virtual call.
klass
->
oop_update_pointers
(
cm
,
this
,
begin_limit
,
end_limit
);
}
// Else skip it. The typeArrayKlass in the header never needs scavenging.
}
inline
void
oopDesc
::
follow_contents
(
ParCompactionManager
*
cm
)
{
assert
(
PSParallelCompact
::
mark_bitmap
()
->
is_marked
(
this
),
"should be marked"
);
...
...
@@ -140,13 +105,4 @@ inline void oopDesc::update_header() {
}
}
inline
void
oopDesc
::
update_header
(
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
if
(
UseCompressedOops
)
{
PSParallelCompact
::
adjust_pointer
(
compressed_klass_addr
(),
beg_addr
,
end_addr
);
}
else
{
PSParallelCompact
::
adjust_pointer
(
klass_addr
(),
beg_addr
,
end_addr
);
}
}
#endif // SHARE_VM_OOPS_OOP_PCGC_INLINE_HPP
hotspot/src/share/vm/oops/typeArrayKlass.cpp
浏览文件 @
8246dd44
...
...
@@ -250,13 +250,6 @@ typeArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
assert
(
obj
->
is_typeArray
(),
"must be a type array"
);
return
typeArrayOop
(
obj
)
->
object_size
();
}
int
typeArrayKlass
::
oop_update_pointers
(
ParCompactionManager
*
cm
,
oop
obj
,
HeapWord
*
beg_addr
,
HeapWord
*
end_addr
)
{
assert
(
obj
->
is_typeArray
(),
"must be a type array"
);
return
typeArrayOop
(
obj
)
->
object_size
();
}
#endif // SERIALGC
void
typeArrayKlass
::
initialize
(
TRAPS
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录