Changeset View
Changeset View
Standalone View
Standalone View
unittests/Isl/IslTest.cpp
Show First 20 Lines • Show All 777 Lines • ▼ Show 20 Lines | EXPECT_EQ(UMAP("{}"), | ||||
UMAP("{ Read[] -> Elt[] }"), ReadEltInSameInst, | UMAP("{ Read[] -> Elt[] }"), ReadEltInSameInst, | ||||
false, false)); | false, false)); | ||||
// Corner case: no reads | // Corner case: no reads | ||||
EXPECT_EQ(UMAP("{ Elt[] -> [i] : i <= 0 }"), | EXPECT_EQ(UMAP("{ Elt[] -> [i] : i <= 0 }"), | ||||
computeArrayUnused(UMAP("{ Write[] -> [0] }"), | computeArrayUnused(UMAP("{ Write[] -> [0] }"), | ||||
UMAP("{ Write[] -> Elt[] }"), UMAP("{}"), | UMAP("{ Write[] -> Elt[] }"), UMAP("{}"), | ||||
ReadEltInSameInst, false, true)); | ReadEltInSameInst, false, true)); | ||||
// Two writes | |||||
EXPECT_EQ( | |||||
UMAP("{ Elt[] -> [i] : i <= 10 }"), | |||||
computeArrayUnused(UMAP("{ WriteA[] -> [0]; WriteB[] -> [10] }"), | |||||
UMAP("{ WriteA[] -> Elt[]; WriteB[] -> Elt[] }"), | |||||
UMAP("{}"), ReadEltInSameInst, false, true)); | |||||
// Two unused zones | |||||
// read,write,read,write | |||||
EXPECT_EQ( | |||||
UMAP("{ Elt[] -> [i] : 0 < i <= 10; Elt[] -> [i] : 20 < i <= 30 }"), | |||||
computeArrayUnused(UMAP("{ ReadA[] -> [0]; WriteA[] -> [10]; ReadB[] " | |||||
"-> [20]; WriteB[] -> [30] }"), | |||||
UMAP("{ WriteA[] -> Elt[]; WriteB[] -> Elt[] }"), | |||||
UMAP("{ ReadA[] -> Elt[]; ReadB[] -> Elt[] }"), | |||||
ReadEltInSameInst, false, true)); | |||||
// write, write | |||||
EXPECT_EQ( | |||||
UMAP("{ Elt[] -> [i] : i <= 10 }"), | |||||
computeArrayUnused( | |||||
UMAP("{ WriteA[] -> [0]; WriteB[] -> [10]; Read[] -> [20] }"), | |||||
UMAP("{ WriteA[] -> Elt[]; WriteB[] -> Elt[] }"), | |||||
UMAP("{ Read[] -> Elt[] }"), ReadEltInSameInst, false, true)); | |||||
// write, read | |||||
EXPECT_EQ(UMAP("{ Elt[] -> [i] : i <= 0 }"), | |||||
computeArrayUnused(UMAP("{ Write[] -> [0]; Read[] -> [10] }"), | |||||
UMAP("{ Write[] -> Elt[] }"), | |||||
UMAP("{ Read[] -> Elt[] }"), ReadEltInSameInst, | |||||
false, true)); | |||||
// read, write, read | |||||
EXPECT_EQ(UMAP("{ Elt[] -> [i] : 0 < i <= 10 }"), | |||||
computeArrayUnused( | |||||
UMAP("{ ReadA[] -> [0]; Write[] -> [10]; ReadB[] -> [20] }"), | |||||
UMAP("{ Write[] -> Elt[] }"), | |||||
UMAP("{ ReadA[] -> Elt[]; ReadB[] -> Elt[] }"), | |||||
ReadEltInSameInst, false, true)); | |||||
// read, write, write | |||||
EXPECT_EQ( | |||||
UMAP("{ Elt[] -> [i] : 0 < i <= 20 }"), | |||||
computeArrayUnused( | |||||
UMAP("{ Read[] -> [0]; WriteA[] -> [10]; WriteB[] -> [20] }"), | |||||
UMAP("{ WriteA[] -> Elt[]; WriteB[] -> Elt[] }"), | |||||
UMAP("{ Read[] -> Elt[] }"), ReadEltInSameInst, false, true)); | |||||
// read, write, write, read | |||||
EXPECT_EQ( | |||||
UMAP("{ Elt[] -> [i] : 0 < i <= 20 }"), | |||||
computeArrayUnused(UMAP("{ ReadA[] -> [0]; WriteA[] -> [10]; WriteB[] " | |||||
"-> [20]; ReadB[] -> [30] }"), | |||||
UMAP("{ WriteA[] -> Elt[]; WriteB[] -> Elt[] }"), | |||||
UMAP("{ ReadA[] -> Elt[]; ReadB[] -> Elt[] }"), | |||||
ReadEltInSameInst, false, true)); | |||||
} | } | ||||
// Read and write in same statement | // Read and write in same statement | ||||
EXPECT_EQ(UMAP("{ Elt[] -> [i] : i < 0 }"), | EXPECT_EQ(UMAP("{ Elt[] -> [i] : i < 0 }"), | ||||
computeArrayUnused(UMAP("{ RW[] -> [0] }"), | computeArrayUnused(UMAP("{ RW[] -> [0] }"), | ||||
UMAP("{ RW[] -> Elt[] }"), | UMAP("{ RW[] -> Elt[] }"), | ||||
UMAP("{ RW[] -> Elt[] }"), true, false, false)); | UMAP("{ RW[] -> Elt[] }"), true, false, false)); | ||||
EXPECT_EQ(UMAP("{ Elt[] -> [i] : i <= 0 }"), | EXPECT_EQ(UMAP("{ Elt[] -> [i] : i <= 0 }"), | ||||
▲ Show 20 Lines • Show All 156 Lines • Show Last 20 Lines |