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> --- chapter02/docs/02-post-peephole-ex1.gv | 16 +++- chapter02/docs/02-post-peephole-ex1.svg | 47 +++++----- chapter02/docs/02-pre-peephole-ex1.gv | 50 +++++----- chapter02/docs/02-pre-peephole-ex1.svg | 161 +++++++++++++++++--------------- 4 files changed, 151 insertions(+), 123 deletions(-) (limited to 'chapter02/docs') diff --git a/chapter02/docs/02-post-peephole-ex1.gv b/chapter02/docs/02-post-peephole-ex1.gv index 290a1178..6c2b23ae 100644 --- a/chapter02/docs/02-post-peephole-ex1.gv +++ b/chapter02/docs/02-post-peephole-ex1.gv @@ -1,11 +1,17 @@ digraph chapter02 { +/* +return 1+2*3+-5; +*/ rankdir=BT; + ordering="in"; + concentrate="true"; subgraph cluster_Nodes { Start1 [ shape=box style=filled fillcolor=yellow label="Start" ]; - Con213 [ label="Con2" ]; + Con_13 [ label="#2" ]; Return14 [ shape=box style=filled fillcolor=yellow label="Return" ]; } - Con213 -> Start1 [style=dotted]; - Return14 -> Start1 [color=red]; - Return14 -> Con213; -} \ No newline at end of file + edge [ fontname=Helvetica, fontsize=8 ]; + Con_13 -> Start1[taillabel=0 style=dotted]; + Return14 -> Start1[taillabel=0 color=red]; + Return14 -> Con_13[taillabel=1]; +} diff --git a/chapter02/docs/02-post-peephole-ex1.svg b/chapter02/docs/02-post-peephole-ex1.svg index b3c42c7d..db27e30d 100644 --- a/chapter02/docs/02-post-peephole-ex1.svg +++ b/chapter02/docs/02-post-peephole-ex1.svg @@ -4,50 +4,53 @@ - + chapter02 - + cluster_Nodes - + Start1 - -Start + +Start - + -Con213 - -Con2 +Con_13 + +#2 - + -Con213->Start1 - - +Con_13->Start1 + + +0 Return14 - -Return + +Return Return14->Start1 - - + + +0 - + -Return14->Con213 - - +Return14->Con_13 + + +1 diff --git a/chapter02/docs/02-pre-peephole-ex1.gv b/chapter02/docs/02-pre-peephole-ex1.gv index c2eab457..411de5ee 100644 --- a/chapter02/docs/02-pre-peephole-ex1.gv +++ b/chapter02/docs/02-pre-peephole-ex1.gv @@ -1,28 +1,34 @@ digraph chapter02 { +/* +return 1+2*3+-5; +*/ rankdir=BT; + ordering="in"; + concentrate="true"; subgraph cluster_Nodes { Start1 [ shape=box style=filled fillcolor=yellow label="Start" ]; - Con12 [ label="Con1" ]; - Con23 [ label="Con2" ]; - Con34 [ label="Con3" ]; - Mul5 [ label="Mul" ]; - Con56 [ label="Con5" ]; - Minus7 [ label="Minus" ]; - Add8 [ label="Add" ]; - Add9 [ label="Add" ]; + Con_2 [ label="#1" ]; + Con_3 [ label="#2" ]; + Con_4 [ label="#3" ]; + Mul5 [ label="*" ]; + Con_6 [ label="#5" ]; + Minus7 [ label="-" ]; + Add8 [ label="+" ]; + Add9 [ label="+" ]; Return10 [ shape=box style=filled fillcolor=yellow label="Return" ]; } - Con12 -> Start1 [style=dotted]; - Con23 -> Start1 [style=dotted]; - Con34 -> Start1 [style=dotted]; - Mul5 -> Con23; - Mul5 -> Con34; - Con56 -> Start1 [style=dotted]; - Minus7 -> Con56; - Add8 -> Mul5; - Add8 -> Minus7; - Add9 -> Con12; - Add9 -> Add8; - Return10 -> Start1 [color=red]; - Return10 -> Add9; -} \ No newline at end of file + edge [ fontname=Helvetica, fontsize=8 ]; + Con_2 -> Start1[taillabel=0 style=dotted]; + Con_3 -> Start1[taillabel=0 style=dotted]; + Con_4 -> Start1[taillabel=0 style=dotted]; + Mul5 -> Con_3[taillabel=1]; + Mul5 -> Con_4[taillabel=2]; + Con_6 -> Start1[taillabel=0 style=dotted]; + Minus7 -> Con_6[taillabel=1]; + Add8 -> Mul5[taillabel=1]; + Add8 -> Minus7[taillabel=2]; + Add9 -> Con_2[taillabel=1]; + Add9 -> Add8[taillabel=2]; + Return10 -> Start1[taillabel=0 color=red]; + Return10 -> Add9[taillabel=1]; +} diff --git a/chapter02/docs/02-pre-peephole-ex1.svg b/chapter02/docs/02-pre-peephole-ex1.svg index 8a1ef457..29c76bd8 100644 --- a/chapter02/docs/02-pre-peephole-ex1.svg +++ b/chapter02/docs/02-pre-peephole-ex1.svg @@ -4,152 +4,165 @@ - + chapter02 - + cluster_Nodes - + Start1 - -Start + +Start - + -Con12 - -Con1 +Con_2 + +#1 - + -Con12->Start1 - - +Con_2->Start1 + + +0 - + -Con23 - -Con2 +Con_3 + +#2 - + -Con23->Start1 - - +Con_3->Start1 + + +0 - + -Con34 - -Con3 +Con_4 + +#3 - + -Con34->Start1 - - +Con_4->Start1 + + +0 Mul5 - -Mul + +* - + -Mul5->Con23 - - +Mul5->Con_3 + + +1 - + -Mul5->Con34 - - +Mul5->Con_4 + + +2 - + -Con56 - -Con5 +Con_6 + +#5 - + -Con56->Start1 - - +Con_6->Start1 + + +0 Minus7 - -Minus + +- - + -Minus7->Con56 - - +Minus7->Con_6 + + +1 Add8 - -Add + ++ Add8->Mul5 - - + + +1 Add8->Minus7 - - + + +2 Add9 - -Add + ++ - + -Add9->Con12 - - +Add9->Con_2 + + +1 Add9->Add8 - - + + +2 Return10 - -Return + +Return Return10->Start1 - - + + +0 Return10->Add9 - - + + +1 -- cgit v1.2.3