From e31c37890a86aedfb209cf543baf05b1b60a27d2 Mon Sep 17 00:00:00 2001 From: Dibyendu Majumdar Date: Mon, 29 Apr 2024 00:11:36 +0100 Subject: Ch10update (#75) * Store-after-Store peep * Load-after-Store peephole * Fix graph viz mem edge color bug * Scalar replace loop carried dependence * #67 Dead Not node hanging around - if we add a Not in the upcast then add it to the IterPeeps worklist to ensure it gets cleaned up. We don't see the Not node in the parser hence we cannot do a peep on it there. * #67 Update visuals. Add description of Store-Store and Store-Load peeps. Add examples. * #67 Undo the change that wasn't supposed to be committed! * #67 Update description of the Store-Store and Store-Load peepholes --------- Co-authored-by: Cliff Click --- chapter10/docs/example1.gv | 72 +++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 39 deletions(-) (limited to 'chapter10/docs/example1.gv') diff --git a/chapter10/docs/example1.gv b/chapter10/docs/example1.gv index fcc24154..cbb12cb5 100644 --- a/chapter10/docs/example1.gv +++ b/chapter10/docs/example1.gv @@ -1,8 +1,7 @@ digraph chapter10 { /* -struct Vec2D { int x; int y; } - -Vec2D v = new Vec2D; +struct Vector2D { int x; int y; } +Vector2D v = new Vector2D; v.x = 1; if (arg) v.y = 2; @@ -12,7 +11,6 @@ return v; */ rankdir=BT; - ordering="in"; concentrate="true"; compound="true"; subgraph cluster_Nodes { @@ -21,18 +19,17 @@ return v; Start - +
$ctrlarg$Vec2D_x$Vec2D_y
$ctrlarg$2$3
> ]; Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ]; - New8 [ label="new Vec2D" ]; + new8 [ label="new Vector2D" ]; Con_9 [ label="#0" ]; - Store10 [ label="Store" ]; - Store11 [ label="Store" ]; + Store11 [ label=".y =" ]; Con_12 [ label="#1" ]; - Store13 [ label="Store" ]; + Store13 [ label=".x =" ]; If14 [ shape=plaintext label=< @@ -44,41 +41,38 @@ return v;
If
> ]; Con_18 [ label="#2" ]; - Store19 [ label="Store" ]; - Con_20 [ label="#3" ]; - Store21 [ label="Store" ]; - Region22 [ shape=box style=filled fillcolor=yellow label="Region" ]; - Phi_Vec2D_y23 [ style=filled fillcolor=lightyellow label="φ_$Vec2D_y" ]; - Return24 [ shape=box style=filled fillcolor=yellow label="Return" ]; - { rank=same; Region22;Phi_Vec2D_y23;} + Store19 [ label=".y =" ]; + Con_22 [ label="#3" ]; + Store23 [ label=".y =" ]; + Region24 [ shape=box style=filled fillcolor=yellow label="Region" ]; + Phi_326 [ style=filled fillcolor=lightyellow label="φ_$3" ]; + Return27 [ shape=box style=filled fillcolor=yellow label="Return" ]; + { rank=same; Region24;Phi_326;} } edge [ fontname=Helvetica, fontsize=8 ]; - Stop3 -> Return24[taillabel=0 color=red]; - New8 -> Start2:p0[taillabel=0 color=green]; - Store10 -> Start2:p2[taillabel=1]; - Store10 -> New8[taillabel=2]; - Store10 -> Con_9[taillabel=3]; - Store11 -> Start2:p3[taillabel=1]; - Store11 -> New8[taillabel=2]; + Stop3 -> Return27[taillabel=0 color=red]; + new8 -> Start2:p0[taillabel=0 color=green]; + Store11 -> Start2:p3[taillabel=1 color=blue]; + Store11 -> new8[taillabel=2]; Store11 -> Con_9[taillabel=3]; - Store13 -> Store10[taillabel=1]; - Store13 -> New8[taillabel=2]; + Store13 -> Start2:p2[taillabel=1 color=blue]; + Store13 -> new8[taillabel=2]; Store13 -> Con_12[taillabel=3]; If14 -> Start2:p0[taillabel=0 color=red]; If14 -> Start2:p1[taillabel=1]; - Store19 -> Store11[taillabel=1]; - Store19 -> New8[taillabel=2]; + Store19 -> Store11[taillabel=1 color=blue]; + Store19 -> new8[taillabel=2]; Store19 -> Con_18[taillabel=3]; - Store21 -> Store11[taillabel=1]; - Store21 -> New8[taillabel=2]; - Store21 -> Con_20[taillabel=3]; - Region22 -> If14:p0[taillabel=1 color=red]; - Region22 -> If14:p1[taillabel=2 color=red]; - Phi_Vec2D_y23 -> Region22 [style=dotted taillabel=0]; - Phi_Vec2D_y23 -> Store19[taillabel=1]; - Phi_Vec2D_y23 -> Store21[taillabel=2 constraint=false]; - Return24 -> Region22[taillabel=0 color=red]; - Return24 -> New8[taillabel=1]; - Return24 -> Store13[taillabel=2]; - Return24 -> Phi_Vec2D_y23[taillabel=3]; + Store23 -> Store11[taillabel=1 color=blue]; + Store23 -> new8[taillabel=2]; + Store23 -> Con_22[taillabel=3]; + Region24 -> If14:p0[taillabel=1 color=red]; + Region24 -> If14:p1[taillabel=2 color=red]; + Phi_326 -> Region24 [style=dotted taillabel=0]; + Phi_326 -> Store19[taillabel=1 color=blue]; + Phi_326 -> Store23[taillabel=2 color=blue constraint=false]; + Return27 -> Region24[taillabel=0 color=red]; + Return27 -> new8[taillabel=1]; + Return27 -> Store13[taillabel=2 color=blue]; + Return27 -> Phi_326[taillabel=3 color=blue]; } -- cgit v1.2.3