タグ

gccに関するserihiroのブックマーク (4)

  • GCC for New Contributors — GCC Contributors Guide 0.1 documentation

    GCC for New Contributors¶ This is an unofficial guide to GCC’s internals, aimed at new developers, and at plugin authors. Source: https://github.com/davidmalcolm/gcc-newbies-guide I’m a relative newcomer to GCC, so I thought it was worth documenting some of the hurdles I ran into when I started working on GCC, to try to make it easier for others to start hacking on GCC. Hence this guide. Other sou

  • フリーソフトウェア徹底活用講座(1)

    コンパイラオプションによる自動最適化について解説します. ● -0,-01 このオプションでは基的な最適化を行います. たとえばregisterの不要な移行を行わない,メモリアクセスを減らすためにregisterに値を保存しておくなどの最適化を行います. 最適化を行うと,コンパイルには時間がかかり,大きな関数についてはたくさんのメモリを余計に使います. -0を指定しないと,register宣言した変数しかレジスタに割り当てません. -0を指定することでコードサイズと実行時間を小さくしようとします.また,全機種で-fthread-jumpsと-fdefer-popを有効にします.遅延スロットのある機種では-fdelayed-branchをオンにし,フレームポインタなしでもデバッグをサポートできる機種では-fomit-frame-pointerをオンにします.機種によっては,ほかのオプション

  • 基本を再チェック〜gcc〜@謎の処理系 SunOS 4.1.4

    ●コンパイル過程の詳細 ここでは,C/C++のソースから実行バイナリを作成することの全体を指して 広義的にコンパイルと呼んでいますが,このコンパイルは, プリプロセッサの処理・狭義のコンパイル・アセンブル・リンクという過程から 成り立っています. gccを起動すれば,これらの必要な過程が自動的に実行されます. gccというのは,実は「ドライバ」と呼ばれるプログラムであり, gcc自身はコンパイルなどの実作業を何も行なわず, gccの内部から,実際にコンパイル・アセンブル・リンクなどを行なうコマンドを 呼び出すことによって一連のコンパイル動作を行なっているのです.(下図) ここで,途中のcc1またはcc1plusの部分は, ソースファイルがC言語かC++かによって変わります. C++の場合は,gccで起動した場合でもcc1plusが呼び出されます. +-----+ | cpp | Cプリプロ

  • C言語がコンパイルされて実行可能になるまでの流れ - にょきにょきブログ

    コンパイルの処理は大きく分けて下記の処理にわけられる。 プリプロセス コンパイル アセンブル リンク この記事では、C言語の Hello World を過程毎に追い、プログラムが出来上がるまでの流れを追う。 登場するファイル main.c - ソースファイル main.s - ソースファイルからコンパイルされたアセンブラソースファイル main.o - アセンブル後のオブジェクトファイル main - 出来上がったバイナリ ソースコード 普通の C 言語の Hello World. 下記コードを main.c として保存する。 #include <stdio.h> int main(){ printf("Hello world!\n"); return 0; } プリプロセス プリプロセスとは、マクロの展開や #include や #ifdef などのディレクティブの処理が行われることを指

    C言語がコンパイルされて実行可能になるまでの流れ - にょきにょきブログ
  • 1