diff options
| author | Dibyendu Majumdar <dibyendumajumdar@users.noreply.github.com> | 2024-04-29 00:11:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-28 16:11:36 -0700 |
| commit | e31c37890a86aedfb209cf543baf05b1b60a27d2 (patch) | |
| tree | 5c1151adb45e839a8f4b0f7cc918bf49771e52f1 /chapter10/docs/example1.gv | |
| parent | 17f9d743c06170f20773863bd1eca4f25ef41490 (diff) | |
| download | Simple-e31c37890a86aedfb209cf543baf05b1b60a27d2.tar.gz Simple-e31c37890a86aedfb209cf543baf05b1b60a27d2.zip | |
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 <cliffc@acm.org>
Diffstat (limited to 'chapter10/docs/example1.gv')
| -rw-r--r-- | chapter10/docs/example1.gv | 72 |
1 files changed, 33 insertions, 39 deletions
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; <TR><TD BGCOLOR="yellow">Start</TD></TR> <TR><TD> <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$Vec2D_x</TD><TD PORT="p3">$Vec2D_y</TD></TR> + <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$2</TD><TD PORT="p3">$3</TD></TR> </TABLE> </TD></TR> </TABLE>> ]; 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=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> <TR><TD BGCOLOR="yellow">If</TD></TR> @@ -44,41 +41,38 @@ return v; </TABLE>> ]; 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]; } |
