Mercurial > hg > Papers > 2011 > nobu-prosym
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 %提案している. |