Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
8c0b891f
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看板
提交
8c0b891f
编写于
7月 01, 2015
作者:
A
asaha
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
33f5a07b
1a8ed75d
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
191 addition
and
105 deletion
+191
-105
.hgtags
.hgtags
+2
-0
THIRD_PARTY_README
THIRD_PARTY_README
+4
-35
make/hotspot_version
make/hotspot_version
+1
-1
src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
+1
-1
src/share/vm/ci/ciMethod.cpp
src/share/vm/ci/ciMethod.cpp
+2
-4
src/share/vm/ci/ciMethod.hpp
src/share/vm/ci/ciMethod.hpp
+3
-7
src/share/vm/classfile/classFileParser.cpp
src/share/vm/classfile/classFileParser.cpp
+6
-0
src/share/vm/classfile/classFileParser.hpp
src/share/vm/classfile/classFileParser.hpp
+1
-0
src/share/vm/classfile/vmSymbols.hpp
src/share/vm/classfile/vmSymbols.hpp
+1
-0
src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp
src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp
+1
-1
src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp
src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp
+1
-1
src/share/vm/oops/method.cpp
src/share/vm/oops/method.cpp
+1
-0
src/share/vm/oops/method.hpp
src/share/vm/oops/method.hpp
+20
-16
src/share/vm/opto/compile.cpp
src/share/vm/opto/compile.cpp
+0
-6
src/share/vm/opto/library_call.cpp
src/share/vm/opto/library_call.cpp
+0
-2
src/share/vm/runtime/deoptimization.cpp
src/share/vm/runtime/deoptimization.cpp
+4
-1
test/compiler/jsr292/PollutedTrapCounts.java
test/compiler/jsr292/PollutedTrapCounts.java
+109
-0
test/gc/g1/TestGCLogMessages.java
test/gc/g1/TestGCLogMessages.java
+1
-1
test/runtime/InitialThreadOverflow/testme.sh
test/runtime/InitialThreadOverflow/testme.sh
+1
-1
test/serviceability/jvmti/GetObjectSizeOverflow.java
test/serviceability/jvmti/GetObjectSizeOverflow.java
+1
-1
test/testlibrary/com/oracle/java/testlibrary/Platform.java
test/testlibrary/com/oracle/java/testlibrary/Platform.java
+4
-0
test/testlibrary/ctw/Makefile
test/testlibrary/ctw/Makefile
+1
-1
test/testlibrary/ctw/README
test/testlibrary/ctw/README
+23
-23
test/testlibrary/whitebox/Makefile
test/testlibrary/whitebox/Makefile
+1
-1
test/testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java
...ibrary_tests/TestMutuallyExclusivePlatformPredicates.java
+2
-2
未找到文件。
.hgtags
浏览文件 @
8c0b891f
...
@@ -676,3 +676,5 @@ e01a710549a962cee94728271248a7d89fb56c49 hs25.60-b20
...
@@ -676,3 +676,5 @@ e01a710549a962cee94728271248a7d89fb56c49 hs25.60-b20
3b6c97747ccc61d189bca64b4afa3ffc13680810 jdk8u60-b20
3b6c97747ccc61d189bca64b4afa3ffc13680810 jdk8u60-b20
4b6687a4f2fe84211b8b3b5afb34b5186afbddf6 hs25.60-b21
4b6687a4f2fe84211b8b3b5afb34b5186afbddf6 hs25.60-b21
e0d75c284bd1c09fd7d9ef09627d8a99b88d468d jdk8u60-b21
e0d75c284bd1c09fd7d9ef09627d8a99b88d468d jdk8u60-b21
ff8fdeb2fb6d6f3348597339c53412f8f6202c3f hs25.60-b22
878cb0df27c22c6b1e9f4add1eb3da3edc8ab51d jdk8u60-b22
THIRD_PARTY_README
浏览文件 @
8c0b891f
...
@@ -1140,37 +1140,6 @@ included with JRE 8, JDK 8, and OpenJDK 8.
...
@@ -1140,37 +1140,6 @@ included with JRE 8, JDK 8, and OpenJDK 8.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
%% This notice is provided with respect to JSON, which may be included
with JRE 8 & JDK 8.
--- begin of LICENSE ---
Copyright (c) 2002 JSON.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The Software shall be used for Good, not Evil.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
--- end of LICENSE ---
-------------------------------------------------------------------------------
%% This notice is provided with respect to Kerberos functionality, which
%% This notice is provided with respect to Kerberos functionality, which
which may be included with JRE 8, JDK 8, and OpenJDK 8.
which may be included with JRE 8, JDK 8, and OpenJDK 8.
...
@@ -1250,7 +1219,7 @@ included with JDK 8 and OpenJDK 8 source distributions.
...
@@ -1250,7 +1219,7 @@ included with JDK 8 and OpenJDK 8 source distributions.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
%% This notice is provided with respect to libpng 1.6.16, which may be
%% This notice is provided with respect to libpng 1.6.16, which may be
included with JRE 8, JDK 8, and OpenJDK 8.
included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
--- begin of LICENSE ---
...
@@ -1370,7 +1339,7 @@ December 22, 2014
...
@@ -1370,7 +1339,7 @@ December 22, 2014
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
%% This notice is provided with respect to libungif 4.1.3, which may be
%% This notice is provided with respect to
GIFLIB 5.1.1 &
libungif 4.1.3, which may be
included with JRE 8, JDK 8, and OpenJDK 8.
included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
--- begin of LICENSE ---
...
@@ -1399,13 +1368,13 @@ THE SOFTWARE.
...
@@ -1399,13 +1368,13 @@ THE SOFTWARE.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
%% This notice is provided with respect to Little CMS 2.
5
, which may be
%% This notice is provided with respect to Little CMS 2.
7
, which may be
included with JRE 8, JDK 8, and OpenJDK 8.
included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
--- begin of LICENSE ---
Little CMS
Little CMS
Copyright (c) 1998-201
1
Marti Maria Saguer
Copyright (c) 1998-201
5
Marti Maria Saguer
Permission is hereby granted, free of charge, to any person obtaining a copy
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
of this software and associated documentation files (the "Software"), to deal
...
...
make/hotspot_version
浏览文件 @
8c0b891f
...
@@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2015
...
@@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2015
HS_MAJOR_VER=25
HS_MAJOR_VER=25
HS_MINOR_VER=60
HS_MINOR_VER=60
HS_BUILD_NUMBER=2
1
HS_BUILD_NUMBER=2
2
JDK_MAJOR_VER=1
JDK_MAJOR_VER=1
JDK_MINOR_VER=8
JDK_MINOR_VER=8
...
...
src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
浏览文件 @
8c0b891f
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
* This code is distributed in the hope that it will be useful, but WITHOUT
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file hat
* version 2 for more details (a copy is included in the LICENSE file
t
hat
* accompanied this code).
* accompanied this code).
*
*
* You should have received a copy of the GNU General Public License version
* You should have received a copy of the GNU General Public License version
...
...
src/share/vm/ci/ciMethod.cpp
浏览文件 @
8c0b891f
...
@@ -70,8 +70,7 @@
...
@@ -70,8 +70,7 @@
// Loaded method.
// Loaded method.
ciMethod
::
ciMethod
(
methodHandle
h_m
,
ciInstanceKlass
*
holder
)
:
ciMethod
::
ciMethod
(
methodHandle
h_m
,
ciInstanceKlass
*
holder
)
:
ciMetadata
(
h_m
()),
ciMetadata
(
h_m
()),
_holder
(
holder
),
_holder
(
holder
)
_has_injected_profile
(
false
)
{
{
assert
(
h_m
()
!=
NULL
,
"no null method"
);
assert
(
h_m
()
!=
NULL
,
"no null method"
);
...
@@ -168,8 +167,7 @@ ciMethod::ciMethod(ciInstanceKlass* holder,
...
@@ -168,8 +167,7 @@ ciMethod::ciMethod(ciInstanceKlass* holder,
_liveness
(
NULL
),
_liveness
(
NULL
),
_can_be_statically_bound
(
false
),
_can_be_statically_bound
(
false
),
_method_blocks
(
NULL
),
_method_blocks
(
NULL
),
_method_data
(
NULL
),
_method_data
(
NULL
)
_has_injected_profile
(
false
)
#if defined(COMPILER2) || defined(SHARK)
#if defined(COMPILER2) || defined(SHARK)
,
,
_flow
(
NULL
),
_flow
(
NULL
),
...
...
src/share/vm/ci/ciMethod.hpp
浏览文件 @
8c0b891f
...
@@ -78,7 +78,6 @@ class ciMethod : public ciMetadata {
...
@@ -78,7 +78,6 @@ class ciMethod : public ciMetadata {
bool
_is_c1_compilable
;
bool
_is_c1_compilable
;
bool
_is_c2_compilable
;
bool
_is_c2_compilable
;
bool
_can_be_statically_bound
;
bool
_can_be_statically_bound
;
bool
_has_injected_profile
;
// Lazy fields, filled in on demand
// Lazy fields, filled in on demand
address
_code
;
address
_code
;
...
@@ -173,9 +172,9 @@ class ciMethod : public ciMetadata {
...
@@ -173,9 +172,9 @@ class ciMethod : public ciMetadata {
// Code size for inlining decisions.
// Code size for inlining decisions.
int
code_size_for_inlining
();
int
code_size_for_inlining
();
bool
caller_sensitive
()
{
return
get_Method
()
->
caller_sensitive
();
}
bool
caller_sensitive
()
const
{
return
get_Method
()
->
caller_sensitive
();
}
bool
force_inline
()
{
return
get_Method
()
->
force_inline
();
}
bool
force_inline
()
const
{
return
get_Method
()
->
force_inline
();
}
bool
dont_inline
()
{
return
get_Method
()
->
dont_inline
();
}
bool
dont_inline
()
const
{
return
get_Method
()
->
dont_inline
();
}
int
comp_level
();
int
comp_level
();
int
highest_osr_comp_level
();
int
highest_osr_comp_level
();
...
@@ -283,9 +282,6 @@ class ciMethod : public ciMetadata {
...
@@ -283,9 +282,6 @@ class ciMethod : public ciMetadata {
int
instructions_size
();
int
instructions_size
();
int
scale_count
(
int
count
,
float
prof_factor
=
1.
);
// make MDO count commensurate with IIC
int
scale_count
(
int
count
,
float
prof_factor
=
1.
);
// make MDO count commensurate with IIC
bool
has_injected_profile
()
const
{
return
_has_injected_profile
;
}
void
set_injected_profile
(
bool
x
)
{
_has_injected_profile
=
x
;
}
// Stack walking support
// Stack walking support
bool
is_ignored_by_security_stack_walk
()
const
;
bool
is_ignored_by_security_stack_walk
()
const
;
...
...
src/share/vm/classfile/classFileParser.cpp
浏览文件 @
8c0b891f
...
@@ -1783,6 +1783,10 @@ ClassFileParser::AnnotationCollector::annotation_index(ClassLoaderData* loader_d
...
@@ -1783,6 +1783,10 @@ ClassFileParser::AnnotationCollector::annotation_index(ClassLoaderData* loader_d
if
(
_location
!=
_in_method
)
break
;
// only allow for methods
if
(
_location
!=
_in_method
)
break
;
// only allow for methods
if
(
!
privileged
)
break
;
// only allow in privileged code
if
(
!
privileged
)
break
;
// only allow in privileged code
return
_method_DontInline
;
return
_method_DontInline
;
case
vmSymbols
::
VM_SYMBOL_ENUM_NAME
(
java_lang_invoke_InjectedProfile_signature
):
if
(
_location
!=
_in_method
)
break
;
// only allow for methods
if
(
!
privileged
)
break
;
// only allow in privileged code
return
_method_InjectedProfile
;
case
vmSymbols
::
VM_SYMBOL_ENUM_NAME
(
java_lang_invoke_LambdaForm_Compiled_signature
):
case
vmSymbols
::
VM_SYMBOL_ENUM_NAME
(
java_lang_invoke_LambdaForm_Compiled_signature
):
if
(
_location
!=
_in_method
)
break
;
// only allow for methods
if
(
_location
!=
_in_method
)
break
;
// only allow for methods
if
(
!
privileged
)
break
;
// only allow in privileged code
if
(
!
privileged
)
break
;
// only allow in privileged code
...
@@ -1824,6 +1828,8 @@ void ClassFileParser::MethodAnnotationCollector::apply_to(methodHandle m) {
...
@@ -1824,6 +1828,8 @@ void ClassFileParser::MethodAnnotationCollector::apply_to(methodHandle m) {
m
->
set_force_inline
(
true
);
m
->
set_force_inline
(
true
);
if
(
has_annotation
(
_method_DontInline
))
if
(
has_annotation
(
_method_DontInline
))
m
->
set_dont_inline
(
true
);
m
->
set_dont_inline
(
true
);
if
(
has_annotation
(
_method_InjectedProfile
))
m
->
set_has_injected_profile
(
true
);
if
(
has_annotation
(
_method_LambdaForm_Compiled
)
&&
m
->
intrinsic_id
()
==
vmIntrinsics
::
_none
)
if
(
has_annotation
(
_method_LambdaForm_Compiled
)
&&
m
->
intrinsic_id
()
==
vmIntrinsics
::
_none
)
m
->
set_intrinsic_id
(
vmIntrinsics
::
_compiledLambdaForm
);
m
->
set_intrinsic_id
(
vmIntrinsics
::
_compiledLambdaForm
);
if
(
has_annotation
(
_method_LambdaForm_Hidden
))
if
(
has_annotation
(
_method_LambdaForm_Hidden
))
...
...
src/share/vm/classfile/classFileParser.hpp
浏览文件 @
8c0b891f
...
@@ -126,6 +126,7 @@ class ClassFileParser VALUE_OBJ_CLASS_SPEC {
...
@@ -126,6 +126,7 @@ class ClassFileParser VALUE_OBJ_CLASS_SPEC {
_method_CallerSensitive
,
_method_CallerSensitive
,
_method_ForceInline
,
_method_ForceInline
,
_method_DontInline
,
_method_DontInline
,
_method_InjectedProfile
,
_method_LambdaForm_Compiled
,
_method_LambdaForm_Compiled
,
_method_LambdaForm_Hidden
,
_method_LambdaForm_Hidden
,
_sun_misc_Contended
,
_sun_misc_Contended
,
...
...
src/share/vm/classfile/vmSymbols.hpp
浏览文件 @
8c0b891f
...
@@ -278,6 +278,7 @@
...
@@ -278,6 +278,7 @@
template(java_lang_invoke_LambdaForm, "java/lang/invoke/LambdaForm") \
template(java_lang_invoke_LambdaForm, "java/lang/invoke/LambdaForm") \
template(java_lang_invoke_ForceInline_signature, "Ljava/lang/invoke/ForceInline;") \
template(java_lang_invoke_ForceInline_signature, "Ljava/lang/invoke/ForceInline;") \
template(java_lang_invoke_DontInline_signature, "Ljava/lang/invoke/DontInline;") \
template(java_lang_invoke_DontInline_signature, "Ljava/lang/invoke/DontInline;") \
template(java_lang_invoke_InjectedProfile_signature, "Ljava/lang/invoke/InjectedProfile;") \
template(java_lang_invoke_Stable_signature, "Ljava/lang/invoke/Stable;") \
template(java_lang_invoke_Stable_signature, "Ljava/lang/invoke/Stable;") \
template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \
template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \
template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \
template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \
...
...
src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp
浏览文件 @
8c0b891f
/*
/*
* Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2014
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp
浏览文件 @
8c0b891f
/*
/*
* Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2014
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
src/share/vm/oops/method.cpp
浏览文件 @
8c0b891f
...
@@ -92,6 +92,7 @@ Method::Method(ConstMethod* xconst, AccessFlags access_flags, int size) {
...
@@ -92,6 +92,7 @@ Method::Method(ConstMethod* xconst, AccessFlags access_flags, int size) {
set_force_inline
(
false
);
set_force_inline
(
false
);
set_hidden
(
false
);
set_hidden
(
false
);
set_dont_inline
(
false
);
set_dont_inline
(
false
);
set_has_injected_profile
(
false
);
set_method_data
(
NULL
);
set_method_data
(
NULL
);
clear_method_counters
();
clear_method_counters
();
set_vtable_index
(
Method
::
garbage_vtable_index
);
set_vtable_index
(
Method
::
garbage_vtable_index
);
...
...
src/share/vm/oops/method.hpp
浏览文件 @
8c0b891f
...
@@ -110,12 +110,13 @@ class Method : public Metadata {
...
@@ -110,12 +110,13 @@ class Method : public Metadata {
#endif
#endif
u2
_method_size
;
// size of this object
u2
_method_size
;
// size of this object
u1
_intrinsic_id
;
// vmSymbols::intrinsic_id (0 == _none)
u1
_intrinsic_id
;
// vmSymbols::intrinsic_id (0 == _none)
u1
_jfr_towrite
:
1
,
// Flags
u1
_jfr_towrite
:
1
,
// Flags
_caller_sensitive
:
1
,
_caller_sensitive
:
1
,
_force_inline
:
1
,
_force_inline
:
1
,
_hidden
:
1
,
_hidden
:
1
,
_dont_inline
:
1
,
_dont_inline
:
1
,
:
3
;
_has_injected_profile
:
1
,
:
2
;
#ifndef PRODUCT
#ifndef PRODUCT
int
_compiled_invocation_count
;
// Number of nmethod invocations so far (for perf. debugging)
int
_compiled_invocation_count
;
// Number of nmethod invocations so far (for perf. debugging)
...
@@ -781,16 +782,19 @@ class Method : public Metadata {
...
@@ -781,16 +782,19 @@ class Method : public Metadata {
void
init_intrinsic_id
();
// updates from _none if a match
void
init_intrinsic_id
();
// updates from _none if a match
static
vmSymbols
::
SID
klass_id_for_intrinsics
(
Klass
*
holder
);
static
vmSymbols
::
SID
klass_id_for_intrinsics
(
Klass
*
holder
);
bool
jfr_towrite
()
{
return
_jfr_towrite
;
}
bool
jfr_towrite
()
{
return
_jfr_towrite
;
}
void
set_jfr_towrite
(
bool
x
)
{
_jfr_towrite
=
x
;
}
void
set_jfr_towrite
(
bool
x
)
{
_jfr_towrite
=
x
;
}
bool
caller_sensitive
()
{
return
_caller_sensitive
;
}
bool
caller_sensitive
()
{
return
_caller_sensitive
;
}
void
set_caller_sensitive
(
bool
x
)
{
_caller_sensitive
=
x
;
}
void
set_caller_sensitive
(
bool
x
)
{
_caller_sensitive
=
x
;
}
bool
force_inline
()
{
return
_force_inline
;
}
bool
force_inline
()
{
return
_force_inline
;
}
void
set_force_inline
(
bool
x
)
{
_force_inline
=
x
;
}
void
set_force_inline
(
bool
x
)
{
_force_inline
=
x
;
}
bool
dont_inline
()
{
return
_dont_inline
;
}
bool
dont_inline
()
{
return
_dont_inline
;
}
void
set_dont_inline
(
bool
x
)
{
_dont_inline
=
x
;
}
void
set_dont_inline
(
bool
x
)
{
_dont_inline
=
x
;
}
bool
is_hidden
()
{
return
_hidden
;
}
bool
is_hidden
()
{
return
_hidden
;
}
void
set_hidden
(
bool
x
)
{
_hidden
=
x
;
}
void
set_hidden
(
bool
x
)
{
_hidden
=
x
;
}
bool
has_injected_profile
()
{
return
_has_injected_profile
;
}
void
set_has_injected_profile
(
bool
x
)
{
_has_injected_profile
=
x
;
}
ConstMethod
::
MethodType
method_type
()
const
{
ConstMethod
::
MethodType
method_type
()
const
{
return
_constMethod
->
method_type
();
return
_constMethod
->
method_type
();
}
}
...
...
src/share/vm/opto/compile.cpp
浏览文件 @
8c0b891f
...
@@ -3292,9 +3292,6 @@ bool Compile::final_graph_reshaping() {
...
@@ -3292,9 +3292,6 @@ bool Compile::final_graph_reshaping() {
bool
Compile
::
too_many_traps
(
ciMethod
*
method
,
bool
Compile
::
too_many_traps
(
ciMethod
*
method
,
int
bci
,
int
bci
,
Deoptimization
::
DeoptReason
reason
)
{
Deoptimization
::
DeoptReason
reason
)
{
if
(
method
->
has_injected_profile
())
{
return
false
;
}
ciMethodData
*
md
=
method
->
method_data
();
ciMethodData
*
md
=
method
->
method_data
();
if
(
md
->
is_empty
())
{
if
(
md
->
is_empty
())
{
// Assume the trap has not occurred, or that it occurred only
// Assume the trap has not occurred, or that it occurred only
...
@@ -3344,9 +3341,6 @@ bool Compile::too_many_traps(Deoptimization::DeoptReason reason,
...
@@ -3344,9 +3341,6 @@ bool Compile::too_many_traps(Deoptimization::DeoptReason reason,
bool
Compile
::
too_many_recompiles
(
ciMethod
*
method
,
bool
Compile
::
too_many_recompiles
(
ciMethod
*
method
,
int
bci
,
int
bci
,
Deoptimization
::
DeoptReason
reason
)
{
Deoptimization
::
DeoptReason
reason
)
{
if
(
method
->
has_injected_profile
())
{
return
false
;
}
ciMethodData
*
md
=
method
->
method_data
();
ciMethodData
*
md
=
method
->
method_data
();
if
(
md
->
is_empty
())
{
if
(
md
->
is_empty
())
{
// Assume the trap has not occurred, or that it occurred only
// Assume the trap has not occurred, or that it occurred only
...
...
src/share/vm/opto/library_call.cpp
浏览文件 @
8c0b891f
...
@@ -6565,8 +6565,6 @@ bool LibraryCallKit::inline_profileBoolean() {
...
@@ -6565,8 +6565,6 @@ bool LibraryCallKit::inline_profileBoolean() {
jint
false_cnt
=
aobj
->
element_value
(
0
).
as_int
();
jint
false_cnt
=
aobj
->
element_value
(
0
).
as_int
();
jint
true_cnt
=
aobj
->
element_value
(
1
).
as_int
();
jint
true_cnt
=
aobj
->
element_value
(
1
).
as_int
();
method
()
->
set_injected_profile
(
true
);
if
(
C
->
log
()
!=
NULL
)
{
if
(
C
->
log
()
!=
NULL
)
{
C
->
log
()
->
elem
(
"observe source='profileBoolean' false='%d' true='%d'"
,
C
->
log
()
->
elem
(
"observe source='profileBoolean' false='%d' true='%d'"
,
false_cnt
,
true_cnt
);
false_cnt
,
true_cnt
);
...
...
src/share/vm/runtime/deoptimization.cpp
浏览文件 @
8c0b891f
...
@@ -1469,7 +1469,10 @@ JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint tra
...
@@ -1469,7 +1469,10 @@ JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint tra
//
//
// The other actions cause immediate removal of the present code.
// The other actions cause immediate removal of the present code.
bool
update_trap_state
=
true
;
// Traps caused by injected profile shouldn't pollute trap counts.
bool
injected_profile_trap
=
trap_method
->
has_injected_profile
()
&&
(
reason
==
Reason_intrinsic
||
reason
==
Reason_unreached
);
bool
update_trap_state
=
!
injected_profile_trap
;
bool
make_not_entrant
=
false
;
bool
make_not_entrant
=
false
;
bool
make_not_compilable
=
false
;
bool
make_not_compilable
=
false
;
bool
reprofile
=
false
;
bool
reprofile
=
false
;
...
...
test/compiler/jsr292/PollutedTrapCounts.java
0 → 100644
浏览文件 @
8c0b891f
/*
* Copyright (c) 2015, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 8074551
* @library /testlibrary
* @run main PollutedTrapCounts
*/
import
java.lang.invoke.*
;
import
com.oracle.java.testlibrary.*
;
public
class
PollutedTrapCounts
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
ProcessBuilder
pb
=
ProcessTools
.
createJavaProcessBuilder
(
"-XX:+IgnoreUnrecognizedVMOptions"
,
"-XX:-TieredCompilation"
,
"-Xbatch"
,
"-XX:PerBytecodeRecompilationCutoff=10"
,
"-XX:PerMethodRecompilationCutoff=10"
,
"-XX:+PrintCompilation"
,
"-XX:+UnlockDiagnosticVMOptions"
,
"-XX:+PrintInlining"
,
"PollutedTrapCounts$Test"
);
OutputAnalyzer
analyzer
=
new
OutputAnalyzer
(
pb
.
start
());
analyzer
.
shouldHaveExitValue
(
0
);
analyzer
.
shouldNotContain
(
"not compilable (disabled)"
);
}
static
class
Test
{
public
static
final
MethodHandle
test1
;
public
static
final
MethodHandle
test2
;
public
static
final
MethodHandle
empty
;
static
{
try
{
Class
<?>
THIS_CLASS
=
Test
.
class
;
MethodHandles
.
Lookup
LOOKUP
=
MethodHandles
.
lookup
();
test1
=
LOOKUP
.
findStatic
(
THIS_CLASS
,
"test1"
,
MethodType
.
methodType
(
boolean
.
class
,
boolean
.
class
));
test2
=
LOOKUP
.
findStatic
(
THIS_CLASS
,
"test2"
,
MethodType
.
methodType
(
boolean
.
class
,
boolean
.
class
));
empty
=
LOOKUP
.
findStatic
(
THIS_CLASS
,
"empty"
,
MethodType
.
methodType
(
void
.
class
,
boolean
.
class
));
}
catch
(
Throwable
e
)
{
throw
new
Error
(
e
);
}
}
static
boolean
test1
(
boolean
b
)
{
return
b
;
}
static
boolean
test2
(
boolean
b
)
{
return
true
;
}
static
void
empty
(
boolean
b
)
{}
static
void
test
(
boolean
freqValue
,
boolean
removeInlineBlocker
)
throws
Throwable
{
MethodHandle
innerGWT
=
MethodHandles
.
guardWithTest
(
test1
,
empty
,
empty
);
MethodHandle
outerGWT
=
MethodHandles
.
guardWithTest
(
test2
,
innerGWT
,
innerGWT
);
// Trigger compilation
for
(
int
i
=
0
;
i
<
20_000
;
i
++)
{
outerGWT
.
invokeExact
(
freqValue
);
}
// Trigger deopt & nmethod invalidation
outerGWT
.
invokeExact
(!
freqValue
);
// Force inline blocker removal on rare-taken path
if
(
removeInlineBlocker
)
{
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
outerGWT
.
invokeExact
(!
freqValue
);
}
}
// Trigger recompilation
for
(
int
i
=
0
;
i
<
20_000
;
i
++)
{
outerGWT
.
invokeExact
(
freqValue
);
}
}
public
static
void
main
(
String
[]
args
)
throws
Throwable
{
boolean
freqValue
=
true
;
boolean
removeInlineBlocker
=
false
;
for
(
int
i
=
0
;
i
<
20
;
i
++)
{
test
(
freqValue
,
removeInlineBlocker
);
freqValue
=
!
freqValue
;
removeInlineBlocker
=
!
removeInlineBlocker
;
}
}
}
}
test/gc/g1/TestGCLogMessages.java
浏览文件 @
8c0b891f
/*
/*
* Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2015
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/runtime/InitialThreadOverflow/testme.sh
浏览文件 @
8c0b891f
#!/bin/sh
#!/bin/sh
# Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013
,
Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
#
# This code is free software; you can redistribute it and/or modify it
# This code is free software; you can redistribute it and/or modify it
...
...
test/serviceability/jvmti/GetObjectSizeOverflow.java
浏览文件 @
8c0b891f
/*
/*
* Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
test/testlibrary/com/oracle/java/testlibrary/Platform.java
浏览文件 @
8c0b891f
...
@@ -122,6 +122,10 @@ public class Platform {
...
@@ -122,6 +122,10 @@ public class Platform {
return
isArch
(
"(amd64)|(x86_64)"
);
return
isArch
(
"(amd64)|(x86_64)"
);
}
}
public
static
boolean
isAArch64
()
{
return
isArch
(
"aarch64"
);
}
private
static
boolean
isArch
(
String
archnameRE
)
{
private
static
boolean
isArch
(
String
archnameRE
)
{
return
Pattern
.
compile
(
archnameRE
,
Pattern
.
CASE_INSENSITIVE
)
return
Pattern
.
compile
(
archnameRE
,
Pattern
.
CASE_INSENSITIVE
)
.
matcher
(
osArch
)
.
matcher
(
osArch
)
...
...
test/testlibrary/ctw/Makefile
浏览文件 @
8c0b891f
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
#
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License
# FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
# accompanied this code).
#
#
...
...
test/testlibrary/ctw/README
浏览文件 @
8c0b891f
#
#
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
#
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
#
This code is free software; you can redistribute it and/or modify it
This code is free software; you can redistribute it and/or modify it
#
under the terms of the GNU General Public License version 2 only, as
under the terms of the GNU General Public License version 2 only, as
#
published by the Free Software Foundation.
published by the Free Software Foundation.
#
#
This code is distributed in the hope that it will be useful, but WITHOUT
This code is distributed in the hope that it will be useful, but WITHOUT
#
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License
FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License
#
version 2 for more details (a copy is included in the LICENSE file that
version 2 for more details (a copy is included in the LICENSE file that
#
accompanied this code).
accompanied this code).
#
#
You should have received a copy of the GNU General Public License version
You should have received a copy of the GNU General Public License version
#
2 along with this work; if not, write to the Free Software Foundation,
2 along with this work; if not, write to the Free Software Foundation,
#
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
#
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
#
or visit www.oracle.com if you need additional information or have any
or visit www.oracle.com if you need additional information or have any
#
questions.
questions.
#
#
DESCRIPTION
DESCRIPTION
...
...
test/testlibrary/whitebox/Makefile
浏览文件 @
8c0b891f
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
#
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License
# FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
# accompanied this code).
#
#
...
...
test/testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java
浏览文件 @
8c0b891f
/*
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014,
2015,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -43,7 +43,7 @@ import java.util.Set;
...
@@ -43,7 +43,7 @@ import java.util.Set;
*/
*/
public
class
TestMutuallyExclusivePlatformPredicates
{
public
class
TestMutuallyExclusivePlatformPredicates
{
private
static
enum
MethodGroup
{
private
static
enum
MethodGroup
{
ARCH
(
"isARM"
,
"isPPC"
,
"isSparc"
,
"isX86"
,
"isX64"
),
ARCH
(
"isARM"
,
"isPPC"
,
"isSparc"
,
"isX86"
,
"isX64"
,
"isAArch64"
),
BITNESS
(
"is32bit"
,
"is64bit"
),
BITNESS
(
"is32bit"
,
"is64bit"
),
OS
(
"isAix"
,
"isLinux"
,
"isSolaris"
,
"isWindows"
,
"isOSX"
),
OS
(
"isAix"
,
"isLinux"
,
"isSolaris"
,
"isWindows"
,
"isOSX"
),
VM_TYPE
(
"isClient"
,
"isServer"
,
"isGraal"
,
"isMinimal"
),
VM_TYPE
(
"isClient"
,
"isServer"
,
"isGraal"
,
"isMinimal"
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录