comparison Paper/nobu-prosym.tex @ 50:a83ad529aae3

fix includegraphics
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Wed, 23 Nov 2011 04:48:38 +0900
parents 7aaecb4cca86
children 41ec3a675105
comparison
equal deleted inserted replaced
49:7aaecb4cca86 50:a83ad529aae3
3 \usepackage[dvipdfmx]{graphicx} 3 \usepackage[dvipdfmx]{graphicx}
4 \usepackage{url} 4 \usepackage{url}
5 \usepackage{multirow} %% tabularの上下の結合 5 \usepackage{multirow} %% tabularの上下の結合
6 \usepackage{slashbox} %% tabularでの斜め線 6 \usepackage{slashbox} %% tabularでの斜め線
7 \usepackage{listings} 7 \usepackage{listings}
8 \usepackage{jtygm} 8 %\usepackage{jtygm}
9 \usepackage{mediabb} 9 \usepackage{mediabb}
10 \usepackage{float}
10 11
11 % 巻数,号数などの設定 12 % 巻数,号数などの設定
12 %\setcounter{巻数}{41} 13 %\setcounter{巻数}{41}
13 %\setcounter{号数}{6} 14 %\setcounter{号数}{6}
14 %\setcounter{volpageoffset}{1234} 15 %\setcounter{volpageoffset}{1234}
316 funcB は jmp 命令で funcC を呼び出す. 317 funcB は jmp 命令で funcC を呼び出す.
317 funcC は, 戻値を funcB ではなく funcA へと返すことになる. 318 funcC は, 戻値を funcB ではなく funcA へと返すことになる.
318 319
319 \begin{figure}[htpb] 320 \begin{figure}[htpb]
320 \begin{center} 321 \begin{center}
321 \scalebox{0.30}{\includegraphics{figure/continuation.pdf}} 322 \scalebox{0.25}{\includegraphics{figure/continuation.pdf}}
322 \end{center} 323 \end{center}
323 \caption{Tail Call Elimination} 324 \caption{Tail Call Elimination}
324 \label{fig:continue} 325 \label{fig:continue}
325 \end{figure} 326 \end{figure}
326 327
417 \caption{継続による引数のスタック格納の様子} 418 \caption{継続による引数のスタック格納の様子}
418 \label{fig:cs_stack} 419 \label{fig:cs_stack}
419 \end{figure} 420 \end{figure}
420 421
421 422
422
423 %GCCでは, この他にもTCEを禁止するルールがあり, GCC-4.5, 4.6 でも 423 %GCCでは, この他にもTCEを禁止するルールがあり, GCC-4.5, 4.6 でも
424 %Tail Call Elimination にかからないコードセグメントがある. 424 %Tail Call Elimination にかからないコードセグメントがある.
425 %この点を改善する必要がある. 425 %この点を改善する必要がある.
426 426
427 %\subsection{引数の一時変数への避難} 427 %\subsection{引数の一時変数への避難}
453 453
454 \subsubsection{一時変数へのコピー} 454 \subsubsection{一時変数へのコピー}
455 一時変数へのコピーは, goto が行れるコードセグメントの Generic Tree 生成時に行われる. 455 一時変数へのコピーは, goto が行れるコードセグメントの Generic Tree 生成時に行われる.
456 456
457 図\ref{fig:cbc_replace}に示す \verb+cbc_replace_arguments+ 関数が実際のコードとなる. 457 図\ref{fig:cbc_replace}に示す \verb+cbc_replace_arguments+ 関数が実際のコードとなる.
458
459
458 %\begin{figure} 460 %\begin{figure}
459 %\lstinputlisting[language=c]{source/cbc_replace_arguments.c} 461 %\lstinputlisting[language=c]{source/cbc_replace_arguments.c}
460 %\caption{引数の一時変数へのコピー} 462 %\caption{引数の一時変数へのコピー}
461 %\label{fig:cbc_replace} 463 %\label{fig:cbc_replace}
462 %\end{figure} 464 %\end{figure}
465
466
467
463 \begin{figure}[htpb] 468 \begin{figure}[htpb]
464 \begin{center} 469 \begin{center}
465 \scalebox{0.33}{\includegraphics{figure/cbc_replace.pdf}} 470 \scalebox{0.33}{\includegraphics{figure/cbc_replace.pdf}}
466 \end{center} 471 \end{center}
467 \caption{引数の一時変数へのコピー} 472 \caption{引数の一時変数へのコピー}
631 Mercurial はバージョン管理システムである. 636 Mercurial はバージョン管理システムである.
632 当研究室では CbC のソースコードは Mercurial によって管理されている. 637 当研究室では CbC のソースコードは Mercurial によって管理されている.
633 Mercurial では本家 GCC のソースコードも管理されており, 638 Mercurial では本家 GCC のソースコードも管理されており,
634 これら 2 つのリポジトリを使って CbC のアップデートは行われる 639 これら 2 つのリポジトリを使って CbC のアップデートは行われる
635 (図\ref{fig:cbc-repo}に CbC-GCC リポジトリのグラフを示す). 640 (図\ref{fig:cbc-repo}に CbC-GCC リポジトリのグラフを示す).
636 具体的な方法は以下になる. 641
642 具体的な方法は次の様になる.
643
644 \begin{figure}[b]
645 \begin{center}
646 %\scalebox{0.31}{\includegraphics{figure/graph.pdf}}
647 %\scalebox{0.30}[0.25]{\includegraphics{figure/graph_gray.pdf}}
648 \includegraphics[scale=0.3]{./figure/graph_gray.pdf}
649 \end{center}
650 \caption{CbC-GCC リポジトリのグラフ(一部)}
651 \label{fig:cbc-repo}
652 \end{figure}
637 653
638 \begin{itemize} 654 \begin{itemize}
639 \item GCC リポジトリ 655 \item GCC リポジトリ
640 \begin{enumerate} 656 \begin{enumerate}
641 \item GCC リポジトリの中身を削除 (バージョン管理情報以外) 657 \item GCC リポジトリの中身を削除 (バージョン管理情報以外)
644 \item 追加, 削除するファイルに対して hg add, hg remove を行う 660 \item 追加, 削除するファイルに対して hg add, hg remove を行う
645 \item コミット 661 \item コミット
646 \item gcc version タグを追加 662 \item gcc version タグを追加
647 \end{enumerate} 663 \end{enumerate}
648 664
665 \newpage
666
649 \item CbC リポジトリ 667 \item CbC リポジトリ
650 \begin{enumerate} 668 \begin{enumerate}
651 \item GCC リポジトリから hg pull を行う 669 \item GCC リポジトリから hg pull を行う
652 \item hg merge でマージを行う 670 \item hg merge でマージを行う
653 \item 衝突が発生したファイルのマージを行う 671 \item 衝突が発生したファイルのマージを行う
656 \item gcc version タグを追加 674 \item gcc version タグを追加
657 \end{enumerate} 675 \end{enumerate}
658 \end{itemize} 676 \end{itemize}
659 677
660 678
679
661 %\begin{figure}[htpb] 680 %\begin{figure}[htpb]
662 % \begin{center} 681 % \begin{center}
663 %\scalebox{0.33}{\includegraphics{figure/mercurial_update.pdf}} 682 %\scalebox{0.33}{\includegraphics{figure/mercurial_update.pdf}}
664 % \end{center} 683 % \end{center}
665 % \caption{CbConGCC リポジトリの管理(左:本家GCC 中央:独自のGCCリポジトリ 右:CbConGCC リポジトリ)} 684 % \caption{CbConGCC リポジトリの管理(左:本家GCC 中央:独自のGCCリポジトリ 右:CbConGCC リポジトリ)}
684 CbC 実装の為のコードが入り, かつ移動されたファイルがあり, 703 CbC 実装の為のコードが入り, かつ移動されたファイルがあり,
685 それらだけは 2 つのバージョンを並べて手動で diff を行うことになったが, ファイル自体が少ない為 704 それらだけは 2 つのバージョンを並べて手動で diff を行うことになったが, ファイル自体が少ない為
686 差分の適応はすぐに行えた. 705 差分の適応はすぐに行えた.
687 706
688 707
689 \newpage 708 %\begin{figure}[h]
690 709 %\begin{figure}[b]
691 710 % \begin{center}
692 \begin{figure}[htpb] 711 %\includegraphics[scale=0.3]{./figure/graph_gray.pdf}
693 \begin{center} 712 % \end{center}
694 %\scalebox{0.33}{\includegraphics{figure/cbc-repo.pdf}} 713 % \caption{CbC-GCC リポジトリのグラフ(一部)}
695 %\scalebox{0.35}{\includegraphics{figure/CbC_revision_graph.pdf}} 714 % \label{fig:cbc-repo}
696 %\scalebox{0.31}{\includegraphics{figure/graph.pdf}} 715 %\end{figure}
697 \scalebox{0.30}{\includegraphics{figure/graph_gray.pdf}} 716
698 \end{center}
699 \caption{CbC-GCC リポジトリのグラフ(一部)}
700 \label{fig:cbc-repo}
701 \end{figure}
702 717
703 \section{まとめと今後の課題} 718 \section{まとめと今後の課題}
704 今回 CbC コンパイラを GCC-4.6 へとアップデートを行った. 719 今回 CbC コンパイラを GCC-4.6 へとアップデートを行った.
705 アップデートに伴い不具合の修正と Intel64 ビットへの対応を行った. 720 アップデートに伴い不具合の修正と Intel64 ビットへの対応を行った.
706 だが, 環境付き継続等未だ幾つかの問題を残している. 721 だが, 環境付き継続等未だ幾つかの問題を残している.
707 typedefrec, selftype といった新たに実装を行いたい機能もでてきた. 722 typedefrec, selftype といった新たに実装を行いたい機能もでてきた.
708 723
709 また当研究室ではコードセグメントとデータセグメントを用いた並列・分散プログラミングを提案している. 724 また当研究室ではコードセグメントとデータセグメントを用いた並列・分散プログラミングを提案している.
710 データセグメントは C の構造体にあたり, Task が扱うデータのことである. 725 データセグメントは C の構造体にあたり, Task が扱うデータのことである.
711 CbC-GCC の実装はこのデータセグメントを用いることも踏まえて行なっていく. 726 CbC-GCC の実装はこのデータセグメントを用いることもふまえて行なっていく.
712 727
713 \nocite{kono:2002a, kono:2000a, kono:2008a, yogi:2008a, yogi:2008b, yan:2002a,gcc_internals} 728 \nocite{kono:2002a, kono:2000a, kono:2008a, yogi:2008a, yogi:2008b, yan:2002a,gcc_internals}
714 \bibliographystyle{junsrt} 729 \bibliographystyle{junsrt}
715 \bibliography{cbc.bib} 730 \bibliography{cbc.bib}
716 731
717
718
719 732
720 733
721 %今後はこれらを考えて CbC-GCC の実装を行っていく予定である. 734 %今後はこれらを考えて CbC-GCC の実装を行っていく予定である.
722 %また, 当研究室では CbC を用いてコードセグメントとデータセグメントを組み合わせたプログラミングスタイルを 735 %また, 当研究室では CbC を用いてコードセグメントとデータセグメントを組み合わせたプログラミングスタイルを
723 %提案している. 736 %提案している.