/hg/release/icedtea7-forest-2.2/hotspot: 5 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Tue Jun 12 15:53:27 PDT 2012
changeset da956f0dff7b in /hg/release/icedtea7-forest-2.2/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=da956f0dff7b
author: kamg
date: Thu Mar 29 13:22:24 2012 -0400
7110720: Issue with vm config file loadingIssue with vm config file loading
Summary: disabling default config files if -XX:-ReadDefaultConfigFiles
Reviewed-by: phh, jrose, dcubed, dholmes
changeset ab2cea71db14 in /hg/release/icedtea7-forest-2.2/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=ab2cea71db14
author: never
date: Wed Apr 04 20:44:37 2012 -0700
7152811: Issues in client compiler
Reviewed-by: kvn, jrose
changeset 031bc89014f7 in /hg/release/icedtea7-forest-2.2/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=031bc89014f7
author: never
date: Wed Apr 11 17:38:20 2012 -0700
7160677: missing else in fix for 7152811
Reviewed-by: kvn
changeset 158d5b869cf1 in /hg/release/icedtea7-forest-2.2/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=158d5b869cf1
author: kamg
date: Thu May 03 15:57:16 2012 -0400
7160757: Problem with hotspot/runtime_classfile
Summary: Allow only current and super invokespecials of <init>
Reviewed-by: never, coleenp, dcubed
changeset 889dffcf4a54 in /hg/release/icedtea7-forest-2.2/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=889dffcf4a54
author: andrew
date: Thu Jun 07 15:30:51 2012 +0100
Added tag icedtea-2.2.1 for changeset 158d5b869cf1
diffstat:
.hgtags | 1 +
src/share/vm/ci/ciField.cpp | 37 +++++++++++++++++++++++++------
src/share/vm/ci/ciField.hpp | 5 ++-
src/share/vm/classfile/verifier.cpp | 6 ++--
src/share/vm/compiler/compilerOracle.cpp | 19 +++++++++++++--
src/share/vm/compiler/compilerOracle.hpp | 6 ++++-
src/share/vm/opto/runtime.cpp | 5 ++-
src/share/vm/runtime/arguments.cpp | 2 +
8 files changed, 63 insertions(+), 18 deletions(-)
diffs (245 lines):
diff -r bfe5efd70bce -r 889dffcf4a54 .hgtags
--- a/.hgtags Wed May 30 22:19:21 2012 +0100
+++ b/.hgtags Thu Jun 07 15:30:51 2012 +0100
@@ -281,3 +281,4 @@
c7c6b00122cf49c4147229689904a20779e73b85 jdk7u4-b30
93ec23d55b87d46bada8f32b84eb67b427436858 jdk7u4-b21
b11130d646c2949fce6b32485209e6c17b0a7863 icedtea-2.2
+158d5b869cf10d5817f236d3b68985990b0d4040 icedtea-2.2.1
diff -r bfe5efd70bce -r 889dffcf4a54 src/share/vm/ci/ciField.cpp
--- a/src/share/vm/ci/ciField.cpp Wed May 30 22:19:21 2012 +0100
+++ b/src/share/vm/ci/ciField.cpp Thu Jun 07 15:30:51 2012 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, 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
@@ -67,7 +67,7 @@
// ------------------------------------------------------------------
// ciField::ciField
-ciField::ciField(ciInstanceKlass* klass, int index): _known_to_link_with(NULL) {
+ciField::ciField(ciInstanceKlass* klass, int index): _known_to_link_with_put(NULL), _known_to_link_with_get(NULL) {
ASSERT_IN_VM;
CompilerThread *thread = CompilerThread::current();
@@ -143,7 +143,7 @@
initialize_from(&field_desc);
}
-ciField::ciField(fieldDescriptor *fd): _known_to_link_with(NULL) {
+ciField::ciField(fieldDescriptor *fd): _known_to_link_with_put(NULL), _known_to_link_with_get(NULL) {
ASSERT_IN_VM;
_cp_index = -1;
@@ -315,6 +315,10 @@
bool ciField::will_link(ciInstanceKlass* accessing_klass,
Bytecodes::Code bc) {
VM_ENTRY_MARK;
+ assert(bc == Bytecodes::_getstatic || bc == Bytecodes::_putstatic ||
+ bc == Bytecodes::_getfield || bc == Bytecodes::_putfield,
+ "unexpected bytecode");
+
if (_offset == -1) {
// at creation we couldn't link to our holder so we need to
// maintain that stance, otherwise there's no safe way to use this
@@ -322,8 +326,22 @@
return false;
}
- if (_known_to_link_with == accessing_klass) {
- return true;
+ // Check for static/nonstatic mismatch
+ bool is_static = (bc == Bytecodes::_getstatic || bc == Bytecodes::_putstatic);
+ if (is_static != this->is_static()) {
+ return false;
+ }
+
+ // Get and put can have different accessibility rules
+ bool is_put = (bc == Bytecodes::_putfield || bc == Bytecodes::_putstatic);
+ if (is_put) {
+ if (_known_to_link_with_put == accessing_klass) {
+ return true;
+ }
+ } else {
+ if (_known_to_link_with_get == accessing_klass) {
+ return true;
+ }
}
FieldAccessInfo result;
@@ -334,8 +352,13 @@
true, false, KILL_COMPILE_ON_FATAL_(false));
// update the hit-cache, unless there is a problem with memory scoping:
- if (accessing_klass->is_shared() || !is_shared())
- _known_to_link_with = accessing_klass;
+ if (accessing_klass->is_shared() || !is_shared()) {
+ if (is_put) {
+ _known_to_link_with_put = accessing_klass;
+ } else {
+ _known_to_link_with_get = accessing_klass;
+ }
+ }
return true;
}
diff -r bfe5efd70bce -r 889dffcf4a54 src/share/vm/ci/ciField.hpp
--- a/src/share/vm/ci/ciField.hpp Wed May 30 22:19:21 2012 +0100
+++ b/src/share/vm/ci/ciField.hpp Thu Jun 07 15:30:51 2012 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, 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
@@ -49,7 +49,8 @@
ciType* _type;
int _offset;
bool _is_constant;
- ciInstanceKlass* _known_to_link_with;
+ ciInstanceKlass* _known_to_link_with_put;
+ ciInstanceKlass* _known_to_link_with_get;
ciConstant _constant_value;
// Used for will_link
diff -r bfe5efd70bce -r 889dffcf4a54 src/share/vm/classfile/verifier.cpp
--- a/src/share/vm/classfile/verifier.cpp Wed May 30 22:19:21 2012 +0100
+++ b/src/share/vm/classfile/verifier.cpp Thu Jun 07 15:30:51 2012 +0100
@@ -1880,10 +1880,10 @@
VerificationType type = current_frame->pop_stack(
VerificationType::reference_check(), CHECK_VERIFY(this));
if (type == VerificationType::uninitialized_this_type()) {
- // The method must be an <init> method of either this class, or one of its
- // superclasses
+ // The method must be an <init> method of this class or its superclass
+ klassOop superk = current_class()->super();
if (ref_class_type.name() != current_class()->name() &&
- !name_in_supers(ref_class_type.name(), current_class())) {
+ ref_class_type.name() != superk->klass_part()->name()) {
verify_error(bci, "Bad <init> method call");
return;
}
diff -r bfe5efd70bce -r 889dffcf4a54 src/share/vm/compiler/compilerOracle.cpp
--- a/src/share/vm/compiler/compilerOracle.cpp Wed May 30 22:19:21 2012 +0100
+++ b/src/share/vm/compiler/compilerOracle.cpp Thu Jun 07 15:30:51 2012 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2012, 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
@@ -551,13 +551,22 @@
}
static const char* cc_file() {
- if (CompileCommandFile == NULL)
+#ifdef ASSERT
+ if (CompileCommandFile == NULL) {
return ".hotspot_compiler";
+ }
+#endif
return CompileCommandFile;
}
+
+bool CompilerOracle::has_command_file() {
+ return cc_file() != NULL;
+}
+
bool CompilerOracle::_quiet = false;
void CompilerOracle::parse_from_file() {
+ assert(has_command_file(), "command file must be specified");
FILE* stream = fopen(cc_file(), "rt");
if (stream == NULL) return;
@@ -600,6 +609,7 @@
}
void CompilerOracle::append_comment_to_file(const char* message) {
+ assert(has_command_file(), "command file must be specified");
fileStream stream(fopen(cc_file(), "at"));
stream.print("# ");
for (int index = 0; message[index] != '\0'; index++) {
@@ -610,6 +620,7 @@
}
void CompilerOracle::append_exclude_to_file(methodHandle method) {
+ assert(has_command_file(), "command file must be specified");
fileStream stream(fopen(cc_file(), "at"));
stream.print("exclude ");
Klass::cast(method->method_holder())->name()->print_symbol_on(&stream);
@@ -624,7 +635,9 @@
void compilerOracle_init() {
CompilerOracle::parse_from_string(CompileCommand, CompilerOracle::parse_from_line);
CompilerOracle::parse_from_string(CompileOnly, CompilerOracle::parse_compile_only);
- CompilerOracle::parse_from_file();
+ if (CompilerOracle::has_command_file()) {
+ CompilerOracle::parse_from_file();
+ }
if (lists[PrintCommand] != NULL) {
if (PrintAssembly) {
warning("CompileCommand and/or .hotspot_compiler file contains 'print' commands, but PrintAssembly is also enabled");
diff -r bfe5efd70bce -r 889dffcf4a54 src/share/vm/compiler/compilerOracle.hpp
--- a/src/share/vm/compiler/compilerOracle.hpp Wed May 30 22:19:21 2012 +0100
+++ b/src/share/vm/compiler/compilerOracle.hpp Thu Jun 07 15:30:51 2012 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2012, 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
@@ -36,6 +36,10 @@
static bool _quiet;
public:
+
+ // True if the command file has been specified or is implicit
+ static bool has_command_file();
+
// Reads from file and adds to lists
static void parse_from_file();
diff -r bfe5efd70bce -r 889dffcf4a54 src/share/vm/opto/runtime.cpp
--- a/src/share/vm/opto/runtime.cpp Wed May 30 22:19:21 2012 +0100
+++ b/src/share/vm/opto/runtime.cpp Thu Jun 07 15:30:51 2012 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2012, 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
@@ -896,7 +896,8 @@
methodOop method = ((nmethod*)n)->method();
tty->print_cr("# Method where it happened %s.%s ", Klass::cast(method->method_holder())->name()->as_C_string(), method->name()->as_C_string());
tty->print_cr("#");
- if (ShowMessageBoxOnError && UpdateHotSpotCompilerFileOnError) {
+ if (ShowMessageBoxOnError && UpdateHotSpotCompilerFileOnError &&
+ CompilerOracle::has_command_file()) {
const char* title = "HotSpot Runtime Error";
const char* question = "Do you want to exclude compilation of this method in future runs?";
if (os::message_box(title, question)) {
diff -r bfe5efd70bce -r 889dffcf4a54 src/share/vm/runtime/arguments.cpp
--- a/src/share/vm/runtime/arguments.cpp Wed May 30 22:19:21 2012 +0100
+++ b/src/share/vm/runtime/arguments.cpp Thu Jun 07 15:30:51 2012 +0100
@@ -3000,12 +3000,14 @@
}
}
+#ifdef ASSERT
// Parse default .hotspotrc settings file
if (!settings_file_specified) {
if (!process_settings_file(".hotspotrc", false, args->ignoreUnrecognized)) {
return JNI_EINVAL;
}
}
+#endif
if (PrintVMOptions) {
for (index = 0; index < args->nOptions; index++) {
More information about the distro-pkg-dev
mailing list