Mercurial > hg > graal-compiler
annotate doc/design/graphdrawing.tex @ 2517:8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 27 Apr 2011 15:59:38 +0200 |
parents | |
children | 550b291f56c4 |
rev | line source |
---|---|
2517
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
1 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
2 % graph drawing |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
3 \newcommand{\digraph}[3][scale=1]{ |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
4 \newwrite\dotfile |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
5 \immediate\openout\dotfile=dot_temp_#2.dot |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
6 \immediate\write\dotfile{digraph dot_temp_#2 {\string#3}} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
7 \immediate\closeout\dotfile |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
8 \immediate\write18{bash -c "dot -Tpdf dot_temp_#2.dot > dot_temp_#2.pdf"} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
9 \IfFileExists{dot_temp_#2.pdf} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
10 % the pdf exists: include it |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
11 { \includegraphics[#1]{dot_temp_#2} } |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
12 % the pdf was not created - show a hint |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
13 { \fbox{ \begin{tabular}{l} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
14 The file \texttt{dot_temp_#2.pdf} hasn't been created from |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
15 \texttt{dot_temp_#2.dot} yet. \\ |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
16 We attempted to create it with:\\ |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
17 `\texttt{dot -Tpdf dot_temp_#2.dot > dot_temp_#2.pdf}' \\ |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
18 but that seems not to have worked. You need to execute `\texttt{pdflatex}' with \\ |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
19 the `\texttt{-shell-escape} option. |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
20 \end{tabular}} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
21 } |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
22 } |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
23 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
24 \NewEnviron{digraphenv}[2]{\digraph[#1]{#2}{ margin=0; pad=0; \BODY }} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
25 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
26 \newcommand{\control}[2]{#1:successors:s -> #2:predecessors:n [color=red];} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
27 \newcommand{\controllabel}[2]{#1 -> #2:predecessors:n [color=red];} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
28 \newcommand{\data}[2]{#2:usages:s -> #1:inputs [color=black,dir=back];} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
29 \newcommand{\datalabel}[2]{#2:usages:s -> #1:n [color=black,dir=back];} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
30 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
31 \newcommand{\genericnodestart}[1]{#1 [shape=plaintext, label=< <TABLE BORDER="0" CELLSPACING="0"><TR><TD CELLPADDING="0"><TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0"><TR><TD WIDTH="15" HEIGHT="5" PORT="predecessors" BGCOLOR="rosybrown1"></TD></TR></TABLE></TD><TD COLSPAN="2" CELLPADDING="0" ALIGN="RIGHT"><TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0"><TR>} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
32 \newcommand{\genericnodeend}[0]{</TR></TABLE></TD><TD CELLPADDING="0"><TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0"><TR><TD WIDTH="15" HEIGHT="5" PORT="usages" BGCOLOR="lightgrey"></TD></TR></TABLE></TD></TR></TABLE>>]} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
33 \newcommand{\portinput}[1]{<TD WIDTH="15" HEIGHT="5" PORT="#1" BGCOLOR="lightgrey"></TD>} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
34 \newcommand{\portsuccessor}[1]{<TD WIDTH="15" HEIGHT="5" PORT="#1" BGCOLOR="rosybrown1"></TD>} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
35 \newcommand{\portempty}[0]{<TD WIDTH="15" HEIGHT="5"></TD>} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
36 \newcommand{\genericnodelabel}[1]{</TR></TABLE></TD></TR><TR><TD BORDER="1" COLSPAN="3">#1</TD></TR><TR><TD COLSPAN="2" CELLPADDING="0" ALIGN="RIGHT"><TABLE BORDER="0" CELLSPACING="2" CELLPADDING="0"><TR>} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
37 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
38 \newcommand{\node}[2]{\genericnodestart{#1} \portempty \portinput{inputs} \genericnodelabel{#2} \portsuccessor{successors} \portempty \genericnodeend } |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
39 \newcommand{\nodebi}[2]{\genericnodestart{#1} \portinput{in1} \portinput{in2} \genericnodelabel{#2} \portsuccessor{successors} \portempty \genericnodeend } |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
40 \newcommand{\nodetri}[2]{\genericnodestart{#1} \portinput{in1} \portinput{in2} \portinput{in3} \genericnodelabel{#2} \portsuccessor{successors} \portempty \portempty \genericnodeend } |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
41 \newcommand{\nodesplit}[2]{\genericnodestart{#1} \portempty \portinput{inputs} \genericnodelabel{#2} \portsuccessor{succ1} \portsuccessor{succ2} \genericnodeend } |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
42 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
43 %%%%%%%%%%%%%% example: |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
44 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
45 % \begin{digraphenv}{scale=0.5}{MyGraph} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
46 % \node{start}{start} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
47 % \node{end}{end} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
48 % % input projections |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
49 % \node{a}{proj:a} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
50 % \node{b}{proj:b} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
51 % \data{a}{start} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
52 % \data{b}{start} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
53 % % if |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
54 % \nodebi{cmp1}{<} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
55 % \datalabel{cmp1:in1}{a} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
56 % \datalabel{cmp1:in2}{b} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
57 % \nodesplit{if}{if} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
58 % \data{if}{cmp1} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
59 % \control{start}{if} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
60 % % branches |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
61 % \nodebi{add1}{+} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
62 % \datalabel{add1:in1}{a} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
63 % \datalabel{add1:in2}{b} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
64 % \nodebi{sub1}{-} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
65 % \datalabel{sub1:in1}{a} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
66 % \datalabel{sub1:in2}{b} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
67 % \controllabel{if:succ1}{add1} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
68 % \controllabel{if:succ2}{sub1} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
69 % % merge |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
70 % \nodebi{merge}{merge} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
71 % \control{add1}{merge} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
72 % \control{sub1}{merge} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
73 % % phi |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
74 % \nodebi{phi1}{phi} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
75 % \datalabel{phi1:in1}{add1} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
76 % \datalabel{phi1:in2}{sub1} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
77 % % ret |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
78 % \node{ret}{ret} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
79 % \data{ret}{phi1} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
80 % \control{merge}{ret} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
81 % \control{ret}{end} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
82 % \end{digraphenv} |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
83 |
8c6e31c62fba
added initial version of design docs, fixed .hgignore (regex, . -> \.)
Lukas Stadler <lukas.stadler@jku.at>
parents:
diff
changeset
|
84 %%%%%%%%%%%%%%% |