This commit is contained in:
Tobias Hartmann 2015-03-02 15:11:55 +00:00
commit e5f039dbfb
4 changed files with 82 additions and 6 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
@ -2096,8 +2096,14 @@ void LIR_OpProfileCall::print_instr(outputStream* out) const {
// LIR_OpProfileType
void LIR_OpProfileType::print_instr(outputStream* out) const {
out->print("exact = "); exact_klass()->print_name_on(out);
out->print("current = "); ciTypeEntries::print_ciklass(out, current_klass());
out->print("exact = ");
if (exact_klass() == NULL) {
out->print("unknown");
} else {
exact_klass()->print_name_on(out);
}
out->print(" current = "); ciTypeEntries::print_ciklass(out, current_klass());
out->print(" ");
mdp()->print(out); out->print(" ");
obj()->print(out); out->print(" ");
tmp()->print(out); out->print(" ");

View File

@ -114,7 +114,9 @@ needs_jre = \
compiler/c2/7047069/Test7047069.java \
runtime/6294277/SourceDebugExtension.java \
runtime/ClassFile/JsrRewriting.java \
runtime/ClassFile/OomWhileParsingRepeatedJsr.java
runtime/ClassFile/OomWhileParsingRepeatedJsr.java \
runtime/SharedArchiveFile/LimitSharedSizes.java \
runtime/SharedArchiveFile/SpaceUtilizationCheck.java
# Compact 3 adds further tests to compact2
#

View File

@ -0,0 +1,68 @@
/*
* 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 8073154
* @build TestProfileReturnTypePrinting
* @run main/othervm -XX:TypeProfileLevel=020
* -XX:CompileOnly=TestProfileReturnTypePrinting.testMethod
* -XX:+IgnoreUnrecognizedVMOptions -XX:+PrintLIR
* TestProfileReturnTypePrinting
* @summary Verify that c1's LIR that contains ProfileType node could be dumped
* without a crash disregard to an exact class knowledge.
*/
public class TestProfileReturnTypePrinting {
private static final int ITERATIONS = 1_000_000;
public static void main(String args[]) {
for (int i = 0; i < ITERATIONS; i++) {
TestProfileReturnTypePrinting.testMethod(i);
}
}
private static int testMethod(int i) {
return TestProfileReturnTypePrinting.foo().hashCode()
+ TestProfileReturnTypePrinting.bar(i).hashCode();
}
/* Exact class of returned value is known statically. */
private static B foo() {
return new B();
}
/* Exact class of returned value is not known statically. */
private static Object bar(int i) {
if (i % 2 == 0) {
return new A();
} else {
return new B();
}
}
private static class A {
}
private static class B extends A {
}
}

View File

@ -58,7 +58,7 @@ public class RandomGeneratorTest {
}
jvmArgs.add(RandomRunner.class.getName());
String[] cmdLineArgs = jvmArgs.toArray(new String[jvmArgs.size()]);
String etalon = ProcessTools.executeTestJvm(cmdLineArgs).getOutput().trim();
String etalon = ProcessTools.executeTestJvm(cmdLineArgs).getStdout().trim();
seedOpt.verify(etalon, cmdLineArgs);
}
@ -122,7 +122,7 @@ public class RandomGeneratorTest {
String lastLineOrig = getLastLine(orig);
String lastLine;
try {
lastLine = getLastLine(ProcessTools.executeTestJvm(cmdLine).getOutput().trim());
lastLine = getLastLine(ProcessTools.executeTestJvm(cmdLine).getStdout().trim());
} catch (Throwable t) {
throw new Error("TESTBUG: Unexpedted exception during jvm execution.", t);
}