72 }; |
72 }; |
73 \end{tikzpicture} |
73 \end{tikzpicture} |
74 \end{center} |
74 \end{center} |
75 \end{frame} |
75 \end{frame} |
76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
77 |
|
78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
79 \begin{frame}[c,fragile] |
|
80 \frametitle{Static Single-Assignment} |
|
81 |
|
82 \bl{$(1 + a) + (3 + (b * 5))$}\bigskip\bigskip |
|
83 |
|
84 \begin{lstlisting}[language=LLVMIR,numbers=left] |
|
85 let tmp0 = add 1 a in |
|
86 let tmp1 = mul b 5 in |
|
87 let tmp2 = add 3 tmp1 in |
|
88 let tmp3 = add tmp0 tmp2 |
|
89 in tmp3 |
|
90 \end{lstlisting} |
|
91 |
|
92 |
|
93 \end{frame} |
|
94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
95 |
|
96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
97 \begin{frame}[c,fragile] |
|
98 \small |
|
99 |
|
100 \mbox{}\bigskip\bigskip\bigskip |
|
101 |
|
102 \begin{lstlisting}[language={},numbers=left] |
|
103 define i32 @fact (i32 %n) { |
|
104 %tmp_20 = icmp eq i32 %n, 0 |
|
105 br i1 %tmp_20, label %if_branch_24, label %else_branch_25 |
|
106 if_branch_24: |
|
107 ret i32 1 |
|
108 else_branch_25: |
|
109 %tmp_22 = sub i32 %n, 1 |
|
110 %tmp_23 = call i32 @fact (i32 %tmp_22) |
|
111 %tmp_21 = mul i32 %n, %tmp_23 |
|
112 ret i32 %tmp_21 |
|
113 } |
|
114 \end{lstlisting} |
|
115 |
|
116 \begin{lstlisting}[language={},numbers=none] |
|
117 def fact(n) = if n == 0 then 1 else n * fact(n - 1) |
|
118 \end{lstlisting} |
|
119 \end{frame} |
|
120 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
121 |
|
122 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
123 \begin{frame}[c,fragile] |
|
124 |
|
125 |
|
126 \begin{lstlisting}[language=LLVM,numbers=none] |
|
127 br i1 %var, label %if_br, label %else_br |
|
128 |
|
129 icmp eq i32 %x, %y ; for equal |
|
130 icmp sle i32 %x, %y ; signed less or equal |
|
131 icmp slt i32 %x, %y ; signed less than |
|
132 icmp ult i32 %x, %y ; unsigned less than |
|
133 |
|
134 %var = call i32 @foo(...args...) |
|
135 \end{lstlisting} |
|
136 |
|
137 \end{frame} |
|
138 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
77 |
139 |
78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
140 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
79 \begin{frame}[c,fragile] |
141 \begin{frame}[c,fragile] |
80 |
142 |
81 |
143 |