8310711: [IR Framework] Remove safepoint while printing handling
Reviewed-by: thartmann, epeter
This commit is contained in:
parent
71aac7a5fb
commit
458e563cd9
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2023, 2024, 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
|
||||||
@ -29,7 +29,6 @@ import compiler.lib.ir_framework.CompilePhase;
|
|||||||
* This class represents a single compile phase block of a {@link LoggedMethod}.
|
* This class represents a single compile phase block of a {@link LoggedMethod}.
|
||||||
*/
|
*/
|
||||||
class CompilePhaseBlock {
|
class CompilePhaseBlock {
|
||||||
public static final String SAFEPOINT_WHILE_PRINTING_MESSAGE = "<!-- safepoint while printing -->";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy object for a block that we do not need to parse.
|
* Dummy object for a block that we do not need to parse.
|
||||||
@ -38,11 +37,6 @@ class CompilePhaseBlock {
|
|||||||
|
|
||||||
private final CompilePhase compilePhase;
|
private final CompilePhase compilePhase;
|
||||||
private final StringBuilder builder;
|
private final StringBuilder builder;
|
||||||
/**
|
|
||||||
* Stores an incomplete line that was interrupted by a safepoint.
|
|
||||||
* Needs to be merged with the immediately following line.
|
|
||||||
*/
|
|
||||||
private String incompleteLine = "";
|
|
||||||
|
|
||||||
public CompilePhaseBlock(CompilePhase compilePhase) {
|
public CompilePhaseBlock(CompilePhase compilePhase) {
|
||||||
this.compilePhase = compilePhase;
|
this.compilePhase = compilePhase;
|
||||||
@ -92,35 +86,14 @@ class CompilePhaseBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addLine(String line) {
|
public void addLine(String line) {
|
||||||
line = mergeWithIncompleteLine(line);
|
builder.append(escapeXML(line)).append(System.lineSeparator());
|
||||||
if (line.endsWith(SAFEPOINT_WHILE_PRINTING_MESSAGE)) {
|
|
||||||
line = removeSafepointMessage(line);
|
|
||||||
incompleteLine = line;
|
|
||||||
} else {
|
|
||||||
appendLine(line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String mergeWithIncompleteLine(String line) {
|
|
||||||
if (!incompleteLine.isEmpty()) {
|
|
||||||
line = incompleteLine + line;
|
|
||||||
incompleteLine = "";
|
|
||||||
}
|
|
||||||
return line;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String removeSafepointMessage(String line) {
|
|
||||||
return line.substring(0, line.lastIndexOf(SAFEPOINT_WHILE_PRINTING_MESSAGE));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String content() {
|
public String content() {
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void appendLine(String line) {
|
|
||||||
builder.append(escapeXML(line)).append(System.lineSeparator());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String escapeXML(String line) {
|
private static String escapeXML(String line) {
|
||||||
if (line.contains("&")) {
|
if (line.contains("&")) {
|
||||||
line = line.replace("<", "<");
|
line = line.replace("<", "<");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2023, 2024, 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
|
||||||
@ -29,8 +29,6 @@ import compiler.lib.ir_framework.driver.irmatching.parser.TestMethods;
|
|||||||
* This class holds the current state of the parsing of the hotspot_pid* file.
|
* This class holds the current state of the parsing of the hotspot_pid* file.
|
||||||
*/
|
*/
|
||||||
class State {
|
class State {
|
||||||
private final WriterThreads writerThreads;
|
|
||||||
private WriterThread writerThread;
|
|
||||||
private final CompileQueueMessages compileQueueMessages;
|
private final CompileQueueMessages compileQueueMessages;
|
||||||
private final LoggedMethods loggedMethods;
|
private final LoggedMethods loggedMethods;
|
||||||
private LoggedMethod loggedMethod = LoggedMethod.DONT_CARE;
|
private LoggedMethod loggedMethod = LoggedMethod.DONT_CARE;
|
||||||
@ -38,7 +36,6 @@ class State {
|
|||||||
public State(String testClassName, TestMethods testMethods) {
|
public State(String testClassName, TestMethods testMethods) {
|
||||||
this.compileQueueMessages = new CompileQueueMessages(testClassName, testMethods);
|
this.compileQueueMessages = new CompileQueueMessages(testClassName, testMethods);
|
||||||
this.loggedMethods = new LoggedMethods();
|
this.loggedMethods = new LoggedMethods();
|
||||||
this.writerThreads = new WriterThreads();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoggedMethods loggedMethods() {
|
public LoggedMethods loggedMethods() {
|
||||||
@ -46,9 +43,7 @@ class State {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void update(String line) {
|
public void update(String line) {
|
||||||
if (WriterThread.isWriterThreadLine(line)) {
|
if (compileQueueMessages.isTestMethodQueuedLine(line)) {
|
||||||
processWriterThreadLine(line);
|
|
||||||
} else if (compileQueueMessages.isTestMethodQueuedLine(line)) {
|
|
||||||
processCompileQueueLine(line);
|
processCompileQueueLine(line);
|
||||||
} else if (CompilePhaseBlock.isBlockStartLine(line)) {
|
} else if (CompilePhaseBlock.isBlockStartLine(line)) {
|
||||||
processBlockStartLine(line);
|
processBlockStartLine(line);
|
||||||
@ -59,15 +54,6 @@ class State {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processWriterThreadLine(String line) {
|
|
||||||
if (loggedMethod.hasActiveBlock()) {
|
|
||||||
// The current compile phase block was interrupted due to a safepoint. Save and restore later.
|
|
||||||
writerThread.saveLoggedMethod(loggedMethod);
|
|
||||||
}
|
|
||||||
writerThread = writerThreads.parse(line);
|
|
||||||
loggedMethod = writerThread.restoreLoggedMethod();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void processCompileQueueLine(String line) {
|
private void processCompileQueueLine(String line) {
|
||||||
String methodName = compileQueueMessages.parse(line);
|
String methodName = compileQueueMessages.parse(line);
|
||||||
loggedMethods.registerMethod(methodName);
|
loggedMethods.registerMethod(methodName);
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2023, 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package compiler.lib.ir_framework.driver.irmatching.parser.hotspot;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class represents a writer thread that emits log messages with LogCompilation. It saves and restores a currently
|
|
||||||
* parsed {@link LoggedMethod} if a {@link CompilePhaseBlock} was interrupted before reaching the block end tag.
|
|
||||||
*
|
|
||||||
* @see LoggedMethod
|
|
||||||
* @see CompilePhaseBlock
|
|
||||||
*/
|
|
||||||
class WriterThread {
|
|
||||||
private LoggedMethod loggedMethod = LoggedMethod.DONT_CARE;
|
|
||||||
|
|
||||||
public static boolean isWriterThreadLine(String line) {
|
|
||||||
return line.startsWith("<writer");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveLoggedMethod(LoggedMethod loggedMethod) {
|
|
||||||
this.loggedMethod = loggedMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LoggedMethod restoreLoggedMethod() {
|
|
||||||
LoggedMethod restoredLoggedMethod = loggedMethod;
|
|
||||||
if (restoredLoggedMethod != LoggedMethod.DONT_CARE) {
|
|
||||||
loggedMethod = LoggedMethod.DONT_CARE;
|
|
||||||
}
|
|
||||||
return restoredLoggedMethod;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2023, 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package compiler.lib.ir_framework.driver.irmatching.parser.hotspot;
|
|
||||||
|
|
||||||
import compiler.lib.ir_framework.TestFramework;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class keeps track of all {@link WriterThread} instances.
|
|
||||||
*/
|
|
||||||
class WriterThreads {
|
|
||||||
private final Map<Integer, WriterThread> mapIdToThread = new HashMap<>();
|
|
||||||
|
|
||||||
WriterThread parse(String line) {
|
|
||||||
int writerThreadId = parseWriterThreadId(line);
|
|
||||||
return mapIdToThread.computeIfAbsent(writerThreadId, c -> new WriterThread());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int parseWriterThreadId(String line) {
|
|
||||||
Pattern pattern = Pattern.compile("='(\\d+)'");
|
|
||||||
Matcher matcher = pattern.matcher(line);
|
|
||||||
TestFramework.check(matcher.find(), "should find writer thread id");
|
|
||||||
return Integer.parseInt(matcher.group(1));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,152 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2023, 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package compiler.testlibrary_tests.ir_framework.tests;
|
|
||||||
|
|
||||||
import compiler.lib.ir_framework.CompilePhase;
|
|
||||||
import compiler.lib.ir_framework.IR;
|
|
||||||
import compiler.lib.ir_framework.IRNode;
|
|
||||||
import compiler.lib.ir_framework.Test;
|
|
||||||
import compiler.lib.ir_framework.driver.irmatching.IRMatcher;
|
|
||||||
import compiler.lib.ir_framework.driver.irmatching.Matchable;
|
|
||||||
import compiler.lib.ir_framework.driver.irmatching.parser.TestClassParser;
|
|
||||||
import jdk.test.lib.Utils;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.nio.file.StandardCopyOption;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @test
|
|
||||||
* @bug 8300273
|
|
||||||
* @requires vm.debug == true & vm.flagless
|
|
||||||
* @summary Test TestClassParser such that it correctly parses the hotspot_pid* files with safepoint interruption messages
|
|
||||||
* @library /test/lib /testlibrary_tests /
|
|
||||||
* @build jdk.test.whitebox.WhiteBox
|
|
||||||
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
|
|
||||||
* @run junit/othervm -Xbootclasspath/a:. -DSkipWhiteBoxInstall=true -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
|
|
||||||
* -XX:+WhiteBoxAPI compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting
|
|
||||||
*/
|
|
||||||
public class TestSafepointWhilePrinting {
|
|
||||||
static int iFld;
|
|
||||||
|
|
||||||
@org.junit.Test
|
|
||||||
public void test() throws IOException {
|
|
||||||
String hotspotPidFileName = "safepoint_while_printing_hotspot_pid.log";
|
|
||||||
Path hotspotPidFilePath = Paths.get(Utils.TEST_SRC).resolve(hotspotPidFileName);
|
|
||||||
// Copy file to current workdir
|
|
||||||
Files.copy(hotspotPidFilePath, Paths.get("").resolve(hotspotPidFileName),
|
|
||||||
StandardCopyOption.REPLACE_EXISTING);
|
|
||||||
|
|
||||||
String irEncoding =
|
|
||||||
"""
|
|
||||||
##### IRMatchRulesEncoding - used by TestFramework #####
|
|
||||||
<method>,{comma separated applied @IR rule ids}
|
|
||||||
test1,1
|
|
||||||
test2,1
|
|
||||||
testSafepointInBlock,1
|
|
||||||
testQueueInBlock1,1
|
|
||||||
testQueueInBlock2,1
|
|
||||||
testDoubleInterruptOuter,1
|
|
||||||
testDoubleInterruptMiddle,1
|
|
||||||
testDoubleInterruptInner,1
|
|
||||||
testCompilePhaseBackToBackFirst,1
|
|
||||||
testCompilePhaseBackToBackLast,1
|
|
||||||
----- END -----
|
|
||||||
##### IRMatchingVMInfo - used by TestFramework #####
|
|
||||||
<key>:<value>
|
|
||||||
cpuFeatures:empty_cpu_info
|
|
||||||
MaxVectorSize:64
|
|
||||||
MaxVectorSizeIsDefault:1
|
|
||||||
LoopMaxUnroll:64
|
|
||||||
UseAVX:1
|
|
||||||
UseAVXIsDefault:1
|
|
||||||
----- END VMInfo -----
|
|
||||||
""";
|
|
||||||
TestClassParser testClassParser = new TestClassParser(TestSafepointWhilePrinting.class);
|
|
||||||
Matchable testClassMatchable = testClassParser.parse(hotspotPidFileName, irEncoding);
|
|
||||||
IRMatcher matcher = new IRMatcher(testClassMatchable);
|
|
||||||
matcher.match();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {IRNode.CMP_UL3, "1"})
|
|
||||||
public void test1() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {IRNode.CMP_UL3, "1"})
|
|
||||||
public void test2() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {"testSafepointInBlock @ bci:-1", "1"}, phase = CompilePhase.PRINT_IDEAL)
|
|
||||||
public void testSafepointInBlock() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {"testQueueInBlock1 @ bci:-1", "1"}, phase = CompilePhase.PRINT_IDEAL)
|
|
||||||
public void testQueueInBlock1() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {"testQueueInBlock2 @ bci:-1", "1"}, phase = CompilePhase.PRINT_IDEAL)
|
|
||||||
public void testQueueInBlock2() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
@IR(counts = {"!jvms: TestSafepointWhilePrinting::testDoubleInterruptOuter", "1"}, phase = CompilePhase.PRINT_IDEAL)
|
|
||||||
public void testDoubleInterruptOuter() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {"testDoubleInterruptMiddle @ bci:-1", "1", IRNode.CMP_UL3, "1"}, phase = CompilePhase.PRINT_IDEAL)
|
|
||||||
public void testDoubleInterruptMiddle() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {IRNode.CON_L, "1"}, phase = CompilePhase.PRINT_IDEAL)
|
|
||||||
public void testDoubleInterruptInner() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {"(line 115)", "1", IRNode.CMP_UL3, "1"}, phase = {CompilePhase.AFTER_PARSING, CompilePhase.BEFORE_MATCHING})
|
|
||||||
public void testCompilePhaseBackToBackFirst() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@IR(counts = {"(line 115)", "1", IRNode.CMP_UL3, "1"}, phase = {CompilePhase.AFTER_PARSING, CompilePhase.BEFORE_MATCHING})
|
|
||||||
public void testCompilePhaseBackToBackLast() {
|
|
||||||
iFld = 34;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,163 +0,0 @@
|
|||||||
<writer thread='1683653'/>
|
|
||||||
1682 967 b 3 jdk.test.lib.Asserts::assertEquals (7 bytes)
|
|
||||||
<nmethod compile_id='967' compiler='c1' level='3' entry='0x00007f29791d6440' size='912' address='0x00007f29791d6290' relocation_offset='352' insts_offset='432' stub_offset='648' scopes_data_offset='768' scopes_pcs_offset='808' dependencies_offset='904' oops_offset='752' metadata_offset='760' method='jdk.test.lib.Asserts assertEquals (Ljava/lang/Object;Ljava/lang/Object;)V' bytes='7' count='256' iicount='256' stamp='1.683'/>
|
|
||||||
<writer thread='1683665'/>
|
|
||||||
<task_queued compile_id='1013' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting test2 (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='1683661'/>
|
|
||||||
<task_queued compile_id='1008' method='java.util.Arrays copyOfRange ([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;' bytes='90' count='257' iicount='257' level='3' blocking='1' stamp='1.714' comment='tiered' hot_count='256'/>
|
|
||||||
<writer thread='1683666'/>
|
|
||||||
<task_queued compile_id='1018' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting test1 (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='1683670'/>
|
|
||||||
<make_not_entrant thread='1683670' compile_id='995' compiler='c1' level='3' stamp='1.716'/>
|
|
||||||
1716 995 3 compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting::compareLongWithImm5 (8 bytes) made not entrant
|
|
||||||
<writer thread='1683652'/>
|
|
||||||
1716 1018 b 4 compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting::test1 (8 bytes)
|
|
||||||
<writer thread='1683665'/>
|
|
||||||
<task_queued compile_id='53' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testSafepointInBlock (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='1683653'/>
|
|
||||||
1716 1008 b 3 java.util.Arrays::copyOfRange (90 bytes)
|
|
||||||
<writer thread='1683670'/>
|
|
||||||
1716 1013 b 4 compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting::test2 (8 bytes)
|
|
||||||
<writer thread='1683663'/>
|
|
||||||
<task_queued compile_id='1019' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting notATest (I)I' bytes='7' count='1000' iicount='1000' blocking='1' stamp='1.716' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='1683652'/>
|
|
||||||
<ideal compile_id='1018' compile_phase='print_ideal'>
|
|
||||||
AFTER: print_ideal
|
|
||||||
0 Root === 0 26 [[ 0 1 3 24 ]] inner
|
|
||||||
3 Start === 3 0 [[ 3 5 6 7 8 9 11 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:compiler/intrinsics/TestSafepointWhilePrinting:NotNull *, 6:long, 7:half}
|
|
||||||
5 Parm === 3 [[ 26 ]] Control !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
6 Parm === 3 [[ 26 ]] I_O !jvms:<!-- safepoint while printing -->
|
|
||||||
<writer thread='1683670'/>
|
|
||||||
<ideal compile_id='1013' compile_phase='print_ideal'>
|
|
||||||
AFTER: print_ideal
|
|
||||||
0 Root === 0 26 [[ 0 1 3 24 ]] inner
|
|
||||||
3 Start === 3 0 [[ 3 5 6 7 8 9 11 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:compiler/intrinsics/TestSafepointWhilePrinting:NotNull *, 6:long, 7:half}
|
|
||||||
5 Parm === 3 [[ 26 ]] Control !jvms: TestSafepointWhilePrinting::test2 @ bci:-1 (line 109)
|
|
||||||
6 Parm === 3 [[ 26 ]] I_O !jvms: TestSafepointWhilePrinting::test2 @ bci:-1 (line 109)
|
|
||||||
7 Parm === 3 [[ 26 ]] Memory Memory: @BotPTR *+bot, idx=Bot; !jvms: TestSafepointWhilePrinting::test2 @ bci:-1 (line 109)
|
|
||||||
8 Parm === 3 [[ 26 ]] FramePtr !jvms: TestSafepointWhilePrinting::test2 @ bci:-1 (line 109)
|
|
||||||
9 Parm === 3 [[ 26 ]] ReturnAdr !jvms: TestSafepointWhilePrinting::test2 @ bci:-1 (line 109)
|
|
||||||
11 Parm === 3 [[ 25 ]] Parm1: long !jvms: TestSafepointWhilePrinting::test2 @ bci:-1 (line 109)
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:42
|
|
||||||
25 CmpUL3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test2 @ bci:4 (line 109)
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<writer thread='1683652'/>
|
|
||||||
TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
7 Parm === 3 [[ 26 ]] Memory Memory: @BotPTR *+bot, idx=Bot; !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
8 Parm === 3 [[ 26 ]] FramePtr !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
9 Parm === 3 [[ 26 ]] ReturnAdr !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
11 Parm === 3 [[ 25 ]] Parm1: long !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:172032
|
|
||||||
25 CmpUL3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test1 @ bci:4 (line 115)
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<writer thread='1875264'/>
|
|
||||||
<nmethod compile_id='1017' compiler='c2' level='4' entry='0x00007fa74cc08ea0' size='664' address='0x00007fa74cc08d10' relocation_offset='352' insts_offset='400' stub_offset='536' scopes_data_offset='576'
|
|
||||||
scopes_pcs_offset='592' dependencies_offset='656' oops_offset='560' metadata_offset='568' method='compiler.intrinsics.TestCompareUnsigned compareLongWithImm3 (J)I' bytes='8' count='1000' iicount='1000'
|
|
||||||
stamp='1.785'/>
|
|
||||||
<make_not_entrant thread='1875264' compile_id='993' compiler='c1' level='3' stamp='1.785'/>
|
|
||||||
1784 993 3 compiler.intrinsics.TestCompareUnsigned::compareLongWithImm3 (8 bytes) made not entrant
|
|
||||||
1784 1013 b 4 compiler.intrinsics.TestCompareUnsigned::compareLongWithImm1 (8 bytes)
|
|
||||||
<ideal compile_id='53' compile_phase='print_ideal'>
|
|
||||||
AFTER: print_ideal
|
|
||||||
0 Root === 0 26 [[ 0 1 3 24 ]] inner
|
|
||||||
8 Parm === 3 [[ 26 ]] FramePtr !jvms: TestSafepointWhilePrinting::testSafepointInBlock<!-- safepoint while printing -->
|
|
||||||
@ bci:-1 (line 109)
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:42
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<writer thread='5165446'/>
|
|
||||||
<task_queued compile_id='54' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testQueueInBlock1 (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='234'/>
|
|
||||||
<ideal compile_id='54' compile_phase='print_ideal'>
|
|
||||||
AFTER: print_ideal
|
|
||||||
0 Root === 0 26 [[ 0 1 3 24 ]] inner
|
|
||||||
8 Parm === 3 [[ 26 ]] FramePtr !jvms: TestSafepointWhilePrinting::testQueueInBlock1<!-- safepoint while printing -->
|
|
||||||
<writer thread='235'/>
|
|
||||||
<task_queued compile_id='55' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testQueueInBlock2 (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='234'/>
|
|
||||||
@ bci:-1 (line 109)
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:42
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<ideal compile_id='55' compile_phase='print_ideal'>
|
|
||||||
AFTER: print_ideal
|
|
||||||
0 Root === 0 26 [[ 0 1 3 24 ]] inner
|
|
||||||
8 Parm === 3 [[ 26 ]] FramePtr !jvms: TestSafepointWhilePrinting::testQueueInBlock2<!-- safepoint while printing -->
|
|
||||||
@ bci:-1 (line 109)
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:42
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<writer thread='343523525'/>
|
|
||||||
<task_queued compile_id='61' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testDoubleInterruptOuter (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='343523525'/>
|
|
||||||
<task_queued compile_id='62' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testDoubleInterruptMiddle (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='1001'/>
|
|
||||||
<ideal compile_id='61' compile_phase='print_ideal'>
|
|
||||||
AFTER: print_ideal
|
|
||||||
0 Root === 0 26 [[ 0 1 3 24 ]] inner
|
|
||||||
3 Start === 3 0 [[ 3 5 6 7 8 9 11 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:compiler/intrinsics/TestSafepointWhilePrinting:NotNull *, 6:long, 7:half}
|
|
||||||
6 Parm === 3 [[ 26 ]] I_O !jvms:<!-- safepoint while printing -->
|
|
||||||
<writer thread='1002'/>
|
|
||||||
<ideal compile_id='62' compile_phase='print_ideal'>
|
|
||||||
AFTER: print_ideal
|
|
||||||
0 Root === 0 26 [[ 0 1 3 24 ]] inner
|
|
||||||
8 Parm === 3 [[ 26 ]] FramePtr !jvms: TestSafepointWhilePrinting::testDoubleInterruptMiddle<!-- safepoint while printing -->
|
|
||||||
@ bci:-1 (line 109)
|
|
||||||
25 Cmp<!-- safepoint while printing -->
|
|
||||||
<writer thread='9999'/>
|
|
||||||
<task_queued compile_id='63' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testDoubleInterruptInner (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='1003'/>
|
|
||||||
<ideal compile_id='63' compile_phase='print_ideal'>
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:42
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<writer thread='1002'/>
|
|
||||||
UL3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test2 @ bci:4 (line 109)
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<writer thread='1001'/>
|
|
||||||
TestSafepointWhilePrinting::testDoubleInterruptOuter @ bci:-1 (line 115)
|
|
||||||
7 Parm === 3 [[ 26 ]] Memory Memory: @BotPTR *+bot, idx=Bot; !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
8 Parm === 3 [[ 26 ]] FramePtr !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
9 Parm === 3 [[ 26 ]] ReturnAdr !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
11 Parm === 3 [[ 25 ]] Parm1: long !jvms: TestSafepointWhilePrinting::test1 @ bci:-1 (line 115)
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:172032
|
|
||||||
25 CmpUL3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test1 @ bci:4 (line 115)
|
|
||||||
26 Return === 5 6 7 8 9 returns 25 [[ 0 ]]
|
|
||||||
</ideal>
|
|
||||||
<writer thread='100000'/>
|
|
||||||
<task_queued compile_id='72' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testCompilePhaseBackToBackFirst (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='72'/>
|
|
||||||
<ideal compile_id='72' compile_phase='AFTER_PARSING'>
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:172032
|
|
||||||
25 CmpUL<!-- safepoint while printing -->
|
|
||||||
<writer thread='71'/>
|
|
||||||
<task_queued compile_id='71' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting testCompilePhaseBackToBackLast (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<ideal compile_id='71' compile_phase='AFTER_PARSING'>
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:172032
|
|
||||||
25 CmpUL3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test1 @ bci:4 (line 115)
|
|
||||||
</ideal>
|
|
||||||
<ideal compile_id='71' compile_phase='BEFORE_MATCHING'>
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:172032
|
|
||||||
25 CmpU<!-- safepoint while printing -->
|
|
||||||
<writer thread='72'/>
|
|
||||||
3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test1 @ bci:4 (<!-- safepoint while printing -->
|
|
||||||
<writer thread='71'/>
|
|
||||||
L3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test1 @ bci:4 (line <!-- safepoint while printing -->
|
|
||||||
<writer thread='72'/>
|
|
||||||
line 115)
|
|
||||||
</ideal>
|
|
||||||
<writer thread='9999'/>
|
|
||||||
<task_queued compile_id='3333' method='compiler.testlibrary_tests.ir_framework.tests.TestSafepointWhilePrinting asdf (J)I' bytes='8' count='1000' iicount='1000' blocking='1' stamp='1.715' comment='whitebox' hot_count='1000'/>
|
|
||||||
<writer thread='72'/>
|
|
||||||
<ideal compile_id='72' compile_phase='BEFORE_MATCHING'>
|
|
||||||
24 ConL === 0 [[ 25 ]] #long:172032
|
|
||||||
25 CmpU<!-- safepoint while printing -->
|
|
||||||
<writer thread='71'/>
|
|
||||||
115)
|
|
||||||
</ideal>
|
|
||||||
<writer thread='72'/>
|
|
||||||
L3 === _ 11 24 [[ 26 ]] !jvms: TestSafepointWhilePrinting::test1 @ bci:4 (line 115)
|
|
||||||
</ideal>
|
|
Loading…
Reference in New Issue
Block a user