From 736c658c274404084b15b450b2ab72d0e7569586 Mon Sep 17 00:00:00 2001 From: Dibyendu Majumdar Date: Fri, 3 Nov 2023 21:21:54 +0000 Subject: Backport changes in Chapter 5 to previous chapters and update Chapter5 documentation (#34) * Backport changes from chapter 5 to older chapters (#30) * Fix wrong indent * Backport to chapter 4 * Backport to chapter 3 * Backport to chapter 2 * Backport to chapter 1 * Add if statement to comment (#32) * Update visuals for chapters 1,2 & 3. Reenable drawing of edges from constants to Start for these chapters. * Update visuals for chapters 4. Revise text to explain the labeling of edges in graphs and that we omit edge from Constant to Start nodes from chapter 4. * Add code snippets for if statement parsing and the duplication and merging of ScopeNodes. Explain how scopeNodes are duplicated and merged. * Add constant check to minus node (#31) * Fix closing root block with } (#33) * Backport fix closing root block with } to chapter 4 and 3 (#35) * Show use-def edge from Phi to Region as dotted edge. Add example of Phi peephole. Update visuals. Add more examples. * Fix visuals in chapter 1 and README in chapter 4. * Remove subheading * Adjust spaces --------- Co-authored-by: XmiliaH <45106915+XmiliaH@users.noreply.github.com> --- chapter04/docs/04-post-peephole.gv | 32 +++++----- chapter04/docs/04-post-peephole.svg | 82 +++++++++++++------------ chapter04/docs/04-pre-peephole.gv | 42 ++++++------- chapter04/docs/04-pre-peephole.svg | 116 ++++++++++++++++++------------------ 4 files changed, 137 insertions(+), 135 deletions(-) (limited to 'chapter04/docs') diff --git a/chapter04/docs/04-post-peephole.gv b/chapter04/docs/04-post-peephole.gv index 22f55468..51e176bc 100644 --- a/chapter04/docs/04-post-peephole.gv +++ b/chapter04/docs/04-post-peephole.gv @@ -3,8 +3,10 @@ digraph chapter04 { return 1+arg+2; #showGraph; */ rankdir=BT; + ordering="in"; + concentrate="true"; subgraph cluster_Nodes { - Start1 [ shape=plaintext label=< + Start2 [ shape=plaintext label=<
Start
@@ -14,28 +16,28 @@ return 1+arg+2; #showGraph;
> ]; - Con_9 [ label="#3" ]; - Add10 [ label="Add" ]; - Return11 [ shape=box style=filled fillcolor=yellow label="Return" ]; + Con_10 [ label="#3" ]; + Add11 [ label="+" ]; + Return12 [ shape=box style=filled fillcolor=yellow label="Return" ]; } node [shape=plaintext]; - subgraph cluster_0 { - scope0 [label=< + subgraph cluster_Scope1_0 { + Scope1_0 [label=< - +
0$ctrlarg
0$ctrlarg
>]; - subgraph cluster_1 { - scope1 [label=< + subgraph cluster_Scope1_1 { + Scope1_1 [label=<
1
>]; } } - Add10 -> Start1:p1; - Add10 -> Con_9; - Return11 -> Start1:p0 [color=red]; - Return11 -> Add10; + edge [ fontname=Helvetica, fontsize=8 ]; + Add11 -> Start2:p1[taillabel=1]; + Add11 -> Con_10[taillabel=2]; + Return12 -> Start2:p0[taillabel=0; color=red]; + Return12 -> Add11[taillabel=1]; edge [style=dashed color=cornflowerblue]; - scope0:"scope0_$ctrl" -> Start1:p0; - scope0:"scope0_arg" -> Start1:p1; + Scope1_0:"Scope1_0_arg" -> Start2:p1; } \ No newline at end of file diff --git a/chapter04/docs/04-post-peephole.svg b/chapter04/docs/04-post-peephole.svg index 5a45722c..550c16ef 100644 --- a/chapter04/docs/04-post-peephole.svg +++ b/chapter04/docs/04-post-peephole.svg @@ -14,16 +14,16 @@ -cluster_0 +cluster_Scope1_0 -cluster_1 +cluster_Scope1_1 - + -Start1 +Start2 Start @@ -34,51 +34,55 @@ arg - + -Con_9 +Con_10 #3 - + -Add10 - -Add +Add11 + ++ - + -Add10->Start1:p1 - - +Add11->Start2:p1 + + +1 - + -Add10->Con_9 - - +Add11->Con_10 + + +2 - + -Return11 - -Return +Return12 + +Return - + -Return11->Start1:p0 - - +Return12->Start2:p0 + + +0 - + -Return11->Add10 - - +Return12->Add11 + + +1 - + -scope0 +Scope1_0 0 @@ -87,21 +91,15 @@ arg - + -scope0:scope0_$ctrl->Start1:p0 - - - - - -scope0:scope0_arg->Start1:p1 +Scope1_0:Scope1_0_arg->Start2:p1 - + -scope1 +Scope1_1 1 diff --git a/chapter04/docs/04-pre-peephole.gv b/chapter04/docs/04-pre-peephole.gv index e8016c87..b6fefc2d 100644 --- a/chapter04/docs/04-pre-peephole.gv +++ b/chapter04/docs/04-pre-peephole.gv @@ -3,8 +3,10 @@ digraph chapter04 { return 1+arg+2; #showGraph; */ rankdir=BT; + ordering="in"; + concentrate="true"; subgraph cluster_Nodes { - Start1 [ shape=plaintext label=< + Start2 [ shape=plaintext label=<
Start
@@ -14,32 +16,32 @@ return 1+arg+2; #showGraph;
> ]; - Con_4 [ label="#1" ]; - Con_5 [ label="#2" ]; - Add6 [ label="Add" ]; - Add7 [ label="Add" ]; - Return8 [ shape=box style=filled fillcolor=yellow label="Return" ]; + Con_5 [ label="#1" ]; + Con_6 [ label="#2" ]; + Add7 [ label="+" ]; + Add8 [ label="+" ]; + Return9 [ shape=box style=filled fillcolor=yellow label="Return" ]; } node [shape=plaintext]; - subgraph cluster_0 { - scope0 [label=< + subgraph cluster_Scope1_0 { + Scope1_0 [label=< - +
0$ctrlarg
0$ctrlarg
>]; - subgraph cluster_1 { - scope1 [label=< + subgraph cluster_Scope1_1 { + Scope1_1 [label=<
1
>]; } } - Add6 -> Start1:p1; - Add6 -> Con_5; - Add7 -> Con_4; - Add7 -> Add6; - Return8 -> Start1:p0 [color=red]; - Return8 -> Add7; + edge [ fontname=Helvetica, fontsize=8 ]; + Add7 -> Start2:p1[taillabel=1]; + Add7 -> Con_6[taillabel=2]; + Add8 -> Con_5[taillabel=1]; + Add8 -> Add7[taillabel=2]; + Return9 -> Start2:p0[taillabel=0; color=red]; + Return9 -> Add8[taillabel=1]; edge [style=dashed color=cornflowerblue]; - scope0:"scope0_$ctrl" -> Start1:p0; - scope0:"scope0_arg" -> Start1:p1; -} + Scope1_0:"Scope1_0_arg" -> Start2:p1; +} \ No newline at end of file diff --git a/chapter04/docs/04-pre-peephole.svg b/chapter04/docs/04-pre-peephole.svg index b1ab4eee..9ec38d27 100644 --- a/chapter04/docs/04-pre-peephole.svg +++ b/chapter04/docs/04-pre-peephole.svg @@ -14,16 +14,16 @@
-cluster_0 +cluster_Scope1_0 -cluster_1 +cluster_Scope1_1 - + -Start1 +Start2 Start @@ -34,75 +34,81 @@ arg - + -Con_4 - -#1 +Con_5 + +#1 - + -Con_5 +Con_6 #2 - + -Add6 - -Add +Add7 + ++ - + -Add6->Start1:p1 - - +Add7->Start2:p1 + + +1 - + -Add6->Con_5 - - +Add7->Con_6 + + +2 - + -Add7 - -Add +Add8 + ++ - + -Add7->Con_4 - - +Add8->Con_5 + + +1 - + -Add7->Add6 - - +Add8->Add7 + + +2 - + -Return8 - -Return +Return9 + +Return - + -Return8->Start1:p0 - - +Return9->Start2:p0 + + +0 - + -Return8->Add7 - - +Return9->Add8 + + +1 - + -scope0 +Scope1_0 0 @@ -111,21 +117,15 @@ arg - + -scope0:scope0_$ctrl->Start1:p0 - - - - - -scope0:scope0_arg->Start1:p1 +Scope1_0:Scope1_0_arg->Start2:p1 - + -scope1 +Scope1_1 1 -- cgit v1.2.3