Skip to content

Commit 7f0fb85

Browse files
committed
test fusion 2
1 parent 465f02e commit 7f0fb85

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

test-out/epfl/test7-fusion22.check

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ replace TP(Sym(21),ArrayIndex(Sym(12),Sym(13))) at 2 within TTP(List(Sym(4), Sym
1414
try once more ...
1515
fusion of List((Sym(3),Sym(4)), (Sym(3),Sym(8)), (Sym(3),Sym(12)), (Sym(3),Sym(34))) prevented by TP(Sym(29),ArrayIndex(Sym(3),Sym(14))) which is required by body of List(Sym(4), Sym(8), Sym(12), Sym(34))
1616
fusion of List((Sym(7),Sym(4)), (Sym(7),Sym(8)), (Sym(7),Sym(12)), (Sym(7),Sym(34))) prevented by TP(Sym(30),ArrayIndex(Sym(7),Sym(14))) which is required by body of List(Sym(4), Sym(8), Sym(12), Sym(34))
17-
fusion of List((Sym(32),Sym(4)), (Sym(32),Sym(8)), (Sym(32),Sym(12)), (Sym(32),Sym(34)), (Sym(11),Sym(4)), (Sym(11),Sym(8)), (Sym(11),Sym(12)), (Sym(11),Sym(34))) prevented by TP(Sym(33),Plus(Sym(32),Sym(11))) which is required by body of List(Sym(4), Sym(8), Sym(12), Sym(34))
17+
fusion of List((Sym(32),Sym(4)), (Sym(32),Sym(8)), (Sym(32),Sym(12)), (Sym(32),Sym(34)), (Sym(11),Sym(4)), (Sym(11),Sym(8)), (Sym(11),Sym(12)), (Sym(11),Sym(34))) prevented by TP(Sym(33),DoublePlus(Sym(32),Sym(11))) which is required by body of List(Sym(4), Sym(8), Sym(12), Sym(34))
1818
wtableneg: List((Sym(3),Sym(4)), (Sym(3),Sym(8)), (Sym(3),Sym(12)), (Sym(3),Sym(34)), (Sym(7),Sym(4)), (Sym(7),Sym(8)), (Sym(7),Sym(12)), (Sym(7),Sym(34)), (Sym(32),Sym(4)), (Sym(32),Sym(8)), (Sym(32),Sym(12)), (Sym(32),Sym(34)), (Sym(11),Sym(4)), (Sym(11),Sym(8)), (Sym(11),Sym(12)), (Sym(11),Sym(34)))
1919
partitions: List(TTP(List(Sym(4), Sym(8), Sym(12), Sym(34)),List(SimpleLoop(Const(100),Sym(1),ArrayElem(Block(Sym(3)))), SimpleLoop(Const(100),Sym(5),ArrayElem(Block(Sym(7)))), SimpleLoop(Const(100),Sym(9),ArrayElem(Block(Sym(11)))), SimpleLoop(Const(100),Sym(1),ArrayElem(Block(Sym(33))))),SimpleFatLoop(Const(100),Sym(1),List(ArrayElem(Block(Sym(3))), ArrayElem(Block(Sym(7))), ArrayElem(Block(Sym(11))), ArrayElem(Block(Sym(33)))))), TTP(List(Sym(3), Sym(7), Sym(11), Sym(32)),List(SimpleLoop(Const(50),Sym(2),ArrayElem(Block(Const(1.0)))), SimpleLoop(Const(50),Sym(6),ArrayElem(Block(Const(2.0)))), SimpleLoop(Const(50),Sym(10),ReduceElem(Block(Const(4.0)))), SimpleLoop(Const(50),Sym(14),ReduceElem(Block(Sym(31))))),SimpleFatLoop(Const(50),Sym(2),List(ArrayElem(Block(Const(1.0))), ArrayElem(Block(Const(2.0))), ReduceElem(Block(Const(4.0))), ReduceElem(Block(Sym(31)))))))
2020
considering TP(Sym(29),ArrayIndex(Sym(3),Sym(14)))
2121
replace TP(Sym(29),ArrayIndex(Sym(3),Sym(14))) at 0 within TTP(List(Sym(3), Sym(7), Sym(11), Sym(32)),List(SimpleLoop(Const(50),Sym(2),ArrayElem(Block(Const(1.0)))), SimpleLoop(Const(50),Sym(6),ArrayElem(Block(Const(2.0)))), SimpleLoop(Const(50),Sym(10),ReduceElem(Block(Const(4.0)))), SimpleLoop(Const(50),Sym(14),ReduceElem(Block(Sym(31))))),SimpleFatLoop(Const(50),Sym(2),List(ArrayElem(Block(Const(1.0))), ArrayElem(Block(Const(2.0))), ReduceElem(Block(Const(4.0))), ReduceElem(Block(Sym(31))))))
2222
considering TP(Sym(30),ArrayIndex(Sym(7),Sym(14)))
2323
replace TP(Sym(30),ArrayIndex(Sym(7),Sym(14))) at 1 within TTP(List(Sym(3), Sym(7), Sym(11), Sym(32)),List(SimpleLoop(Const(50),Sym(2),ArrayElem(Block(Const(1.0)))), SimpleLoop(Const(50),Sym(6),ArrayElem(Block(Const(2.0)))), SimpleLoop(Const(50),Sym(10),ReduceElem(Block(Const(4.0)))), SimpleLoop(Const(50),Sym(14),ReduceElem(Block(Sym(31))))),SimpleFatLoop(Const(50),Sym(2),List(ArrayElem(Block(Const(1.0))), ArrayElem(Block(Const(2.0))), ReduceElem(Block(Const(4.0))), ReduceElem(Block(Sym(31))))))
2424
try once more ...
25-
fusion of List((Sym(38),Sym(4)), (Sym(38),Sym(8)), (Sym(38),Sym(12)), (Sym(38),Sym(40)), (Sym(11),Sym(4)), (Sym(11),Sym(8)), (Sym(11),Sym(12)), (Sym(11),Sym(40))) prevented by TP(Sym(39),Plus(Sym(38),Sym(11))) which is required by body of List(Sym(4), Sym(8), Sym(12), Sym(40))
25+
fusion of List((Sym(38),Sym(4)), (Sym(38),Sym(8)), (Sym(38),Sym(12)), (Sym(38),Sym(40)), (Sym(11),Sym(4)), (Sym(11),Sym(8)), (Sym(11),Sym(12)), (Sym(11),Sym(40))) prevented by TP(Sym(39),DoublePlus(Sym(38),Sym(11))) which is required by body of List(Sym(4), Sym(8), Sym(12), Sym(40))
2626
wtableneg: List((Sym(38),Sym(4)), (Sym(38),Sym(8)), (Sym(38),Sym(12)), (Sym(38),Sym(40)), (Sym(11),Sym(4)), (Sym(11),Sym(8)), (Sym(11),Sym(12)), (Sym(11),Sym(40)))
2727
partitions: List(TTP(List(Sym(4), Sym(8), Sym(12), Sym(40)),List(SimpleLoop(Const(100),Sym(1),ArrayElem(Block(Sym(3)))), SimpleLoop(Const(100),Sym(5),ArrayElem(Block(Sym(7)))), SimpleLoop(Const(100),Sym(9),ArrayElem(Block(Sym(11)))), SimpleLoop(Const(100),Sym(1),ArrayElem(Block(Sym(39))))),SimpleFatLoop(Const(100),Sym(1),List(ArrayElem(Block(Sym(3))), ArrayElem(Block(Sym(7))), ArrayElem(Block(Sym(11))), ArrayElem(Block(Sym(39)))))), TTP(List(Sym(3), Sym(7), Sym(11), Sym(38)),List(SimpleLoop(Const(50),Sym(2),ArrayElem(Block(Const(1.0)))), SimpleLoop(Const(50),Sym(6),ArrayElem(Block(Const(2.0)))), SimpleLoop(Const(50),Sym(10),ReduceElem(Block(Const(4.0)))), SimpleLoop(Const(50),Sym(2),ReduceElem(Block(Sym(37))))),SimpleFatLoop(Const(50),Sym(2),List(ArrayElem(Block(Const(1.0))), ArrayElem(Block(Const(2.0))), ReduceElem(Block(Const(4.0))), ReduceElem(Block(Sym(37)))))))
2828
no changes, we're done

test-out/epfl/test7-fusion24.check

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ wtableneg: List()
1616
partitions: List(TTP(List(Sym(8), Sym(22)),List(SimpleLoop(Sym(5),Sym(6),ArrayElem(Block(Sym(7)))), SimpleLoop(Sym(5),Sym(11),ArrayElem(Block(Sym(21))))),SimpleFatLoop(Sym(5),Sym(6),List(ArrayElem(Block(Sym(7))), ArrayElem(Block(Sym(21)))))))
1717
considering TP(Sym(20),ArrayIndex(Sym(8),Sym(11)))
1818
replace TP(Sym(20),ArrayIndex(Sym(8),Sym(11))) at 0 within TTP(List(Sym(8), Sym(22)),List(SimpleLoop(Sym(5),Sym(6),ArrayElem(Block(Sym(7)))), SimpleLoop(Sym(5),Sym(11),ArrayElem(Block(Sym(21))))),SimpleFatLoop(Sym(5),Sym(6),List(ArrayElem(Block(Sym(7))), ArrayElem(Block(Sym(21))))))
19-
*** removing self subtraction Sym(7) - Sym(7)
19+
Sym(28)
2020
try once more ...
2121
wtableneg: List()
22-
partitions: List(TTP(List(Sym(26)),List(SimpleLoop(Sym(5),Sym(6),ArrayElem(Block(Const(0.0))))),SimpleFatLoop(Sym(5),Sym(6),List(ArrayElem(Block(Const(0.0)))))))
22+
partitions: List(TTP(List(Sym(29)),List(SimpleLoop(Sym(5),Sym(6),ArrayElem(Block(Const(0.0))))),SimpleFatLoop(Sym(5),Sym(6),List(ArrayElem(Block(Const(0.0)))))))
2323
no changes, we're done
24-
super.focusExactScopeFat with result changed from List(Sym(22)) to List(Sym(26))
24+
super.focusExactScopeFat with result changed from List(Sym(22)) to List(Sym(29))
2525
/*****************************************
2626
Emitting Generated Code
2727
*******************************************/
@@ -37,11 +37,11 @@ val x17 = println(x4)
3737
val x7 = x2.apply(0)
3838
var x23 = new Array[Array[Double]](100)
3939
for (x5 <- 0 until 100) {
40-
var x26 = new Array[Double](x5)
40+
var x29 = new Array[Double](x5)
4141
for (x6 <- 0 until x5) {
42-
x26(x6) = 0.0
42+
x29(x6) = 0.0
4343
}
44-
val x22 = x26
44+
val x22 = x29
4545
x23(x5) = x22
4646
}
4747
val x24 = println(x23)

test-src/epfl/test7-analysis/TestFusion2.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import java.io.{PrintWriter,StringWriter,FileOutputStream}
1313

1414

1515

16-
trait FusionProg21 extends LiftPrimitives with PrimitiveOps with ArrayLoops with Print with OrderingOps {
16+
trait FusionProg21 extends PrimitiveOps with LiftPrimitives with ArrayLoops with Print with OrderingOps {
1717

1818
def infix_foo(x: Rep[Array[Double]]): Rep[Double] = x.at(0)
1919

@@ -40,7 +40,7 @@ trait FusionProg21 extends LiftPrimitives with PrimitiveOps with ArrayLoops with
4040
}
4141

4242

43-
trait FusionProg22 extends LiftPrimitives with PrimitiveOps with ArrayLoops with Print with OrderingOps {
43+
trait FusionProg22 extends PrimitiveOps with LiftPrimitives with ArrayLoops with Print with OrderingOps {
4444

4545
def infix_foo(x: Rep[Array[Double]]): Rep[Double] = x.at(0)
4646

@@ -85,7 +85,7 @@ trait FusionProg22 extends LiftPrimitives with PrimitiveOps with ArrayLoops with
8585
}
8686

8787

88-
trait FusionProg23 extends LiftPrimitives with PrimitiveOps with ArrayLoops with Print with OrderingOps {
88+
trait FusionProg23 extends PrimitiveOps with LiftPrimitives with ArrayLoops with Print with OrderingOps {
8989

9090
def infix_foo(x: Rep[Array[Double]]): Rep[Double] = x.at(0)
9191

@@ -121,7 +121,7 @@ trait FusionProg23 extends LiftPrimitives with PrimitiveOps with ArrayLoops with
121121
}
122122

123123

124-
trait FusionProg24 extends LiftPrimitives with PrimitiveOps with ArrayLoops with Print with OrderingOps {
124+
trait FusionProg24 extends PrimitiveOps with LiftPrimitives with ArrayLoops with Print with OrderingOps {
125125

126126
def infix_foo(x: Rep[Array[Double]]): Rep[Double] = x.at(0)
127127

@@ -216,7 +216,7 @@ class TestFusion2 extends FileDiffSuite {
216216
override def double_minus(x: Exp[Double], y: Exp[Double])(implicit pos: SourceContext) = if (x == y) {
217217
println("*** removing self subtraction " + x + " - " + y)
218218
0
219-
} else super.infix_-(x,y) // optimizations to trigger test behavior
219+
} else super.double_minus(x,y) // optimizations to trigger test behavior
220220

221221
override val verbosity = 1
222222
override def arrayTyp[T:Typ]: Typ[Array[T]] = typ[T].arrayTyp

0 commit comments

Comments
 (0)