Mercurial > hg > Papers > 2011 > nobu-prosym
annotate Paper/memo.txt @ 35:6e50f1c7f914
add some pdf files
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Nov 2011 03:51:28 +0900 |
parents | b97cc8bbc20a |
children |
rev | line source |
---|---|
35
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
1 \begin{figure} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
2 \begin{footnotesize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
3 \lstinputlisting[language=c]{source/factorial.cbc} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
4 \caption{階上を計算する CbC プログラムの例} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
5 \label{fig:factorial} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
6 \end{footnotesize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
7 \end{figure} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
8 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
9 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
10 |
13
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 \begin{figure}[h] |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 \begin{minipage}[b]{.45\textwidth} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 \begin{lstlisting}[caption=CbCコード例,label=code:CbC-example] |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 __code print_factorial(int prod) |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 { |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 printf("factorial = %d\n",prod); |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 exit(0); |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 } |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 __code factorial0(int prod, int x) |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 { |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 if ( x >= 1) { |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 goto factorial0(prod*x, x-1); |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 }else{ |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 goto print_factorial(prod); |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 } |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 } |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 __code factorial(int x) |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 { |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 goto factorial0(1, x); |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 } |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 \end{lstlisting} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 \end{minipage} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 \hfill |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 \end{figure} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 \begin{table}[htpb] |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 \centering |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 \begin{tabular}{|c|c|c|c|c|} \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} } |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 & \multicolumn{3}{c|}{GCC-4.4} & \multirow{2}{*}{micro-c} \\ \cline{2-4} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 &最適化なし&速度最適化&サイズ最適化& \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 x86/Linux & 7.378 & 3.252 & & 2.890 \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 i386/OS X & 3.890 & 1.827 & & 2.288 \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 x86\_64/OS X & 4.078 & 1.101 & & \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 \end{tabular} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 \label{tab:speed-mc-vs-gcc-4.4} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 \end{table} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 \begin{table}[htpb] |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 \centering |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 \begin{tabular}{|c|c|c|c|c|} \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 \multirow{2}{*}{ \backslashbox{CPU/OS}{コンパイラ} } |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 & \multicolumn{3}{c|}{GCC-4.6} & \multirow{2}{*}{micro-c} \\ \cline{2-4} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 &最適化なし&速度最適化&サイズ最適化& \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 x86/Linux & 0.829 & 1.768 & & 2.890 \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 i386/OS X & 0.38 & 0.934 & & 2.288 \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 x86\_64/OS X & 0.45 8 & 2.896 & & \\ \hline |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 \end{tabular} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 \label{tab:speed-mc-vs-gcc-4.6} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 \end{table} |
b97cc8bbc20a
remove unnecessary filese
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 |
35
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
64 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
65 \begin{figure}[h] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
66 %\begin{footnotesize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
67 \begin{minipage}[b]{.45\textwidth} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
68 \begin{lstlisting}[caption=スタックの上書きが起こる継続の例,label=code:cs_prog] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
69 __code cs_a(int a, int b) { |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
70 goto cs_b(b, a) |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
71 } |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
72 \end{lstlisting} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
73 \end{minipage} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
74 \hfill |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
75 %\end{footnotesize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
76 \end{figure} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
77 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
78 \begin{verbatim} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
79 __code c1(__code ret(int,void *),void *env) { |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
80 goto ret(1,env); |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
81 } |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
82 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
83 int main() { |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
84 goto c1(__return, __environment); |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
85 } |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
86 \end{verbatim} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
87 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
88 \begin{figure}[h] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
89 \begin{footnotesize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
90 \begin{minipage}[b]{.45\textwidth} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
91 \begin{lstlisting}[caption=環境付き継続を行うコード,label=code:_ret_val] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
92 __label__ _cbc_exit0; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
93 static int retval; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
94 void _cbc_internal_return(int retval_, |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
95 void *_envp){ |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
96 retval = retval_; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
97 goto _cbc_exit0; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
98 } |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
99 if (0) { |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
100 _cbc_exit0: |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
101 return retval; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
102 } |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
103 _cbc_internal_return; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
104 \end{lstlisting} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
105 \end{minipage} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
106 \hfill |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
107 \end{footnotesize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
108 \end{figure} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
109 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
110 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
111 \begin{figure}[h] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
112 \begin{minipage}[b]{.45\textwidth} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
113 \begin{lstlisting}[caption=typedefrecの例,label=code:typedefrec] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
114 typedefrec void *funcA(int, funcA); |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
115 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
116 typedefrec struct { |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
117 NODE left; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
118 NODE right; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
119 } *NODE; |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
120 \end{lstlisting} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
121 \end{minipage} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
122 \hfill |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
123 \end{figure} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
124 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
125 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
126 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
127 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
128 また,比較を行うプログラムは最適化(-O0 オプション)を行わないものと, |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
129 速度最適化(-O2 -fomit-frame-pointer)を行うものの2つ, |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
130 それと -m32 オプションと -m64 オプションをつけたものそれぞれで行う. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
131 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
132 表\ref{tab:speed-mc-vs-gcc-nonopt}が最適化無し, |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
133 表\ref{tab:speed-mc-vs-gcc-opt}が速度最適化有りとなる. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
134 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
135 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
136 \begin{table}[htpb] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
137 \centering |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
138 \small |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
139 \begin{tabular}{|c|c|c|c|} \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
140 CPU/OS &GCC-4.4& GCC-4.6 &Micro-C \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
141 % x86/Linux & 7.378 & 0.833 & 2.923 \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
142 x86/Linux & 7.378 & & 2.923 \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
143 % x86\_64/OS X(-m32)& 5.951 & 0.507 & 2.871\\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
144 x86\_64/OS X(-m32)& 5.951 & & 2.871\\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
145 % x86\_64/OS X & 6.420 & 0.621 & \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
146 x86\_64/OS X(-m64) & 6.420 & & \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
147 \end{tabular} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
148 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)(最適化無し)} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
149 \label{tab:speed-mc-vs-gcc-nonopt} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
150 \end{table} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
151 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
152 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
153 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
154 \section{評価} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
155 今回実装を行った GCC-4.6 ベースのコンパイラを GCC-4.4 ベース, |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
156 Micro-C コンパイラとそれぞれ比較を行った. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
157 比較を行うのはクイックソートのプログラムである. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
158 %クイックソートは再帰的にプログラムされる為 CbC に向いている |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
159 %プログラムだと言える. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
160 クイックソートは再帰的なプログラムな為スタック操作が行われる為テストに向いている. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
161 比較を行うのは以下のアーキテクチャと OS になる. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
162 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
163 %\begin{description} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
164 \begin{itemize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
165 \item x86/Linux |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
166 \item x86/OS X |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
167 \end{itemize} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
168 %\end{description} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
169 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
170 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
171 \begin{table}[htpb] |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
172 \centering |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
173 \small |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
174 \begin{tabular}{|c|c|c|c|} \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
175 CPU/OS &GCC-4.4& GCC-4.6 &Micro-C \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
176 x86/Linux & 3.253 & 2.906 & 2.71 \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
177 x86\_64/OS X(-m32)& 2.726 & 2.418 & 2.857\\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
178 x86\_64/OS X(-m64) & 1.390 & 1.509 & \\ \hline |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
179 \end{tabular} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
180 \caption{アーキテクチャ毎のGCCとmicro-cの速度比較(単位: 秒)(速度最適化)} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
181 \label{tab:speed-mc-vs-gcc-opt} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
182 \end{table} |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
183 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
184 GCC-4.6 バージョンの最適化無しは, 末尾最適化が強制的に行われる為 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
185 除外している. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
186 最適化有りと無しの比較が 4.6 でも行えないのは残念だが, 最適化の効果はでている |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
187 ように思われる.GCC-4.4 では最適化により 2 倍以上の性能がでている. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
188 また 64bit 版の最適化有りは 32bit 版に比べてどちらも 1.6 倍以上の速度がでている |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
189 のが確認できた. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
190 Micro-C と比較では GCC の 32bit 版が若干早く, 64bit 版は 2 倍の差がでているのが |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
191 確認できた. |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
192 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
193 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
194 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
195 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
196 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
197 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
198 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
199 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
200 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
201 |
6e50f1c7f914
add some pdf files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
202 |