public class MemoryScheduleTest extends GraphScheduleTest
Modifier and Type | Class and Description |
---|---|
static class |
MemoryScheduleTest.Container |
private static class |
MemoryScheduleTest.TestMode |
GraalCompilerTest.ArgSupplier, GraalCompilerTest.Result
GraalTest.MultiCauseAssertionError
Modifier and Type | Field and Description |
---|---|
private static MemoryScheduleTest.Container |
container |
private static List<MemoryScheduleTest.Container> |
containerList |
private int |
hash |
private char[] |
value |
lastCompiledGraph
Constructor and Description |
---|
MemoryScheduleTest() |
Modifier and Type | Method and Description |
---|---|
private static void |
assertReadAndWriteInSameBlock(SchedulePhase schedule,
boolean inSame) |
private static void |
assertReadBeforeAllWritesInStartBlock(SchedulePhase schedule) |
private void |
assertReadWithinAllReturnBlocks(SchedulePhase schedule,
boolean withinReturnBlock) |
private void |
assertReadWithinStartBlock(SchedulePhase schedule,
boolean withinStartBlock) |
private SchedulePhase |
getFinalSchedule(String snippet,
MemoryScheduleTest.TestMode mode) |
private SchedulePhase |
getFinalSchedule(String snippet,
MemoryScheduleTest.TestMode mode,
SchedulePhase.SchedulingStrategy schedulingStrategy) |
void |
testAntiDependency() |
static int |
testAntiDependencySnippet(int a) |
void |
testArrayCopy() |
static int |
testArrayCopySnippet(Integer intValue,
char[] a,
char[] b,
int len)
Here the read should float to the end (into the same block as the return).
|
void |
testBlockSchedule() |
void |
testBlockSchedule2() |
static int |
testBlockSchedule2Snippet(int value)
read should move inside the loop (out of loop is disabled).
|
static int |
testBlockScheduleSnippet()
testing scheduling within a block.
|
void |
testIfRead1() |
static int |
testIfRead1Snippet(int a)
Here the read should not float to the end.
|
void |
testIfRead2() |
static int |
testIfRead2Snippet(int a)
Here the read should float in the else block.
|
void |
testIfRead3() |
static int |
testIfRead3Snippet(int a)
Here the read should float to the end, right before the write.
|
void |
testIfRead4() |
static int |
testIfRead4Snippet(int a)
Here the read should be just in the if branch (with the write).
|
void |
testIfRead5() |
static int |
testIfRead5Snippet(int a)
Here the read should float to the end.
|
void |
testLoop1() |
static int |
testLoop1Snippet(int a,
int b)
Here the read should not float to the end.
|
void |
testLoop2() |
static int |
testLoop2Snippet(int a,
int b)
Here the read should float to the end.
|
void |
testLoop3() |
static int |
testLoop3Snippet(int a)
Here the read should float out of the loop.
|
void |
testLoop4() |
static int |
testLoop4Snippet(int count) |
void |
testLoop5() |
static int |
testLoop5Snippet(int a,
int b,
MemoryScheduleTest obj)
Here the read should float out of the loop.
|
void |
testLoop6() |
static int |
testLoop6Snippet(int a,
int b,
MemoryScheduleTest obj)
Here the read should not float out of the loop.
|
void |
testLoop7() |
static int |
testLoop7Snippet(int a,
int b,
MemoryScheduleTest obj)
Here the read should not float out of the loop.
|
void |
testLoop8() |
static int |
testLoop8Snippet(int a,
int b)
Here the read should not float to the end.
|
void |
testLoop9() |
static int |
testLoop9Snippet(int a,
int b)
Here the read should float after the loop.
|
void |
testProxy() |
static void |
testProxySnippet() |
void |
testSimple() |
static int |
testSimpleSnippet()
In this test the read should be scheduled before the write.
|
void |
testSplit1() |
static int |
testSplit1Snippet(int a)
In this case the read should be scheduled in the first block.
|
void |
testSplit2() |
static int |
testSplit2Snippet(int a)
Here the read should float to the end.
|
void |
testStringHashCode() |
int |
testStringHashCodeSnippet() |
void |
testStringReplace() |
String |
testStringReplaceSnippet(String input) |
assertOrderedAfterSchedule, assertOrderedAfterSchedule
addMethod, after, afterTest, applyArgSuppliers, argsWithReceiver, asResolvedJavaMethod, assertConstantReturn, assertEquals, assertEquals, assertEquals, before, beforeTest, branchProbability, breakpoint, breakpoint, checkArgs, checkHighTierGraph, checkLowTierGraph, checkMidTierGraph, compile, countUnusedConstants, createLIRSuites, createSuites, editGraphBuilderConfiguration, executeActual, executeActualCheckDeopt, executeExpected, getBackend, getCanonicalGraphString, getCode, getCode, getCode, getCodeCache, getConstantReflection, getCustomGraphBuilderSuite, getDefaultGraphBuilderPlugins, getDefaultGraphBuilderSuite, getDefaultHighTierContext, getLIRSuites, getLowerer, getMetaAccess, getNodeCountExcludingUnusedConstants, getProviders, getReplacements, getResolvedJavaMethod, getResolvedJavaMethod, getResolvedJavaMethod, getSnippetReflection, getSpeculationLog, getSuites, getTarget, initializeDebugging, invoke, isArchitecture, iterationCount, lookupMethod, parseDebug, parseEager, parseEager, parseForCompile, parseProfiled, parseProfiled, referenceInvoke, supply, test, test, testAgainstExpected, testAgainstExpected, testN
assertDeepEquals, assertDeepEquals, assertDeepEquals, assertDeepEquals, assertFalse, assertFalse, assertFalse, assertTrue, assertTrue, assertTrue, equalFloatsOrDoublesDelta, fail, getMethod, getMethod, getMethod, ulpsDelta
private static final MemoryScheduleTest.Container container
private static final List<MemoryScheduleTest.Container> containerList
private int hash
private final char[] value
public MemoryScheduleTest()
public static int testSimpleSnippet()
public void testSimple()
public static int testSplit1Snippet(int a)
public void testSplit1()
public static int testSplit2Snippet(int a)
public void testSplit2()
public static int testLoop1Snippet(int a, int b)
public void testLoop1()
public static int testLoop2Snippet(int a, int b)
public void testLoop2()
public static int testLoop3Snippet(int a)
public void testLoop3()
public String testStringReplaceSnippet(String input)
public void testStringReplace()
public static int testLoop5Snippet(int a, int b, MemoryScheduleTest obj)
public void testLoop5()
public static int testLoop6Snippet(int a, int b, MemoryScheduleTest obj)
public void testLoop6()
public static int testLoop7Snippet(int a, int b, MemoryScheduleTest obj)
public void testLoop7()
public static int testLoop8Snippet(int a, int b)
public void testLoop8()
public static int testLoop9Snippet(int a, int b)
public void testLoop9()
public static int testArrayCopySnippet(Integer intValue, char[] a, char[] b, int len)
public void testArrayCopy()
public static int testIfRead1Snippet(int a)
public void testIfRead1()
public static int testIfRead2Snippet(int a)
public void testIfRead2()
public static int testIfRead3Snippet(int a)
public void testIfRead3()
public static int testIfRead4Snippet(int a)
public void testIfRead4()
public static int testIfRead5Snippet(int a)
public void testIfRead5()
public static int testAntiDependencySnippet(int a)
public void testAntiDependency()
public static int testBlockScheduleSnippet()
public void testBlockSchedule()
public static int testBlockSchedule2Snippet(int value)
public void testBlockSchedule2()
public static void testProxySnippet()
public void testProxy()
public int testStringHashCodeSnippet()
public void testStringHashCode()
public static int testLoop4Snippet(int count)
public void testLoop4()
private void assertReadWithinAllReturnBlocks(SchedulePhase schedule, boolean withinReturnBlock)
private void assertReadWithinStartBlock(SchedulePhase schedule, boolean withinStartBlock)
private static void assertReadAndWriteInSameBlock(SchedulePhase schedule, boolean inSame)
private static void assertReadBeforeAllWritesInStartBlock(SchedulePhase schedule)
private SchedulePhase getFinalSchedule(String snippet, MemoryScheduleTest.TestMode mode)
private SchedulePhase getFinalSchedule(String snippet, MemoryScheduleTest.TestMode mode, SchedulePhase.SchedulingStrategy schedulingStrategy)