’file.flow’
に 対 し て ダ ン
プ し ま す 。
終 了 時
に ’file.combine’ に
対 し て ダ ン プ
し ま す 。
第 1 命 令
ス ケ ジ ュ ー リ
ン グ 段 階 終 了
時 に ’file.sched’
に 対 し て ダ ン
プ し ま す 。
ロ ー カ
ル レ ジ ス タ 割
り 当 て 終 了 時
に ’file.lreg’ に
対 し て ダ ン プ
し ま す 。
グ ロ ー
バ ル レ ジ ス タ
割 り 当 て 終 了
時 に ’file.greg’
に 対 し て ダ ン
プ し ま す 。
第 2 命 令
ス ケ ジ ュ ー リ
ン グ 段 階 終 了
時 に ’file.sched2’
に 対 し て ダ ン
プ し ま す 。
最 終 ジ
ャ ン プ 最 適 化
終 了 時 に
’file.jump2’ に 対
し て ダ ン プ し
ま す 。
|
−dd 遅
延 分 岐 ス ケ ジ
ュ ー リ ン グ 終
了 |
|
|
時 に
’file.dbr’ に 対
し て ダ ン プ し
ま す 。
レ ジ ス
タ か ら ス タ ッ
ク へ の 転 換 終
了 時 に
’file.stack’ に 対
し て ダ ン プ し
ま す 。
−da
以 上 の
全 て の ダ ン プ
を 生 成 し ま す
。
|
−dm 処 理 の 終
了 時 に 、 メ モ
リ 使 用 に 関 す
る 統 計 情 報 を
標 準 エ ラ ー 出
力 に 出 力 し ま
す 。 |
|
−dp ど の よ う
な パ タ ー ン や
選 択 肢 が 使 用
さ れ た か を 示
す コ メ ン ト を
ア セ ン ブ ラ 出
力 中 の コ メ ン
ト で 解 説 し ま
す 。 |
−fpretend−float
ク ロ ス コ ン パ
イ ラ で 処 理 を
行 な う 際 に 、
ホ ス ト マ シ ン
と 同 じ 浮 動 小
数 点 フ ォ ー マ
ッ ト を タ ー ゲ
ッ ト マ シ ン が
持 つ か の よ う
に 振 舞 わ せ ま
す 。 こ れ は 浮
動 小 数 点 定 数
の 誤 っ た 出 力
を 引 き 起 こ し
ま す が 、 実 際
の 命 令 列 は お
そ ら く GNU CC を タ ー
ゲ ッ ト マ シ ン
で 起 動 し た 場
合 と 同 じ も の
と な る で し ょ
う 。
−save−temps 通 常 の
“一 時 ” 中 間 フ
ァ イ ル を 消 去
せ ず に 保 存 し
ま す 。 こ れ ら
は カ レ ン ト デ
ィ レ ク ト リ に
置 か れ 、 ソ ー
ス フ ァ イ ル に
基 づ い た 名 前
が 付 け ら れ ま
す 。 従 っ て 、
’foo.c’ を ’−c
−save−temps’ を 使
用 し て コ ン パ
イ ル し た 場 合
は 、 ’foo.cpp’,
’foo.s’ が 、
’foo.o’ と 同 様
に 生 成 さ れ ま
す 。
−print−libgcc−file−name=library
ラ イ ブ ラ リ フ
ァ イ ル ’library ’
の 完 全 な 絶 対
名 を 表 示 し ま
す 。 こ の フ ァ
イ ル は リ ン ク
の 際 の み に 使
用 さ れ 、 そ れ
以 外 の 働 き は
あ り ま せ ん 。
こ の オ プ シ ョ
ン が 指 定 さ れ
た 場 合 は 、 GNU CC は
コ ン パ イ ル や
リ ン ク を 何 も
行 な わ ず 、 た
だ フ ァ イ ル 名
を 表 示 す る の
み で す 。
−print−libgcc−file−name
’−print−file−name=libgcc.a’
と 同 じ で す 。
−print−prog−name=program
’−print−file−name’
と 似 て い ま す
が 、 ’cpp’ の よ
う な program を 検 索
し ま す 。
こ れ ら
の オ プ シ ョ ン
は 様 々 な 種 類
の 最 適 化 処 理
を 制 御 し ま す
。
|
−O |
|
−O1 最 適 化 を
行 い ま す 。 最
適 化 コ ン パ イ
ル は 幾 分 長 め
の 処 理 時 間 と
、 大 き な 関 数
に 対 す る 非 常
に 多 く の メ モ
リ を 必 要 と し
ま す 。 |
’−O’
が 指 定 さ れ な
か っ た 場 合 は
、 コ ン パ イ ラ
の 目 標 は コ ン
パ イ ル の コ ス
ト を 低 減 す る
こ と や 、 目 的
の 結 果 を 得 る
た め の デ バ ッ
グ を 可 能 と す
る こ と に 置 か
れ ま す 。 そ れ
ぞ れ の 文 は 独
立 し て い ま す
。 つ ま り 、 ブ
レ ー ク ポ イ ン
ト で プ ロ グ ラ
ム を 停 止 さ せ
る こ と に よ っ
て 、 任 意 の 変
数 に 新 し い 値
を 代 入 し た り
、 プ ロ グ ラ ム
カ ウ ン タ を 他
の 文 へ と 変 更
す る こ と を 可
能 と し 、 そ の
ソ ー ス コ ー ド
に プ ロ グ ラ マ
が 望 む 正 し い
結 果 を 得 る こ
と を 可 能 に し
ま す 。
’−O’
を 指 定 し な か
っ た 場 合 は 、
register と 宣 言 し た
変 数 の み が レ
ジ ス タ へ と 割
り 当 て ら れ ま
す 。 コ ン パ イ
ル の 結 果 と し
て 得 ら れ る コ
ー ド は 、 PCC を
’−O’ な し で
使 用 し た 場 合
と 比 較 し て 若
干 良 く な い も
の と な り ま す
。
’−O’
が 指 定 さ れ る
と 、 コ ン パ イ
ラ は コ ー ド の
サ イ ズ と 実 行
時 間 を 減 少 さ
せ る こ と を 試
み ま す 。
’−O’
を 指 定 す る こ
と に よ っ て 、
’−fthread−jumps’ と
’−fdefer−pop’ の
フ ラ グ が 指 定
さ れ ま す 。 遅
延 ス ロ ッ ト を
も つ マ シ ン で
は ’−fdelayed−branch’
が 指 定 さ れ ま
す 。 フ レ ー ム
ポ イ ン タ を 使
わ な い デ バ ッ
グ を サ ポ ー ト
し て い る マ シ
ン で は 、
’−fomit−frame−pointer’
も 指 定 さ れ ま
す 。 マ シ ン に
よ っ て は さ ら
に そ の 他 の フ
ラ グ が 指 定 さ
れ る こ と も あ
り ま す 。
|
−O2 さ
ら に 最 適 化 を
行 い ま す 。 サ
ポ ー ト さ れ て
い る 最 適 化 手
段 の う ち 、 空
間 と 速 度 の ト
レ ー ド オ フ を
含 ま な い も の
は ほ と ん ど の
全 て 使 用 さ れ
ま す 。 例 え ば
ル ー プ の ア ン
ロ ー リ ン グ や
関 数 の イ ン ラ
イ ン 化 は 行 わ
れ ま せ ん 。 |
−O と
比 較 し て 、 こ
の オ プ シ ョ ン
は コ ン パ イ ル
時 間 と 生 成 コ
ー ド の 性 能 の
双 方 を 増 加 さ
せ ま す 。
|
−O3 さ
ら な る 最 適 化
を 行 い ま す 。
こ れ は |
|
−O2 が
行 う 全 て の 最
適 化 手 段 に 加 |
え て
−finline−functions も 有
効 に し ま す 。
|
−Os サ
イ ズ 優 先 で 最
適 化 し ま す 。
普 通 、 コ ー ド
を 増 大 さ せ る
こ と の な い 全
て の |
−O2 最
適 化 が 有 効 に
な り ま す 。 更
に 、 コ ー ド サ
イ ズ を 減 ら す
よ う に 設 計 さ
れ た 最 適 化 も
行 い ま す 。
|
−O0 最
適 化 を 行 い ま
せ ん 。 複 数 の |
|
−O オ
プ シ ョ ン を 指
定 し た 場 合 は
、 レ ベ ル 番 号
の 有 無 に 関 わ
ら ず 、 最 後 に
指 定 し た も の
が 有 効 に な り
ま す 。
’−fflag’
の 形 式 を 持 っ
た オ プ シ ョ ン
は 、 マ シ ン 独
立 の フ ラ グ で
す 。 ほ と ん ど
の フ ラ グ は 有
効 形 式 と 無 効
形 式 の 双 方 を
持 っ て い ま す
。 ’−ffoo’ の 無
効 形 式 は
’−fno−foo’ で す
。 以 下 の リ ス
ト で は 、 デ フ
ォ ル ト で は な
い 方 の 形 式 の
み を 示 し ま す
。 こ れ に 対 し
て ’no−’ を 削
除 す る 、 あ る
い は 追 加 す る
こ と に よ っ て
双 方 の 形 式 を
生 成 す る こ と
が 可 能 で す 。
−ffloat−store 浮 動 小
数 点 変 数 を レ
ジ ス タ に 格 納
し ま せ ん 。 こ
の オ プ シ ョ ン
は 68000 の よ う に (68881
の ) 浮 動 小 数 点
レ ジ ス タ が double
よ り も 高 い 精
度 を 持 っ て い
る と 思 わ れ る
マ シ ン に お い
て 、 望 ま な い
超 過 精 度 を 抑
制 す る こ と を
可 能 に し ま す
。 ほ と ん ど の
プ ロ グ ラ ム に
お い て は 、 超
過 精 度 は 単 に
良 い 結 果 を 生
む だ け で す が
、 い く つ か の
プ ロ グ ラ ム は
正 確 な IEEE の 浮 動
小 数 点 フ ォ ー
マ ッ ト 定 義 に
依 存 し て い ま
す 。 こ の よ う
な プ ロ グ ラ ム
に 対 し て
’−ffloat−store’ を
使 用 し ま す 。
−fmemoize−lookups
−fsave−memoized コ ン パ
イ ル を 高 速 に
行 な う た め に
、 ヒ ュ ー リ ス
テ ィ ッ ク ス を
使 用 し ま す (C++ の
み )。 こ れ ら の
ヒ ュ ー リ ス テ
ィ ッ ク ス は デ
フ ォ ル ト で は
有 効 に な っ て
い ま せ ん 。 な
ぜ な ら 、 こ れ
は あ る 種 の 入
力 フ ァ イ ル に
し か 効 果 が な
く 、 そ の 他 の
フ ァ イ ル で は
か え っ て コ ン
パ イ ル が 低 速
に な る か ら で
す 。 最 初 に 、
コ ン パ イ ラ は
メ ン バ 関 数 へ
の 呼 び 出 し (あ
る い は デ ー タ
メ ン バ へ の 参
照 ) を 構 築 し ま
す 。 こ れ は (1) ど
の ク ラ ス で そ
の 名 前 の メ ン
バ 関 数 が 実 装
さ れ て い る か
を 決 定 し 、 (2) ど
の メ ン バ 関 数
へ の 呼 び 出 し
で あ る か と い
う 問 題 (こ れ は
ど の 種 類 の 型
変 換 が 必 要 と
な る か と い う
決 定 も 含 み ま
す ) を 解 決 し 、 (3)
呼 び 出 し 側 に
対 す る そ の 関
数 の 可 視 性 を
検 査 す る と い
う 作 業 を 行 な
う 必 要 が あ り
ま す 。 こ れ ら
は 全 て 、 コ ン
パ イ ル を よ り
低 速 に し て し
ま い ま す 。 通
常 は 、 そ の メ
ン バ 関 数 へ の 2
度 目 の 呼 び 出
し が 起 こ っ た
場 合 も 、 こ の
長 い 処 理 が ま
た 行 な わ れ る
こ と に な り ま
す 。 こ れ は 次
の よ う な コ ー
ド
cout <<
"This " << p << " has "
<< n << " legs.\n"; は 、
こ れ ら の 3 つ の
手 順 を 6 回 繰 り
返 す と い う こ
と を 意 味 し ま
す 。 こ れ に 対
し て 、 ソ フ ト
ウ ェ ア キ ャ ッ
シ ュ を 使 用 す
る と 、 そ の キ
ャ ッ シ ュ へ の
“ヒ ッ ト ”は 、
コ ス ト を 劇 的
に 低 減 す る こ
と が 期 待 で き
ま す 。 不 幸 な
こ と に 、 キ ャ
ッ シ ュ の 導 入
に よ っ て 異 な
っ た レ イ ヤ の
機 構 を 実 装 す
る こ と が 必 要
と な り 、 そ れ
自 身 の オ ー バ
ヘ ッ ド が 生 じ
て し ま い ま す
。 ’−fmemoize−lookups’
は こ の ソ フ ト
ウ ェ ア キ ャ ッ
シ ュ を 有 効 に
し ま す 。 メ ン
バ と メ ン バ 関
数 へ の ア ク セ
ス 特 権 (可 視 性 )
は あ る 関 数 に
お け る コ ン テ
キ ス ト と 別 の
関 数 に お け る
も の と で は 異
な る の で 、 g++
は キ ャ ッ シ ュ
を フ ラ ッ シ ュ
し な け れ ば な
り ま せ ん 。
’−fmemoize−lookups’ フ
ラ グ を 使 用 す
る と 、 全 て の
関 数 を コ ン パ
イ ル す る た び
に 毎 回 キ ャ ッ
シ ュ を フ ラ ッ
シ ュ し ま す 。
’−fsave−memoized’ フ
ラ グ は 同 一 の
ソ フ ト ウ ェ ア
キ ャ ッ シ ュ に
つ い て 、 コ ン
パ イ ラ が 前 回
コ ン パ イ ル し
た 関 数 の コ ン
テ キ ス ト が 、
次 に コ ン パ イ
ル す る コ ン テ
キ ス ト と 同 一
の ア ク セ ス 特
権 を 有 し て い
る と み な せ る
時 に は 、 キ ャ
ッ シ ュ を 保 持
し ま す 。 こ れ
は 同 一 ク ラ ス
中 に 多 く の メ
ン バ 関 数 を 定
義 し て い る 時
に 特 に 有 効 で
す 。 他 の ク ラ
ス の フ レ ン ド
に な っ て い る
メ ン バ 関 数 を
除 き 、 同 一 の
ク ラ ス に 属 し
て い る 全 て の
メ ン バ 関 数 の
ア ク セ ス 特 権
は 、 全 て 同 一
で す 。 こ の よ
う な 場 合 は キ
ャ ッ シ ュ を フ
ラ ッ シ ュ す る
必 要 は あ り ま
せ ん 。
−fno−default−inline
ク ラ ス ス コ ー
プ 中 に 定 義 さ
れ た メ ン バ 関
数 を デ フ ォ ル
ト で イ ン ラ イ
ン 関 数 と す る
処 理 を 行 な い
ま せ ん (C++ の み )。
−fno−defer−pop そ れ
ぞ れ の 関 数 呼
び 出 し に 対 し
て 、 関 数 の リ
タ ー ン 直 後 に
常 に 引 数 を ポ
ッ プ し ま す 。
関 数 呼 出 後 に
引 数 を ポ ッ プ
し な け れ ば な
ら な い マ シ ン
に お い て は 、
コ ン パ イ ラ は
通 常 、 い く つ
か の 関 数 の 引
数 を ス タ ッ ク
に 積 ん で 、 そ
れ ら を 同 時 に
ポ ッ プ し ま す
。
−fforce−mem メ モ リ
オ ペ ラ ン ド に
対 し て 、 そ れ
ら に 対 す る 演
算 が 行 な わ れ
る 前 に 、 レ ジ
ス タ に コ ピ ー
し ま す 。 こ れ
は 全 て の メ モ
リ 参 照 を 、 潜
在 的 な 共 通 部
分 式 で あ る と
定 め る こ と に
よ っ て 、 よ り
良 い コ ー ド を
生 成 し ま す 。
も し そ れ が 共
通 部 分 式 で な
か っ た 場 合 は
、 命 令 コ ン ビ
ネ ー シ ョ ン に
よ っ て レ ジ ス
タ へ の 読 み 込
み は 削 除 さ れ
ま す 。 私 は こ
れ が ど の よ う
な 違 い を 生 み
出 す か と い う
こ と に 興 味 が
あ り ま す 。
−fforce−addr メ モ リ
ア ド レ ス 定 数
に つ い て 、 そ
れ ら に 対 す る
演 算 が 行 な わ
れ る 前 に レ ジ
ス タ に コ ピ ー
し ま す 。 こ れ
は ’−fforce−mem’
と 同 じ 手 法 で
よ り 良 い コ ー
ド を 生 成 し ま
す 。 私 は こ れ
が ど の よ う な
違 い を 生 み 出
す か と い う こ
と に 興 味 が あ
り ま す 。
−fomit−frame−pointer フ レ
ー ム ポ イ ン タ
を レ ジ ス タ に
格 納 す る 必 要
の な い 関 数 に
お い て 、 こ の
処 理 を 行 い ま
せ ん 。 こ れ は
フ レ ー ム ポ イ
ン タ の 保 存 、
設 定 、 復 帰 に
か か る 命 令 を
省 略 し 、 さ ら
に 、 多 く の 関
数 で レ ジ ス タ
変 数 と し て 使
用 で き る 余 分
な レ ジ ス タ を
得 る こ と を 可
能 に し ま す 。
た だ し 、 こ の
オ プ シ ョ ン は
ほ と ん ど の マ
シ ン に お い て
デ バ ッ グ を 不
可 能 に し ま す
。
Vax な
ど の い く つ か
の マ シ ン で は
、 こ の フ ラ グ
は 効 果 を 持 ち
ま せ ん 。 な ぜ
な ら こ れ ら の
マ シ ン で は 標
準 の 呼 び 出 し
手 順 が 自 動 的
に フ レ ー ム ポ
イ ン タ の 設 定
を 行 な っ て し
ま い 、 こ れ が
存 在 し な い と
し た と こ ろ で
何 も 節 約 が で
き な い か ら で
す 。 マ シ ン 記
述 マ ク ロ
FRAME_POINTER_REQUIRED が 、 タ
ー ゲ ッ ト マ シ
ン が こ の フ ラ
グ を サ ポ ー ト
す る か ど う か
を 制 御 し て い
ま す 。
−finline−functions
全 て の 単 純 な
関 数 を 呼 び 出
し 側 に 組 み 込
ん で し ま い ま
す 。 コ ン パ イ
ラ は ヒ ュ ー リ
ス テ ィ ッ ク ス
を 用 い て 、 ど
の 関 数 が こ の
方 法 で 組 み 込
む に 足 り る ほ
ど 単 純 か を 決
定 し ま す 。 も
し 、 あ る 関 数
に 対 す る 全 て
の 呼 び 出 し を
組 み 込 む こ と
が で き 、 か つ
そ の 関 数 が static
と 宣 言 さ れ て
い た 場 合 は 、 GCC
は そ の 関 数 を
独 立 し た ア セ
ン ブ ラ コ ー ド
と し て は 出 力
を し ま せ ん 。
−fcaller−saves 関 数 呼
び 出 し に お い
て 破 壊 さ れ る
で あ ろ う 値 を
、 レ ジ ス タ に
保 持 す る こ と
を 可 能 と し ま
す 。 こ れ は こ
の よ う な 呼 び
出 し の 周 囲 に
レ ジ ス タ に 対
す る 保 存 、 復
帰 の 特 別 な コ
ー ド を 出 力 す
る こ と に よ っ
て 実 現 さ れ ま
す 。 こ の よ う
な 割 り 当 て は
、 そ れ が 通 常
よ り も 良 い コ
ー ド を 出 力 す
る と み な さ れ
る 場 合 に の み
行 わ れ ま す 。
こ の オ プ シ ョ
ン は 特 定 の マ
シ ン で は デ フ
ォ ル ト で 有 効
と な っ て い ま
す 。 こ れ ら は
通 常 、 こ の オ
プ シ ョ ン の 処
理 の 代 わ り に
使 う こ と が で
き る 呼 び 出 し
時 保 存 レ ジ ス
タ が 存 在 し な
い マ シ ン で す
。
−fkeep−inline−functions あ
る 関 数 へ の 呼
び 出 し が 全 て
呼 び 出 し 側 に
組 み 込 む こ と
が で き て 、 か
つ そ の 関 数 が
static と 宣 言 さ れ
て い た と し て
も 、 実 行 時 に
呼 び 出 し 可 能
な 関 数 も 生 成
し ま す 。
−fno−function−cse 関 数
の ア ド レ ス を
レ ジ ス タ に 置
き ま せ ん 。 つ
ま り 、 定 ま っ
た 関 数 を 呼 び
出 す コ ー ド は
、 そ れ ぞ れ 明
示 的 な 関 数 の
ア ド レ ス を 含
む コ ー ド と な
り ま す 。 こ の
オ プ シ ョ ン は
効 率 の 低 い コ
ー ド を 生 成 し
ま す が 、 ア セ
ン ブ ラ 出 力 を
書 き 換 え る よ
う な ハ ッ ク を
行 な う 場 合 に
は 、 こ の オ プ
シ ョ ン を 使 用
し な け れ ば 混
乱 さ せ ら れ る
こ と で し ょ う
。
−fno−peephole マ シ ン
固 有 の ピ ー プ
ホ ー ル 最 適 化
を 禁 止 し ま す
。
−ffast-math こ の オ プ
シ ョ ン は 生 成
コ ー ド の ス ピ
ー ド の た め に
、 GCC に 対 し て 、
い く つ か の ANSI ま
た は IEEE の 規 則 /規
格 を 侵 さ せ ま
す 。 例 え ば 、
こ の オ プ シ ョ
ン は sqrt 関 数 の
引 数 は 非 負 の
数 で あ る こ と
を 仮 定 し ま す
。 こ の オ プ シ
ョ ン は ど の
’−O’ オ プ シ
ョ ン に よ っ て
も 有 効 と さ れ
ま せ ん 。 な ぜ
な ら 、 こ の オ
プ シ ョ ン は 数
学 関 数 に 関 す
る IEEE ま た は ANSI の
規 則 /規 格 の 厳
密 な 実 装 に 依
存 し て 書 か れ
た プ ロ グ ラ ム
に 対 し て 誤 っ
た 出 力 を 与 え
る か ら で す 。
以 下 の オ プ シ
ョ ン は 特 殊 な
最 適 化 に 関 す
る 制 御 を 行 い
ま す 。 ’−O2’
オ プ シ ョ ン は
’−funroll−loops’ と
’−funroll−all−loops’
を 除 く こ れ ら
の 全 て の オ プ
シ ョ ン を 有 効
に し ま す 。
’−O’
オ プ シ ョ ン は
通 常
’−fthread−jumps’ と
’−fdelayed−branch’ を
有 効 と し ま す
。 た だ し 、 特
殊 な マ シ ン で
は デ フ ォ ル ト
の 最 適 化 に 対
し て 変 更 が 加
え ら れ て い る
か も し れ ま せ
ん 。 最 適 化 に
関 す る “き め 細
か い チ ュ ー ニ
ン グ ” が 必 要
な 場 合 に 、 以
下 の フ ラ グ を
使 用 す る こ と
が 可 能 で す 。
−fstrength−reduce ル ー プ
の ス ト レ ン グ
ス リ ダ ク シ ョ
ン と 繰 り 返 し
変 数 の 除 去 を
行 い ま す 。
−fthread−jumps 分 岐 ジ
ャ ン プ に よ っ
て あ る 場 所 に
ジ ャ ン プ し た
時 に 、 最 初 の
分 岐 に 包 括 さ
れ る 比 較 が 存
在 し た 時 に 、
最 初 の 分 岐 の
ジ ャ ン プ 先 を
後 者 の 分 岐 先
に 変 更 し ま す
。 こ の 変 更 先
は 、 2 番 目 の 分
岐 条 件 の 真 偽
に よ っ て 、 2 番
目 の 分 岐 の ジ
ャ ン プ 先 か 、
あ る い は 2 番 目
の 分 岐 の 直 後
に 定 め ら れ ま
す 。
−funroll−loops ル ー プ
展 開 の 最 適 化
を 行 い ま す 。
こ れ は ル ー プ
の 繰 り 返 し 数
が コ ン パ イ ル
時 、 あ る い は
ラ ン タ イ ム に
決 定 で き る 時
に お い て の み
、 実 行 さ れ ま
す 。
−funroll−all−loops ル ー
プ 展 開 の 最 適
化 を 行 い ま す
。 こ れ は 全 て
の ル ー プ に 対
し て 行 わ れ ま
す 。 こ の オ プ
シ ョ ン は 大 抵
、 よ り 遅 く 動
作 す る プ ロ グ
ラ ム を 生 成 し
ま す 。
−fcse−follow−jumps 共 通
部 分 式 削 除 の
処 理 に お い て
、 ジ ャ ン プ 命
令 の 行 先 が 他
の 経 路 か ら 到
達 で き な い 場
合 は 、 そ の ジ
ャ ン プ 命 令 を
越 え て ス キ ャ
ン を 行 な い ま
す 。 例 え ば 、
共 通 部 分 式 削
除 処 理 中 に else
節 を 伴 っ た if
文 に 出 会 っ た
場 合 、 条 件 が
偽 な ら ば 分 岐
先 に 対 し て も
共 通 部 分 式 削
除 を 続 け ま す
。
−fcse−skip−blocks こ れ
は
’−fcse−follow−jumps’
に 似 て い ま す
が 、 ブ ロ ッ ク
を 跨 ぐ ジ ャ ン
プ に 対 し て も
共 通 部 分 式 削
除 を 継 続 し ま
す 。 共 通 部 分
式 削 除 処 理 中
に 、 else 節 を 持 た
な い 単 純 な if
文 に で あ っ た
時 、
’−fcse−skip−blocks’
は if の ボ デ ィ
を 跨 い だ ジ ャ
ン プ に 対 す る
共 通 部 分 式 削
除 処 理 を 継 続
し ま す 。
−frerun−cse−after−loop ル
ー プ 最 適 化 が
行 な わ れ た 後
に 、 再 度 共 通
部 分 式 削 除 の
処 理 を 行 い ま
す 。
−felide−constructors コ ン
ス ト ラ ク タ へ
の 呼 び 出 し が
省 略 で き る よ
う に 思 わ れ る
場 合 に 、 そ の
呼 び 出 し を 省
略 し ま す (C++ の み
)。 こ の フ ラ グ
を 指 定 し た 場
合 は 、 GNU C++ は 以
下 の コ ー ド に
対 し て 、 一 時
オ ブ ジ ェ ク ト
を 経 由 せ ず に
y を foo へ の 呼
び 出 し の 結 果
か ら 直 接 初 期
化 し ま す 。
A foo (); A y =
foo (); こ の オ プ シ
ョ ン を 使 用 し
な い 場 合 は 、 GNU
C++ は 最 初 に y を
A 型 の 適 切 な
コ ン ス ト ラ ク
タ を 呼 び 出 す
こ と に よ っ て
初 期 化 し ま す
。 そ し て 、 foo
の 結 果 を 一 時
オ ブ ジ ェ ク ト
に 格 納 し 、 最
終 的 に は ’y’
の 値 を 一 時 オ
ブ ジ ェ ク ト の
値 に 入 れ 換 え
ま す 。 デ フ ォ
ル ト の 振 舞 い
(’−fno−elide−constructors’)
が 、 ANSI C++ 標 準 の
ド ラ フ ト に は
規 定 さ れ て い
ま す 。 コ ン ス
ト ラ ク タ が 副
作 用 を 含 む プ
ロ グ ラ ム に 対
し て 、
’−felide-constructors’ を
指 定 す る と 、
そ の プ ロ グ ラ
ム は 異 な っ た
動 作 を す る 可
能 性 が あ り ま
す 。 な ぜ な ら
、 い く つ か の
コ ン ス ト ラ ク
タ の 呼 び 出 し
が 省 略 さ れ る
か ら で す 。
−fexpensive−optimizations
比 較 的 コ ス ト
の 高 い い く つ
か の 些 細 な 最
適 化 を 行 い ま
す 。
−fdelayed−branch タ ー ゲ
ッ ト マ シ ン に
お い て こ の フ
ラ グ が サ ポ ー
ト さ れ て い る
場 合 は 、 遅 延
分 岐 命 令 後 の
命 令 ス ロ ッ ト
を 命 令 の 順 番
変 更 に よ っ て
利 用 す る よ う
に 設 定 し ま す
。
−fschedule−insns タ ー ゲ
ッ ト マ シ ン に
お い て こ の フ
ラ グ が サ ポ ー
ト さ れ て い る
場 合 は 、 必 要
な デ ー タ を 利
用 可 能 に な る
ま で 待 つ こ と
に よ る 実 行 の
遅 滞 を 防 ぐ た
め に 、 命 令 の
順 番 の 変 更 を
行 い ま す 。 こ
れ は 遅 い 浮 動
小 数 点 命 令 や
メ モ リ 読 み 込
み 命 令 の 実 行
に お い て 、 そ
れ ら の 結 果 を
必 要 と す る 命
令 の 前 に 他 の
命 令 を 詰 め 込
み ま す 。
−fschedule−insns2
’−fschedule−insns’
と 似 て い ま す
が 、 レ ジ ス タ
割 当 て 処 理 の
後 に も う 一 度
命 令 ス ケ ジ ュ
ー リ ン グ の 段
階 を 置 き ま す
。 こ れ は 、 比
較 的 レ ジ ス タ
数 が 少 な く 、
メ モ リ ロ ー ド
命 令 が 1 サ イ ク
ル よ り も 多 く
を 要 す る マ シ
ン に お い て 、
特 に 効 果 的 で
す 。
デ フ ォ
ル ト で は 、 GNU CC コ
ン パ イ ラ は 、
現 在 使 用 し て
い る マ シ ン と
同 じ タ イ プ の
コ ー ド を コ ン
パ イ ル し ま す
。 し か し 、 GNU CC は
ク ロ ス コ ン パ
イ ラ と し て も
イ ン ス ト ー ル
す る こ と が 可
能 で す 。 実 際
に は 、 異 な っ
た タ ー ゲ ッ ト
マ シ ン の た め
の 様 々 な コ ン
フ ィ ギ ュ レ ー
シ ョ ン の GNU CC は 、
同 時 に い く つ
も イ ン ス ト ー
ル す る こ と が
可 能 で す 。 そ
こ で 、 ど の GNU CC を
使 用 す る か を
指 定 す る た め
に 、 ’−b’ オ
プ シ ョ ン を 使
用 す る こ と が
で き ま す 。 こ
れ に 加 え て 、
古 い 、 あ る い
は よ り 新 し い
バ ー ジ ョ ン の GNU CC
も 同 時 に い く
つ も イ ン ス ト
ー ル し て い く
こ と が で き ま
す 。 こ れ ら の
う ち 1 つ (お そ ら
く も っ と も 新
し い も の ) が デ
フ ォ ル ト と な
り ま す 。 し か
し 、 ひ ょ っ と
し た ら 別 の も
の を 使 い た く
な る か も し れ
ま せ ん 。
−b machine
引 数 machine は 、 コ
ン パ イ ル の タ
ー ゲ ッ ト マ シ
ン を 規 定 し ま
す 。 こ れ は GNU CC を
ク ロ ス コ ン パ
イ ラ と し て イ
ン ス ト ー ル し
た 時 に 有 用 で
す 。
machine
に 指 定 す る 値
は 、 GNU CC を ク ロ ス
コ ン パ イ ラ と
し て コ ン フ ィ
ギ ュ レ ー シ ョ
ン し た 時 に 与
え た マ シ ン タ
イ プ と 同 じ で
す 。 例 え ば 、 80386
上 の System V で 実 行
さ れ る プ ロ グ
ラ ム の た め に
’configure i386v’ と い
う コ ン フ ィ ギ
ュ レ ー シ ョ ン
を 行 な っ た ク
ロ ス コ ン パ イ
ラ を 起 動 し た
い 場 合 は 、
’−b i386v’ と 指
定 し ま す 。
’−b’
の 設 定 を 省 略
し た 場 合 は 、
通 常 は 使 用 し
て い る マ シ ン
と 同 タ イ プ の
マ シ ン の た め
の コ ン パ イ ル
が 行 わ れ ま す
。
−V version
引 数 version は 、 起
動 さ れ る GNU CC の バ
ー ジ ョ ン を 規
定 し ま す 。 こ
れ は 複 数 の バ
ー ジ ョ ン が イ
ン ス ト ー ル さ
れ て い る 場 合
に 有 用 で す 。
例 え ば 、 version が
’2.0’ な ら ば 、
GNU CC バ ー ジ ョ ン 2.0
を 起 動 す る こ
と を 意 味 し ま
す 。
’−V’
を 指 定 し な か
っ た 場 合 の デ
フ ォ ル ト の バ
ー ジ ョ ン は 、 GNU CC
を イ ン ス ト ー
ル す る 時 に 調
整 可 能 で す 。
通 常 は 、 も っ
と も 一 般 的 な
使 用 に 勧 め る
こ と が で き る
バ ー ジ ョ ン が
こ こ に 指 定 さ
れ ま す 。
そ れ ぞ
れ の タ ー ゲ ッ
ト マ シ ン タ イ
プ は 、 そ れ ぞ
れ の 特 別 な オ
プ シ ョ ン を 持
つ こ と が 可 能
で す 。 ’−m’
で 始 ま る オ プ
シ ョ ン 群 は 、
様 々 な ハ ー ド
ウ ェ ア モ デ ル
や コ ン フ ィ ギ
ュ レ ー シ ョ ン
—例 え ば 68010 と
68020、 浮 動 小 数 点
コ プ ロ セ ッ サ
の 有 無 — な ど
を 選 択 で き ま
す 。 こ の オ プ
シ ョ ン を 指 定
す る こ と に よ
っ て 、 コ ン パ
イ ラ は ど れ か 1
つ の モ デ ル 、
あ る い は コ ン
フ ィ ギ ュ レ ー
シ ョ ン に 対 す
る コ ン パ イ ル
が 可 能 で す 。
い く つ か の コ
ン フ ィ ギ ュ レ
ー シ ョ ン は 、
通 常 は そ の プ
ラ ッ ト フ ォ ー
ム 上 の 他 の コ
ン パ イ ラ と の
コ マ ン ド ラ イ
ン に 関 す る の
互 換 性 を と る
た め の 特 別 な
オ プ シ ョ ン を
用 意 し て い ま
す 。 以 下 は 68000 シ
リ ー ズ の た め
に 定 義 さ れ た
’−m’ オ プ シ
ョ ン で す 。
−m68000
−mc68000
68000 の た
め の コ ー ド を
生 成 し ま す 。
こ れ は 68000 ベ ー ス
の シ ス テ ム に
対 し て コ ン フ
ィ ギ ュ レ ー シ
ョ ン を 行 な っ
た コ ン パ イ ラ
の デ フ ォ ル ト
で す 。
−m68020
−mc68020
(68000 で は
な く ) 68020 の た め
の コ ー ド を 生
成 し ま す 。 こ
れ は 68020 ベ ー ス の
シ ス テ ム に 対
し て コ ン フ ィ
ギ ュ レ ー シ ョ
ン を 行 な っ た
コ ン パ イ ラ の
デ フ ォ ル ト で
す 。
−m68881 浮
動 小 数 点 演 算
の た め に 68881 命 令
を 含 ん だ 出 力
を 行 い ま す 。
こ れ は ほ と ん
ど の 68020 ベ ー ス の
シ ス テ ム に お
い て 、 コ ン パ
イ ラ の コ ン フ
ィ ギ ュ レ ー シ
ョ ン 時 に −nfp
を 指 定 さ れ な
か っ た 場 合 の
デ フ ォ ル ト で
す 。
−m68030
68030 の た
め の コ ー ド を
生 成 し ま す 。
こ れ は 68030 ベ ー ス
の シ ス テ ム に
対 し て コ ン フ
ィ ギ ュ レ ー シ
ョ ン を 行 な っ
た コ ン パ イ ラ
の デ フ ォ ル ト
で す 。
−m68040
68040 の た
め の コ ー ド を
生 成 し ま す 。
こ れ は 68040 ベ ー ス
の シ ス テ ム に
対 し て コ ン フ
ィ ギ ュ レ ー シ
ョ ン を 行 な っ
た コ ン パ イ ラ
の デ フ ォ ル ト
で す 。
−m68020−40
68040 の た
め の コ ー ド を
生 成 し ま す が
、 新 し い 命 令
を 使 用 し ま せ
ん 。 こ の 結 果
と し て 得 ら れ
る コ ー ド は 、
68020/68881, 68030, 68040 の い ず
れ の シ ス テ ム
に お い て も 、
比 較 的 高 い 性
能 を 持 ち ま す
。
|
−mfpa 浮 動 小 数
点 演 算 の た め
に |
|
Sun FPA 命 令 を 含 ん
だ 出 力 を 行 い
ま す 。 |
−msoft−float
浮 動 小 数 点 演
算 の た め に ラ
イ ブ ラ リ を 呼
び 出 す 出 力 を
行 い ま す 。 警
告 : こ の 必 須 の
ラ イ ブ ラ リ は GNU CC
の 一 部 と し て
は 含 ま れ ま せ
ん 。 通 常 は そ
の マ シ ン の 一
般 的 な C コ ン パ
イ ラ の 提 供 す
る も の を 使 用
し ま す が 、 こ
れ は 通 常 の 方
法 で は ク ロ ス
コ ン パ イ ル で
直 接 使 用 す る
こ と は で き ま
せ ん 。 ク ロ ス
コ ン パ イ ル を
行 な い た い 場
合 は 、 自 分 自
身 で 必 要 な ラ
イ ブ ラ リ 関 数
を 用 意 す る 必
要 が あ り ま す
。
−mshort
int 型 を
short int 型 の よ う
に 16 ビ ッ ト 幅 と
み な し ま す 。
−mnobitfield
ビ ッ ト フ ィ ー
ル ド 命 令 を 使
用 し ま せ ん 。
’−m68000’ は 暗
黙 の う ち に
’−mnobitfield’ を 含
み ま す 。
−mbitfield ビ ッ ト フ
ィ ー ル ド 命 令
を 使 用 し ま す
。 ’−m68020’ は
暗 黙 の う ち に
’−mbitfield’ を 含
み ま す 。 こ れ
は 変 更 さ れ て
い な い ソ ー ス
の 場 合 の デ フ
ォ ル ト で す 。
|
−mrtd 固 定 個 数
の 引 数 を と る
関 数 に 対 し て
、 異 な っ た 関
数 呼 び 出 し 規
約 を 使 用 し ま
す 。 こ れ は 、
リ タ ー ン 時 に
引 数 を ポ ッ プ
す る |
rtd 命 令
を 利 用 す る も
の で す 。 こ れ
は 呼 び 出 し 側
で 引 数 を ポ ッ
プ さ せ る 必 要
が な い た め に
、 1 命 令 を 省 略
す る こ と が 可
能 と な り ま す
。 こ の 呼 び 出
し 規 約 は 通 常
の Unix で 使 用 さ れ
て い る 方 式 と
は 互 換 性 が あ
り ま せ ん 。 そ
の た め 、 Unix コ ン
パ イ ラ で コ ン
パ イ ル さ れ た
ラ イ ブ ラ リ を
呼 び 出 す 必 要
が あ る 限 り は
、 使 用 す る こ
と は で き ま せ
ん 。 さ ら に 、
全 て の 可 変 引
数 を と り 得 る
関 数 ( printfを 含 み
ま す ) に 対 し て
、 関 数 プ ロ ト
タ イ プ を 用 意
す る 必 要 が あ
り ま す 。 さ も
な い と 、 こ れ
ら の 関 数 に 対
し て 誤 っ た コ
ー ド が 生 成 さ
れ ま す 。 さ ら
に 、 関 数 に 対
し て 多 過 ぎ る
引 数 を つ け て
呼 び 出 す コ ー
ド を 書 い た 場
合 、 こ れ は 深
刻 な 誤 っ た コ
ー ド を 生 成 し
ま す 。 (通 常 は
多 過 ぎ る 変 数
は 害 を 及 ぼ す
こ と な く 無 視
さ れ ま す 。 )
rtd
命 令 は 68010 と 68020 に
よ っ て サ ポ ー
ト さ れ ま す が
、 68000 で は 使 用 で
き ま せ ん 。 以
下 は Vax の た め に
定 義 さ れ た
’−m’ オ プ シ
ョ ン で す 。
|
−munix 特
定 の い く つ か
の ジ ャ ン プ 命
令 |
|
(aobleq 等 )
を 出 力 し ま せ
ん 。 こ れ ら |
の 命 令
で 長 い レ ン ジ
を 使 用 し た 場
合 、 Vax 用 の Unix ア
セ ン ブ ラ は こ
れ を 処 理 で き
ま せ ん 。
|
−mgnu こ
れ ら の ジ ャ ン
プ 命 令 を 出 力
し ま す 。 ア セ
ン ブ ル に は |
|
GNU ア セ ン
ブ ラ |
の 使 用
を 仮 定 し ま す
。
|
−mg 浮
動 小 数 点 数 に
つ い て 、 |
|
d-フ ォ ー
マ ッ ト で は な
く 、 g-フ ォ ー マ
ッ ト の た |
め の コ
ー ド を 出 力 し
ま す 。 以 下 は SPARC
で サ ポ ー ト さ
れ て い る
’−m’ ス イ ッ
チ で す 。
−mfpu
−mhard−float 浮 動 小
数 点 命 令 を 含
む 出 力 を 行 い
ま す 。 こ れ は
デ フ ォ ル ト で
す 。
−mno−fpu
−msoft−float 浮 動 小
数 点 の 処 理 の
た め に ラ イ ブ
ラ リ を 呼 び 出
す 出 力 を 行 い
ま す 。 警 告 : SPARC
用 の GNU 浮 動 小 数
点 ラ イ ブ ラ リ
は 存 在 し ま せ
ん 。 通 常 は そ
の マ シ ン の 一
般 的 な C コ ン パ
イ ラ の 提 供 す
る も の を 使 用
し ま す が 、 こ
れ は 通 常 の 方
法 で は ク ロ ス
コ ン パ イ ル で
直 接 使 用 す る
こ と は で き ま
せ ん 。 ク ロ ス
コ ン パ イ ル を
行 な い た い 場
合 は 、 自 分 自
身 で 必 要 な ラ
イ ブ ラ リ 関 数
を 用 意 す る 必
要 が あ り ま す
。
−msoft−float
は 呼 び 出 し 規
約 を 変 更 し ま
す 。 し た が っ
て 、 全 て の プ
ロ グ ラ ム を こ
の オ プ シ ョ ン
で コ ン パ イ ル
し な い 限 り 、
こ の オ プ シ ョ
ン は 意 味 を な
し ま せ ん 。
−mno−epilogue
−mepilogue
−mepilogue
を 指 定 す る こ
と に よ っ て (デ
フ ォ ル ト )、 コ
ン パ イ ラ は 関
数 を 抜 け る た
め の コ ー ド を
常 に 関 数 の 最
後 に 出 力 し ま
す 。 関 数 の 途
中 で 関 数 を 抜
け る コ ー ド は
全 て 、 関 数 の
最 後 の 終 了 コ
ー ド へ の ジ ャ
ン プ と し て 生
成 さ れ ま す 。
−mno−epilogue
を 設 定 す る こ
と に よ っ て 、
コ ン パ イ ラ は
関 数 か ら 抜 け
る コ ー ド を イ
ン ラ イ ン 化 す
る こ と を 試 み
ま す 。
−mno−v8
−msparclite
こ れ ら の 3 つ の
オ プ シ ョ ン は SPARC
ア ー キ テ ク チ
ャ の バ リ エ ー
シ ョ ン を 選 択
す る た め に 使
用 さ れ ま す 。
デ フ ォ ル ト で
は 、 (Fujitsu SPARClite 用 に
コ ン フ ィ ギ ュ
レ ー シ ョ ン し
な い 限 り は ) GCC は
SPARC ア ー キ テ ク チ
ャ v7 用 の コ ー ド
を 生 成 し ま す
。
−mv8
は 、 SPARC v8 用 コ ー
ド を 生 成 し ま
す 。 v7 コ ー ド と
の 違 い は 、 整
数 の 乗 算 と 整
数 の 除 算 が v7 で
は 存 在 し な い
が v8 に は 存 在 す
る と い う 点 の
み で す 。
−msparclite
は 、 SPARClite 用 の コ
ー ド を 生 成 し
ま す 。 こ れ は v7
に は 存 在 せ ず
SPARClite に 存 在 す る
、 整 数 乗 算 、
整 数 除 算 と ス
キ ャ ン (ffs) 命 令 を
追 加 し ま す 。
−mcypress
−msupersparc こ れ ら 2 つ
の オ プ シ ョ ン
は コ ー ド 最 適
化 対 象 の プ ロ
セ ッ サ を 選 択
す る た め の も
の で す 。
−mcypress
を 用 い る と (こ
れ が デ フ ォ ル
ト )、 コ ン パ イ
ラ は Cypress CY7C602 チ ッ プ
用 に コ ー ド を
最 適 化 し ま す
。 こ の チ ッ プ
は SparcStation/SparcServer 3xx シ リ
ー ズ に 用 い ら
れ て い ま す 。
こ の オ プ シ ョ
ン は 古 い SparcStation 1, 2, IPX
な ど に も 適 用
で き ま す 。
−msupersparc
を 用 い る と 、
コ ン パ イ ラ は
SuperSparc CPU 用 に コ ー ド
を 最 適 化 し ま
す 。 こ の チ ッ
プ は SparcStation 10, 1000, 2000 シ
リ ー ズ に 用 い
ら れ て い ま す
。 こ の オ プ シ
ョ ン を 用 い る
と 、 SPARC v8 の 全 命
令 セ ッ ト を 用
い る よ う に な
り ま す 。 以 下
は Convex の た め に 定
義 さ れ た
’−m’ オ プ シ
ョ ン で す 。
|
−mc1 |
|
C1 用 の 出 力 を 行
い ま す 。 こ れ
は コ ン パ イ ラ
が C1 用 に コ ン フ
ィ ギ ュ レ ー シ
ョ ン を 行 な わ
れ た 時 の デ フ
ォ ル ト で す 。 |
|
−mc2 |
|
C2 用 の 出 力 を 行
い ま す 。 こ れ
は コ ン パ イ ラ
が C2 用 に コ ン フ
ィ ギ ュ レ ー シ
ョ ン を 行 な わ
れ た 時 の デ フ
ォ ル ト で す 。 |
−margcount
引 数 列 の 前 に
、 引 数 の 数 を
ワ ー ド に 置 く
コ ー ド を 生 成
し ま す 。 い く
つ か の 可 搬 性
の な い Convex や Vax の
プ ロ グ ラ ム は
こ の ワ ー ド を
必 要 と し ま す
。 (デ バ ッ ガ は
不 定 長 引 数 リ
ス ト を 持 つ 関
数 を 除 い て 、
こ の ワ ー ド を
必 要 と し ま せ
ん 。 こ れ ら の
情 報 は シ ン ボ
ル テ ー ブ ル に
書 か れ ま す 。 )
−mnoargcount 引 数 の 数
を 示 す ワ ー ド
を 省 略 し ま す
。 こ れ は 変 更
さ れ て い な い
ソ ー ス を 使 用
し た 場 合 の デ
フ ォ ル ト で す
。 以 下 は 、 AMD Am29000
の た め に 定 義
さ れ た ’−m’
オ プ シ ョ ン で
す 。
|
−mdw |
|
DW ビ ッ ト が 立 っ
て い る こ と を
仮 定 し た コ ー
ド を 出 力 し ま
す 。 こ れ は 、
ハ ー ド ウ ェ ア
に よ っ て バ イ
ト 操 作 や ハ ー
フ ワ ー ド 操 作
が サ ポ ー ト さ
れ て い る と い
う こ と を 意 味
し ま す 。 こ れ
は デ フ ォ ル ト
で す 。 |
|
−mnodw |
|
DW ビ ッ ト が 立 っ
て い な い こ と
を 仮 定 し た コ
ー ド を 出 力 し
ま す 。 |
|
−mbw |
|
|
シ ス テ
ム が バ イ ト 操
作 や ハ ー フ ワ
ー ド 書 き 込 み
操 作 を サ ポ ー
ト し て い る こ
と を 仮 定 し た
コ ー ド を 生 成
し ま す 。 こ れ
は デ フ ォ ル ト
で す 。
|
−mnbw シ ス テ ム
が バ イ ト 操 作
や ハ ー フ ワ ー
ド 書 き 込 み 操
作 を サ ポ ー ト
し て い な い こ
と を 仮 定 し た
コ ー ド を 生 成
し ま す 。 こ れ
は 暗 黙 の う ち
に |
’−mnodw’
を 含 み ま す 。
−msmall ス モ ー ル
メ モ リ モ デ ル
を 使 用 し ま す
。 こ れ は 全 て
の 関 数 の ア ド
レ ス が 単 一 の 256KB
の セ グ メ ン ト
内 に 入 る こ と
と 、 関 数 の 絶
対 ア ド レ ス が 256K
以 下 に あ る こ
と を 仮 定 し ま
す 。 こ の オ プ
シ ョ ン は call 命
令 を const, consth, calli
シ ー ケ ン ス の
代 わ り に 使 用
す る こ と を 可
能 に し ま す 。
−mlarge
call 命 令
が 使 用 で き る
こ と を 仮 定 し
ま せ ん 。 こ れ
は デ フ ォ ル ト
で す 。
−m29050
Am29050 用 の
コ ー ド を 生 成
し ま す 。
−m29000
Am29000 用 の
コ ー ド を 生 成
し ま す 。 こ れ
は デ フ ォ ル ト
で す 。
−mkernel−registers
gr96-gr127 レ
ジ ス タ へ の 参
照 の 代 わ り に
gr64-gr95 を 参 照 す
る コ ー ド を 生
成 し ま す 。 こ
の オ プ シ ョ ン
は 、 ユ ー ザ の
コ ー ド か ら 使
用 で き る グ ロ
ー バ ル レ ジ ス
タ か ら 区 別 さ
れ た グ ロ ー バ
ル レ ジ ス タ の
集 合 を 利 用 す
る カ ー ネ ル の
コ ー ド を コ ン
パ イ ル す る 時
に 使 用 で き ま
す 。 た だ し 、
こ の オ プ シ ョ
ン が 使 用 さ れ
て い る 時 に も
’−f’ フ ラ グ
中 の レ ジ ス タ
名 は 通 常 の ユ
ー ザ モ ー ド で
の 名 前 を 使 用
し ま す 。
−muser−registers
通 常 の グ ロ ー
バ ル レ ジ ス タ
の 集 合 gr96-gr127 を
使 用 し ま す 。
こ れ は デ フ ォ
ル ト で す 。
−mstack−check
__msp_check へ
の 呼 び 出 し を
そ れ ぞ れ の ス
タ ッ ク 調 整 の
後 に 挿 入 し ま
す 。 こ れ は し
ば し ば カ ー ネ
ル の コ ー ド に
お い て 用 い ら
れ ま す 。 以 下
は 、 Motorola 88K ア ー キ
テ ク チ ャ の た
め に 定 義 さ れ
た ’−m’ オ プ
シ ョ ン で す 。
−m88000
m88100 と m88110 の
双 方 で 比 較 的
高 性 能 で 動 作
す る コ ー ド を
生 成 し ま す 。
−m88100
m88100 に 最
適 な コ ー ド を
生 成 し ま す 。
た だ し m88110 に お い
て も 動 作 し ま
す 。
−m88110
m88110 に 最
適 な コ ー ド を
生 成 し ま す 。
た だ し m88100 に お い
て は 動 作 し な
い か も 知 れ ま
せ ん
−midentify−revision
ア セ ン ブ ラ 出
力 中 に 、 ソ ー
ス フ ァ イ ル 名
、 コ ン パ イ ラ
名 と バ ー ジ ョ
ン 、 タ イ ム ス
タ ン プ 、 使 用
さ れ た コ ン パ
イ ル フ ラ グ を
記 し た ident デ ィ
レ ク テ ィ ブ を
挿 入 し ま す 。
−mno−underscores シ ン ボ
ル 名 の 最 初 に
ア ン ダ ー ス コ
ア キ ャ ラ ク タ
を つ け な い ア
セ ン ブ ラ 出 力
を 生 成 し ま す
。 デ フ ォ ル ト
で は 個 々 の 名
前 に 対 し て 、
ア ン ダ ー ス コ
ア を プ レ フ ィ
ッ ク ス と し て
使 用 し ま す 。
−mno−check−zero−division
−mcheck−zero−division 初
期 の 88K の モ デ ル
は ゼ ロ に よ る
除 算 の 処 理 に
問 題 を 持 っ て
い ま し た 。 特
に 、 そ れ ら の
多 く に お い て
ト ラ ッ プ が 生
じ な か っ た こ
と は 問 題 で し
た 。 こ れ ら の
オ プ シ ョ ン を
使 用 す る こ と
に よ っ て 、 ゼ
ロ 除 算 を 発 見
し 、 例 外 を 知
ら せ る コ ー ド
を 埋 め 込 む こ
と を 禁 止 (あ る
い は 明 示 的 に
許 可 ) す る こ と
が で き ま す 。
全 て の 88K 用 の GCC
の コ ン フ ィ ギ
ュ レ ー シ ョ ン
は
’−mcheck−zero−division’
を デ フ ォ ル ト
と し て 使 用 し
て い ま す 。
−mocs−debug−info
−mno−ocs−debug−info
88Open Object Compatibility
Standard “OCS” で 定 義
さ れ た (そ れ ぞ
れ の ス タ ッ ク
フ レ ー ム 中 で
使 用 さ れ る レ
ジ ス タ に 関 す
る ) 付 加 的 な デ
バ ッ グ 情 報 を
取 り 込 み ま す
(ま た は 省 略 し
ま す )。 こ れ ら
の 付 加 的 な 情
報 は GDB に よ っ て
は 必 要 と さ れ
ま せ ん 。 DG/UX, SVr4, Delta 88
SVr3.2 で は デ フ ォ ル
ト で こ の 情 報
を 含 め ま す 。
そ の 他 の 88K コ ン
フ ィ ギ ュ レ ー
シ ョ ン で は デ
フ ォ ル ト で 省
略 し ま す 。
−mocs−frame−position
−mno−ocs−frame−position
OCS で 規 定
さ れ て い る よ
う に 、 レ ジ ス
タ の 値 に 対 し
て 、 ス タ ッ ク
フ レ ー ム 中 の
特 定 の 場 所 に
保 存 さ れ る と
い う 動 作 を 強
制 し ま す (あ る
い は 要 求 し ま
せ ん )。 DG/UX, Delta88 SVr3.2, BCS
の コ ン フ ィ ギ
ュ レ ー シ ョ ン
で は
’−mocs−frame−position’
を デ フ ォ ル ト
と し て 、 そ れ
以 外 の 88k コ ン フ
ィ ギ ュ レ ー シ
ョ ン で は
’−mno−ocs−frame−position’
を デ フ ォ ル ト
と し て 使 用 し
て い ま す 。
−moptimize−arg−area
−mno−optimize−arg−area 関
数 の 引 数 が ど
の よ う な 方 法
で ス タ ッ ク フ
レ ー ム に 格 納
さ れ る か を 指
定 し ま す 。
’−moptimize−arg−area’
は ス ペ ー ス を
節 約 し ま す が
、 い く つ か の
デ バ ッ ガ (GDB は 含
ま れ な い ) を ク
ラ ッ シ ュ さ せ
ま す 。
’−mno−optimize−arg−area’
は よ り 標 準 に
従 っ て い ま す
。 デ フ ォ ル ト
で は GCC は 引 数 エ
リ ア の 最 適 化
を 行 い ま せ ん
。
−mshort−data−num デ
ー タ 参 照 時 に
、 そ れ ら の 処
理 を r0 か ら の
相 対 参 照 で 行
な う こ と に よ
っ て 小 さ な コ
ー ド に す る こ
と を 可 能 と し
ま す 。 こ れ は
値 の ロ ー ド を
(そ の 他 の 場 合
は 2 命 令 か か る
と こ ろ を ) 1 命 令
で 行 な う こ と
を 可 能 に し ま
す 。 num を こ の
オ プ シ ョ ン と
と も に 指 定 す
る こ と に よ っ
て 、 ど の デ ー
タ 参 照 が 影 響
を 受 け る か を
指 定 す る こ と
が で き ま す 。
例 え ば
’−mshort−data−512’
を 指 定 す る と
、 512 バ イ ト 以 内
の デ ィ ス プ レ
ー ス メ ン ト の
デ ー タ 参 照 が
影 響 を 受 け る
こ と に な り ま
す 。
’−mshort−data−num’
は num が 64K よ り も
大 き な 時 は 効
果 を 持 ち ま せ
ん 。
−mserialize-volatile
−mno-serialize-volatile
volatile な メ
モ リ へ の 参 照
に つ い て 、 シ
ー ケ ン シ ャ ル
な 整 合 性 を 持
っ た コ ー ド を
生 成 す る 、 あ
る い は 生 成 し
ま せ ん 。
GNU CC は
デ フ ォ ル ト で
は ど の プ ロ セ
ッ サ サ ブ モ デ
ル を 選 ん だ 場
合 に お い て も
、 整 合 性 を 常
に 保 証 し ま す
。 こ れ が ど の
よ う に 実 現 さ
れ て い る か は
、 サ ブ モ デ ル
に 依 存 し て い
ま す 。
m88100 プ
ロ セ ッ サ は メ
モ リ 参 照 の 順
番 を 入 れ 換 え
な い の で 、 常
に シ ー ケ ン シ
ャ ル な 整 合 性
は 保 た れ ま す
。 も し
’−m88100’ を 使
用 し た 場 合 は
、 GNU CC は シ ー ケ ン
シ ャ ル な 整 合
性 を 保 つ た め
の 特 別 な 命 令
を 生 成 し ま せ
ん 。
m88110 プ
ロ セ ッ サ に お
け る メ モ リ 参
照 の 順 番 は 、
必 ず し も そ れ
ら の 要 求 を 行
な っ た 命 令 の
順 番 と は 一 致
し ま せ ん 。 特
に 、 読 み 込 み
命 令 は 、 先 行
す る 書 き 込 み
命 令 よ り も 先
に 実 行 さ れ 得
ま す 。 こ の よ
う な 順 番 の 入
れ 換 え は 、 マ
ル チ プ ロ セ ッ
サ 時 に volatile な メ
モ リ の 参 照 に
お け る シ ー ケ
ン シ ャ ル な 整
合 性 を 崩 し て
し ま い ま す 。
’−m88000’ ま た
は ’−m88110’ を
指 定 し た 場 合
に は 、 GNU CC は 、 必
要 な 場 合 は 特
別 な 命 令 を 生
成 し 、 命 令 の
実 行 が 正 し い
順 番 で 行 な わ
れ る こ と を 強
制 し ま す 。 こ
こ で 生 成 さ れ
る 整 合 性 を 保
証 す る た め の
特 別 な 命 令 は
ア プ リ ケ ー シ
ョ ン の 性 能 に
対 し て 影 響 を
及 ぼ し ま す 。
も し こ の 保 証
無 し で 問 題 が
な い と い う こ
と が わ か っ て
い る 場 合 は 、
’−mno-serialize-volatile’ を
使 用 す る こ と
が で き ま す 。
’−m88100’
オ プ シ ョ ン を
使 用 し て い る
が 、 m88110 に お け る
実 行 時 に シ ー
ケ ン シ ャ ル な
整 合 性 が 必 要
と さ れ る 場 合
は 、
’−mserialize-volatile’ を
使 用 す る べ き
で す 。
−msvr4
|
−msvr3 |
|
System V release 4 (SVr4) に 関 連
し た コ ン パ イ
ラ の 拡 張 を 有
効 (’−msvr4’) あ
る い は 無 効
(’−msvr3’) に し
ま す 。 こ れ は
以 下 の 内 容 を
制 御 し ま す 。
生 成 す
る ア セ ン ブ ラ
の 文 法 の 種 類
(こ れ は
’−mversion−03.00’ を
使 用 す る こ と
に よ っ て 独 立
に 制 御 で き ま
す )。
•
’−msvr4’
は C プ リ プ ロ セ
ッ サ に 対 し て
’#pragma weak’ を 理 解
さ せ ま す 。
•
’−msvr4’
は 、 GCC に SVr4 に よ
っ て 使 用 さ れ
て い る 付 加 的
な 宣 言 デ ィ レ
ク テ ィ ブ を 生
成 さ せ ま す 。
’−msvr3’
は 、 SVr4 を 除 く 全
て の m88K コ ン フ ィ
ギ ュ レ ー シ ョ
ン に お け る デ
フ ォ ル ト で す
。
−mtrap−large−shift
−mhandle−large−shift
31 ビ ッ ト
よ り 大 き い ビ
ッ ト シ フ ト を
検 出 す る コ ー
ド を 埋 め 込 み
ま す 。 こ れ ら
の オ プ シ ョ ン
を 指 定 す る こ
と に よ っ て 、
そ れ ぞ れ ト ラ
ッ プ 、 あ る い
は 適 切 に 処 理
す る コ ー ド が
埋 め 込 ま れ ま
す 。 デ フ ォ ル
ト で は GCC は 大 き
な ビ ッ ト シ フ
ト に は 特 別 な
対 策 を 行 い ま
せ ん 。
−muse−div−instruction
非 常 に 初 期 の 88K
ア ー キ テ ク チ
ャ の モ デ ル は
除 算 命 令 を 持
っ て い ま せ ん
。 従 っ て 、 GCC は
デ フ ォ ル ト で
は 除 算 命 令 を
生 成 し ま せ ん
。 こ の オ プ シ
ョ ン は 除 算 命
令 が 安 全 に 使
用 で き る と い
う こ と を 指 定
し ま す 。
−mversion−03.00
DG/UX コ ン
フ ィ ギ ュ レ ー
シ ョ ン に は 、 2
つ の SVr4 の 種 類 が
あ り ま す 。 こ
の オ プ シ ョ ン
は −msvr4 オ プ シ
ョ ン に よ っ て
hybrid-COFF と real-ELF の ど ち
ら が 使 用 さ れ
る か を 選 択 し
ま す 。 他 の コ
ン フ ィ ギ ュ レ
ー シ ョ ン は こ
の オ プ シ ョ ン
を 無 視 し ま す
。
−mwarn−passed−structs
関 数 に 対 し て
構 造 体 を 渡 し
た 場 合 と 、 関
数 が 構 造 体 を
返 し た 場 合 に
警 告 し ま す 。
構 造 体 を 渡 す
規 約 は C 言 語 の
発 展 の 中 で 変
化 し て お り 、
移 植 性 の 問 題
を し ば し ば 生
じ る こ と に な
り ま す 。 デ フ
ォ ル ト で は GCC は
こ の 警 告 を 行
い ま せ ん 。 以
下 の オ プ シ ョ
ン は IBM RS6000 の た め
に 定 義 さ れ た
も の で す 。
−mfp−in−toc
−mno−fp−in−toc 浮 動
小 数 点 定 数 を Table
of Contents (TOC) に 入 れ る
か ど う か を 指
定 し ま す 。 こ
の テ ー ブ ル は
全 て の グ ロ ー
バ ル 変 数 と 関
数 の ア ド レ ス
を 格 納 し ま す
。 デ フ ォ ル ト
で は GCC は 浮 動 小
数 点 定 数 を こ
こ に 格 納 し ま
す 。 も し TOC が 算
術 あ ふ れ を お
こ す 場 合 は 、
’−mno−fp−in−toc’
を 使 用 す る こ
と に よ っ て TOC の
サ イ ズ を 小 さ
く す る こ と が
可 能 で あ り 、
算 術 あ ふ れ を
防 ぐ こ と が で
き る で し ょ う
。 以 下 は IBM RT PC 用
に 定 義 さ れ た
’−m’ オ プ シ
ョ ン で す 。
−min−line−mul 整 数
の 乗 算 に 対 し
て イ ン ラ イ ン
の コ ー ド 列 を
生 成 し ま す 。
こ れ は デ フ ォ
ル ト で す 。
−mcall−lib−mul 整 数
の 乗 算 に 対 し
て lmul$$ を 呼 び 出
し ま す 。
−mfull−fp−blocks フ ル
サ イ ズ の 浮 動
小 数 点 デ ー タ
ブ ロ ッ ク を 生
成 し ま す 。 こ
れ は IBM に よ っ て
推 奨 さ れ て い
る 最 低 限 の ス
ク ラ ッ チ ス ペ
ー ス の 量 を 包
含 し ま す 。 こ
れ は デ フ ォ ル
ト で す 。
−mminimum−fp−blocks 浮 動
小 数 点 デ ー タ
ブ ロ ッ ク 内 に
特 別 な ス ク ラ
ッ チ ス ペ ー ス
を 含 め ま せ ん
。 こ れ に よ っ
て 、 よ り 小 さ
な コ ー ド が 生
成 さ れ ま す が
、 実 行 は 遅 く
な り ま す 。 な
ぜ な ら ス ク ラ
ッ チ ス ペ ー ス
が 動 的 に 確 保
さ れ る か ら で
す 。
−mfp−arg−in−fpregs
IBM の 関 数
呼 び 出 し 規 約
と は 互 換 性 の
な い 呼 び 出 し
手 順 を 使 用 し
ま す 。 こ の 規
約 で は 浮 動 小
数 点 引 数 を 浮
動 小 数 点 レ ジ
ス タ に 入 れ て
渡 し ま す 。 こ
の オ プ シ ョ ン
を 指 定 す る と
、 varargs.h や stdarg.h で
浮 動 小 数 点 オ
ペ ラ ン ド が 使
用 で き な く な
る こ と に 注 意
し て 下 さ い 。
−mfp−arg−in−gregs
浮 動 小 数 点 に
対 し て 通 常 の
関 数 呼 び 出 し
規 約 を 使 用 し
ま す 。 こ れ は
デ フ ォ ル ト で
す 。
−mhc−struct−return
1 ワ ー ド
よ り 大 き な 構
造 体 を 返 す 時
に 、 レ ジ ス タ
で は な く メ モ
リ を 使 用 し て
返 し ま す 。 こ
れ は MetaWare HighC (hc) コ ン
パ イ ラ と の 互
換 性 を 提 供 し
ま す 。
’−fpcc−struct−return’
を 使 用 す る こ
と に よ っ て Portable C
Compiler (pcc) と の 互 換 性
を 得 る こ と が
で き ま す 。
−mnohc−struct−return
1 ワ ー ド
よ り 大 き な 構
造 体 を 返 す 時
に 、 レ ジ ス タ
に よ っ て 返 さ
れ る 場 合 が あ
り ま す 。 こ れ
は そ の 方 が 便
利 で あ る と 考
え ら れ る 時 に
使 用 さ れ ま す
。 こ れ は デ フ
ォ ル ト で す 。 IBM
が 提 供 す る コ
ン パ イ ラ と の
互 換 性 を 得 る
た め に は 、
’−fpcc−struct−return’
と
’−mhc−struct−return’
の 双 方 を 使 用
し ま す 。 以 下
は MIPS フ ァ ミ リ の
た め に 定 義 さ
れ た ’−m’ オ
プ シ ョ ン で す
。
−mcpu=cpu-type
命 令 ス ケ ジ ュ
ー リ ン グ 時 に
、 デ フ ォ ル ト
の マ シ ン タ イ
プ を cpu-type に 仮 定
し ま す 。 デ フ
ォ ル ト の cpu-type は
default で す 。 こ の
選 択 は す べ て
の マ シ ン に 対
す る 最 長 の サ
イ ク ル 数 を 元
に コ ー ド を 生
成 し ま す 。 こ
れ は 、 生 成 さ
れ る コ ー ド が
ど の MIPS cpu に お い
て も 適 当 な 速
度 で 処 理 さ れ
る よ う に す る
た め で す 。 こ
れ 以 外 の cpu-type の
選 択 と し て は
、 r2000, r3000, r4000,
r6000 が あ り ま す
。 特 定 の cpu-type を
選 択 し た 場 合
は 、 そ の 特 定
の チ ッ プ に 適
し た ス ケ ジ ュ
ー ル が 行 わ れ
ま す 。 コ ン パ
イ ラ は 、 −mips2
ま た は −mips3 ス
イ ッ チ が 使 用
さ れ て い な い
場 合 は 、 MIPS ISA (instruction
set architecture) の レ ベ ル 1
に 合 致 し な い
コ ー ド を 生 成
す る こ と は あ
り ま せ ん 。
|
−mips2 |
|
MIPS ISA の レ ベ ル 2 (branch
likely 命 令 , 平 方 根
命 令 ) に よ る 命
令 群 を 出 力 し
ま す 。 −mcpu=r4000 と
−mcpu=r6000 ス イ ッ チ
は 、 −mips2 と 共
に 使 用 さ れ る
必 要 が あ り ま
す 。 |
|
−mips3 |
|
MIPS ISA の レ ベ ル 3 (64
ビ ッ ト 命 令 ) を
含 む 命 令 群 を
出 力 し ま す 。
−mcpu=r4000 ス イ ッ チ
は 、 −mips2 と 同
時 に 使 用 す る
必 要 が あ り ま
す 。 |
−mint64
−mlong64
−mlonglong128 こ れ ら の
オ プ シ ョ ン は
現 在 動 作 し ま
せ ん 。
−mmips−as
MIPS ア セ ン
ブ ラ の た め の
コ ー ド を 生 成
し 、 mips−tfile を 起
動 し て 通 常 の
デ バ ッ グ 情 報
を 追 加 し ま す
。 こ れ は OSF/1 リ フ
ァ レ ン ス プ ラ
ッ ト フ ォ ー ム
以 外 の 全 て の
プ ラ ッ ト フ ォ
ー ム に お け る
デ フ ォ ル ト で
す 。 OSF/1 リ フ ァ レ
ン ス プ ラ ッ ト
フ ォ ー ム は OSF/rose
オ ブ ジ ェ ク ト
フ ォ ー マ ッ ト
を 使 用 し ま す
。 ス イ ッ チ
−ggdb, −gstabs,
−gstabs+ の う ち の
ど れ か が 使 用
さ れ て い る 場
合 は 、 mips−tfile プ
ロ グ ラ ム は 、 stabs
を MIPS ECOFF 中 に カ プ
セ ル 化 し ま す
。
|
−mgas |
|
GNU ア セ ン ブ ラ
用 の コ ー ド を
生 成 し ま す 。
こ れ は OSF/1 リ フ ァ
レ ン ス プ ラ ッ
ト フ ォ ー ム に
お け る デ フ ォ
ル ト で す 。 OSF/1 リ
フ ァ レ ン ス プ
ラ ッ ト フ ォ ー
ム は OSF/rose オ ブ ジ
ェ ク ト フ ォ ー
マ ッ ト を 使 用
し ま す 。 |
−mrnames
−mno−rnames
−mrnames ス
イ ッ チ は 出 力
コ ー ド に お い
て 、 レ ジ ス タ
の 名 前 と し て
、 ハ ー ド ウ ェ
ア 名 の 代 わ り
に MIPS ソ フ ト ウ ェ
ア 名 を 使 用 す
る こ と を 指 定
し ま す 。 (つ ま
り 、 a0 を $4 の
代 わ り に 使 用
し ま す )。 GNU ア セ
ン ブ ラ は −mrnames
ス イ ッ チ を サ
ポ ー ト し ま せ
ん 。 MIPS ア セ ン ブ
ラ は ソ ー ス フ
ァ イ ル に 対 し
て MIPS C プ リ プ ロ セ
ッ サ を 起 動 す
る で し ょ う 。
−mno−rnames ス イ ッ
チ が デ フ ォ ル
ト で す 。
−mgpopt
−mno−gpopt
−mgpopt ス
イ ッ チ は 、 全
て の デ ー タ 宣
言 を テ キ ス ト
セ ク シ ョ ン 中
の 全 命 令 の 前
に 書 き 出 す こ
と を 指 定 し ま
す 。 こ れ に よ
っ て 、 全 て の MIPS
ア セ ン ブ ラ は
、 シ ョ ー ト グ
ロ ー バ ル 、 あ
る い は 静 的 な
デ ー タ ア イ テ
ム に 対 し て 、 2
ワ ー ド で は な
く 、 1 ワ ー ド の
メ モ リ 参 照 命
令 を 生 成 し ま
す 。 こ れ は 最
適 化 が 指 定 さ
れ た 場 合 の デ
フ ォ ル ト で す
。
−mstats
−mno−stats
−mstats が
指 定 さ れ た 場
合 は 、 コ ン パ
イ ラ に よ っ て
イ ン ラ イ ン で
な い 関 数 が 処
理 さ れ る ご と
に 、 標 準 エ ラ
ー 出 力 フ ァ イ
ル に 対 し て 、
そ の プ ロ グ ラ
ム に 対 す る 統
計 情 報 を 示 す 1
行 の メ ッ セ ー
ジ を 出 力 し ま
す 。 こ の メ ッ
セ ー ジ は 、 保
存 し た レ ジ ス
タ の 数 、 ス タ
ッ ク の サ イ ズ
な ど を 示 し ま
す 。
−mmemcpy
−mno−memcpy
−mmemcpy ス
イ ッ チ は 、 全
て の ブ ロ ッ ク
転 送 に 対 し て
、 イ ン ラ イ ン
コ ー ド を 生 成
す る 代 わ り に
、 適 切 な ス ト
リ ン グ 関 数 (memcpy
ま た は bcopy) を 呼
び 出 す コ ー ド
を 生 成 し ま す
。
−mmips−tfile
−mno−mips−tfile
−mno−mips−tfile
ス イ ッ チ を 指
定 す る と 、 MIPS ア
セ ン ブ ラ が デ
バ ッ グ サ ポ ー
ト の た め に 生
成 し た オ ブ ジ
ェ ク ト フ ァ イ
ル に 対 し 、
mips−tfile を 使 用 し
た 後 処 理 を 行
い ま せ ん 。
mips−tfile が 実 行 さ
れ な い と 、 デ
バ ッ ガ か ら は
ロ ー カ ル 変 数
を 扱 う こ と が
で き ま せ ん 。
さ ら に 、 stage2 と
stage3 の オ ブ ジ ェ
ク ト は ア セ ン
ブ ラ に 渡 さ れ
る 一 時 的 な フ
ァ イ ル 名 を オ
ブ ジ ェ ク ト フ
ァ イ ル 中 に 埋
め 込 ま れ て 持
っ て お り 、 こ
の た め そ れ ら
を 比 較 し た 場
合 に 同 一 の も
の と は み な さ
れ ま せ ん 。
−msoft−float
浮 動 小 数 点 演
算 の た め に ラ
イ ブ ラ リ を 呼
び 出 す 出 力 を
行 い ま す 。 警
告 : こ の 必 須 の
ラ イ ブ ラ リ は GNU CC
の 一 部 と し て
は 含 ま れ ま せ
ん 。 通 常 は そ
の マ シ ン の 一
般 的 な C コ ン パ
イ ラ の 提 供 す
る も の を 使 用
し ま す が 、 こ
れ は 通 常 の 方
法 で は ク ロ ス
コ ン パ イ ル で
直 接 使 用 す る
こ と は で き ま
せ ん 。 ク ロ ス
コ ン パ イ ル を
行 な い た い 場
合 は 、 自 分 自
身 で 必 要 な ラ
イ ブ ラ リ 関 数
を 用 意 す る 必
要 が あ り ま す
。
−mhard−float 浮 動 小
数 点 命 令 を 含
ん だ 出 力 を 生
成 し ま す 。 こ
れ は 変 更 さ れ
な い ソ ー ス を
使 用 し た 場 合
の デ フ ォ ル ト
で す 。
|
−mfp64 ス テ ー タ
ス ワ ー ド 中 の |
|
FR ビ ッ ト が 立
っ て い る こ と
を 仮 定 し ま す
。 こ れ |
は 32 個 の
32 ビ ッ ト 浮 動 小
数 点 レ ジ ス タ
の 代 わ り に 、 32
個 の 64 ビ ッ ト の
浮 動 小 数 点 レ
ジ ス タ が 存 在
す る と い う こ
と を 示 し ま す
。 こ の 場 合 は
、 同 時 に −mcpu=r4000
と −mips3 ス イ ッ
チ を 指 定 す る
必 要 が あ り ま
す 。
|
−mfp32 |
|
32 個 の 32 ビ
ッ ト 浮 動 小 数
点 レ ジ ス タ が
存 在 す る と い
う こ と を 仮 定
し ま す 。 こ れ
は デ フ ォ ル ト
で す 。 |
−mabicalls
−mno−abicalls い く つ
か の System V.4 の 移 植
が 位 置 独 立 コ
ー ド の た め に
使 用 す る 疑 似
命 令 .abicalls, .cpload,
.cprestore を 出 力 す
る 、 あ る い は
出 力 し ま せ ん
。
−mhalf−pic
−mno−half−pic
−mhalf−pic
ス イ ッ チ は 、
テ キ ス ト セ ク
シ ョ ン 中 に 参
照 を 配 置 す る
代 わ り に 、 外
部 参 照 を 行 な
う ポ イ ン タ を
デ ー タ セ ク シ
ョ ン に 配 置 し
、 そ れ を ロ ー
ド す る 動 作 を
指 定 し ま す 。
こ の オ プ シ ョ
ン は 現 在 ま だ
動 作 し ま せ ん
。 −Gnum は num
バ イ ト 以 下 の
グ ロ ー バ ル 、
あ る い は 静 的
な ア イ テ ム を
、 通 常 の デ ー
タ や bss セ ク シ ョ
ン で は な く 、
小 さ な デ ー タ
、 ま た は bss セ ク
シ ョ ン に 配 置
す る こ と を 指
定 し ま す 。 こ
れ に よ り ア セ
ン ブ ラ は 、 通
常 で は 2 ワ ー ド
の 参 照 を 行 う
と こ ろ を 、 グ
ロ ー バ ル ポ イ
ン タ (gp ま た は
$28) を 基 準 と し
た 1 ワ ー ド の メ
モ リ 参 照 命 令
を 生 成 可 能 と
な り ま す 。 デ
フ ォ ル ト で は MIPS
ア セ ン ブ ラ が
使 用 さ れ る 場
合 、 num は 8 で す
。 ま た 、 GNU ア セ
ン ブ ラ が 使 用
さ れ る 場 合 の
デ フ ォ ル ト は 0
で す 。 −Gnum
ス イ ッ チ は ア
セ ン ブ ラ 、 リ
ン カ に も 同 様
に 渡 さ れ ま す
。 全 て の モ ジ
ュ ー ル は 同 一
の −Gnum の 値
で コ ン パ イ ル
さ れ な け れ ば
な り ま せ ん 。
|
−nocpp |
|
MIPS ア セ ン ブ ラ
に 、 ユ ー ザ ア
セ ン ブ ラ フ ァ
イ ル (’.s’ 拡 張
子 を 持 ち ま す )
に 対 す る ア セ
ン ブ ル 時 の プ
リ プ ロ セ ッ サ
の 起 動 を 抑 制
さ せ ま す 。 |
以 下 は
、 Intel 80386 フ ァ ミ リ
用 に 定 義 さ れ
た ’−m’ オ プ
シ ョ ン で す 。
−mno−486
386 で は な
く 486 に 最 適 化 さ
れ た コ ー ド を
出 力 す る 、 あ
る い は そ の 逆
を 行 な う 指 定
を 行 い ま す 。 486
用 に 生 成 さ れ
た コ ー ド は 386 で
実 行 可 能 で あ
り 、 逆 も ま た
可 能 で す 。
−mpentium
−mcpu=pentium
と 同 義 で す 。
−mpentiumpro
−mcpu=pentiumpro
と 同 義 で す 。
−mcpu=cpu
type 命 令 を ス ケ
ジ ュ ー リ ン グ
す る 際 の マ シ
ン タ イ プ の デ
フ ォ ル ト を 設
定 し ま す 。 CPU TYPE
の 選 択 肢 は i386, i486,
i586 (pentium), pentium, i686 (pentiumpro),
お よ び pentiumpro で
す 。 あ る CPU TYPE を
選 ぶ と 、 そ の
特 定 チ ッ プ に
適 す る よ う に
ス ケ ジ ュ ー リ
ン グ を 行 い ま
す が 、 −march=cpu
type オ プ シ ョ ン
を 指 定 し な い
限 り 、 コ ン パ
イ ラ は i386 で 実 行
で き な い よ う
な コ ー ド は 生
成 し ま せ ん 。
−march=cpu type マ シ ン
タ イ プ CPU TYPE 用 に
命 令 を 生 成 し
ま す 。 CPU TYPE の 選
択 肢 は i386, i486, pentium,
お よ び pentiumpro で
す 。 −march=cpu type
を 指 定 す る と
−mcpu=cpu type も 指
定 さ れ た も の
と み な し ま す
。
−msoft−float 浮 動 小
数 点 演 算 の た
め に ラ イ ブ ラ
リ を 呼 び 出 す
出 力 を 行 い ま
す 。 警 告 : こ
の 必 須 の ラ イ
ブ ラ リ は GNU CC の 一
部 と し て は 含
ま れ ま せ ん 。
通 常 は そ の マ
シ ン の 一 般 的
な C コ ン パ イ ラ
の 提 供 す る も
の を 使 用 し ま
す が 、 こ れ は
通 常 の 方 法 で
は ク ロ ス コ ン
パ イ ル で 直 接
使 用 す る こ と
は で き ま せ ん
。 ク ロ ス コ ン
パ イ ル を 行 な
い た い 場 合 は
、 自 分 自 身 で
必 要 な ラ イ ブ
ラ リ 関 数 を 用
意 す る 必 要 が
あ り ま す 。 関
数 が 浮 動 小 数
点 数 を 返 す 時
に 80387 レ ジ ス タ ス
タ ッ ク を 使 用
す る マ シ ン に
お い て は 、
’−msoft-float’ を 使
用 し た 場 合 で
も 、 い く つ か
の 浮 動 小 数 点
命 令 が 生 成 さ
れ ま す 。
−mno-fp-ret-in-387 関 数 か
ら の 返 り 値 に FPU
の レ ジ ス タ を
使 用 し ま せ ん
。 通 常 の 関 数
呼 び 出 し 規 約
は 、 た と え FPU が
存 在 し な く て
も float と double の
結 果 を FPU レ ジ ス
タ に 入 れ て 返
し ま す 。 し た
が っ て こ の 場
合 、 オ ペ レ ー
テ ィ ン グ シ ス
テ ム は FPU を エ ミ
ュ レ ー ト し な
け れ ば な り ま
せ ん 。
’−mno-fp-ret-in-387’
オ プ シ ョ ン を
指 定 す る と 、
浮 動 小 数 点 数
も 通 常 の CPU レ ジ
ス タ に 入 れ て
返 さ れ ま す 。
−mprofiler-epilogue
−mno-profiler-epilogue 関 数 か
ら 抜 け る コ ー
ド に て プ ロ フ
ァ イ ル 情 報 を
書 き 出 す 追 加
コ ー ド を 生 成
し ま す 。 以 下
は HPPA フ ァ ミ リ 用
に 定 義 さ れ た
’−m’ オ プ シ
ョ ン で す 。
−mpa-risc-1-0
PA 1.0 プ ロ
セ ッ サ 用 の コ
ー ド を 出 力 し
ま す 。
−mpa-risc-1-1
PA 1.1 プ ロ
セ ッ サ 用 の コ
ー ド を 出 力 し
ま す 。
−mkernel カ
ー ネ ル に 適 し
た コ ー ド を 生
成 し ま す 。 特
に 、 引 数 の 1 つ
と し て DP レ ジ ス
タ を と る add 命
令 の 使 用 を 抑
制 し 、 そ の 代
わ り に 、 addil 命
令 を 生 成 し ま
す 。 こ れ は HP-UX リ
ン カ の 深 刻 な
バ グ を 避 け る
た め の 措 置 で
す 。
−mshared-libs
HP-UX 共 有
ラ イ ブ ラ リ と
リ ン ク さ せ る
コ ー ド を 生 成
し ま す 。 こ の
オ プ シ ョ ン は
ま だ 完 全 に 動
作 し て い る わ
け で は な く 、
ど の PA タ ー ゲ ッ
ト に お い て も
デ フ ォ ル ト に
な っ て い ま せ
ん 。 こ の オ プ
シ ョ ン を 指 定
す る と 、 コ ン
パ イ ラ は 誤 っ
た コ ー ド を 出
力 し 得 ま す 。
−mno-shared-libs
共 有 ラ イ ブ ラ
リ と リ ン ク し
な い コ ー ド を
生 成 し ま す 。
こ れ は 全 て の PA
タ ー ゲ ッ ト に
お い て デ フ ォ
ル ト の オ プ シ
ョ ン で す 。
−mlong-calls 関 数 の 呼
び 出 し 先 と 呼
び 出 し 元 が 同
一 フ ァ イ ル に
含 ま れ た 場 合
、 呼 び 出 し 時
の 距 離 が 256K を 越
え る 場 合 で も
動 作 す る よ う
な コ ー ド を 出
力 し ま す 。 こ
の オ プ シ ョ ン
は 、 リ ン カ か
ら “branch out of range errors” で
リ ン ク を 拒 否
さ れ た 時 以 外
に は 使 用 し な
い よ う に し て
く だ さ い 。
−mdisable-fpregs い か な
る 形 に お い て
も 、 浮 動 小 数
点 レ ジ ス タ の
使 用 を 禁 止 し
ま す 。 こ れ は
浮 動 小 数 点 レ
ジ ス タ に 配 慮
し な い コ ン テ
キ ス ト ス イ ッ
チ を 行 な う カ
ー ネ ル に 対 し
て 有 効 で す 。
こ の オ プ シ ョ
ン を 使 用 し て
、 浮 動 小 数 点
処 理 を 行 な お
う と す る と 、
コ ン パ イ ラ は
ア ボ ー ト し ま
す 。
−mdisable-indexing コ ン パ
イ ラ に 対 し て
、 indexing addressing mode を 使 用
し な い よ う に
指 定 し ま す 。
こ れ に よ っ て MACH
に お い て MIG に よ
っ て 生 成 さ れ
た コ ー ド を コ
ン パ イ ル す る
際 の 、 あ ま り
重 要 で な い い
く つ か の 問 題
を 防 ぐ こ と が
で き ま す 。
−mtrailing-colon ラ ベ ル
定 義 の 後 に コ
ロ ン を 加 え ま
す (ELF ア セ ン ブ ラ
用 )。 以 下 は 、 Intel
80960 フ ァ ミ リ 用 に
定 義 さ れ た
’−m’ オ プ シ
ョ ン で す 。
−mcpu-type デ フ ォ
ル ト の マ シ ン
タ イ プ を cpu-type に
仮 定 し ま す 。
こ れ は 生 成 す
る 命 令 と ア ド
レ ッ シ ン グ モ
ー ド 、 そ し て
境 界 条 件 に 関
係 し ま す 。 デ
フ ォ ル ト の cpu-type
は kb で す 。 そ
の 他 の 選 択 と
し て は ka, mc, ca,
cf, sa, sb が あ り
ま す 。
−mnumerics
−msoft−float
−mnumerics
オ プ シ ョ ン は
プ ロ セ ッ サ が
浮 動 小 数 点 命
令 を サ ポ ー ト
す る こ と を 示
し ま す 。
−msoft−float オ プ シ
ョ ン は 浮 動 小
数 点 サ ポ ー ト
を 仮 定 し な い
こ と を 示 し ま
す 。
−mleaf−procedures
−mno−leaf−procedures 葉 に
位 置 す る 手 続
き に つ い て 、
call 命 令 と 同 様
に bal 命 令 で も
呼 び 出 す こ と
を 可 能 と し ま
す (あ る い は 、
し ま せ ん )。 こ
れ は bal 命 令 が
ア セ ン ブ ラ 、
ま た は リ ン カ
に よ っ て 置 き
換 え ら れ 得 る
場 合 に は 、 直
接 呼 び 出 し に
対 し て 効 率 の
良 い コ ー ド を
得 る こ と が で
き ま す 。 た だ
し 、 そ れ 以 外
の 場 合 は 効 率
の 良 く な い コ
ー ド を 生 成 し
ま す 。 例 え ば
、 関 数 へ の ポ
イ ン タ 経 由 の
呼 び 出 し や 、
こ の 最 適 化 を
サ ポ ー ト し な
い リ ン カ を 使
用 し た 場 合 な
ど が こ れ に 該
当 し ま す 。
−mtail−call
−mno−tail−call
(マ シ ン
非 依 存 の 部 分
を 越 え て ) 末 尾
再 帰 を 分 岐 に
変 換 す る 処 理
に 関 す る さ ら
な る 最 適 化 を
行 い ま す (ま た
は 行 い ま せ ん
)。 こ の 手 法 の
適 用 が 正 当 で
な い と い う こ
と に 関 す る 判
断 が 完 全 で は
な い の で 、 ま
だ こ の オ プ シ
ョ ン を 使 用 す
る こ と は 適 当
で な い か も し
れ ま せ ん 。 デ
フ ォ ル ト は
−mno−tail−call で す
。
−mcomplex−addr
−mno−complex−addr こ の
i960 の 実 装 で は 複
雑 な ア ド レ ッ
シ ン グ モ ー ド
の 使 用 が 優 位
で あ る と 仮 定
し ま す (あ る い
は 仮 定 し ま せ
ん )。 複 雑 な ア
ド レ ッ シ ン グ
モ ー ド は K-シ リ
ー ズ で は 使 用
す る 価 値 は 無
い か も 知 れ ま
せ ん が 、 C-シ リ
ー ズ で は 確 か
に 使 用 す る 価
値 が あ り ま す
。 現 在 は
−mcomplex−addr が 、 CB
と CC を 除 く 全 て
の プ ロ セ ッ サ
に お け る デ フ
ォ ル ト で す 。
−mcode−align
−mno−code−align よ り
高 速 な フ ェ ッ
チ の た め に コ
ー ド を 8 バ イ ト
に ア ラ イ ン し
ま す (ま た は 何
も し ま せ ん )。
現 在 で は C シ リ
ー ズ の 実 装 に
お い て の み デ
フ ォ ル ト で 有
効 に し て い ま
す 。
−mic−compat
−mic2.0−compat
−mic3.0−compat
iC960 v2.0 ま た
は v3.0 と の 互 換 性
を 持 た せ ま す
。
−masm−compat
−mintel−asm
iC960 ア セ
ン ブ ラ と の 互
換 性 を 持 た せ
ま す 。
−mstrict−align
−mno−strict−align ア ラ
イ ン さ れ な い
ア ク セ ス を 許
可 し ま せ ん (あ
る い は 許 可 し
ま す )。
−mold−align
Intel に よ
る gcc リ リ ー ス バ
ー ジ ョ ン 1.3 (gcc 1.37 ベ
ー ス ) と の 構 造
体 の 境 界 条 件
に 関 す る 互 換
性 を 持 た せ ま
す 。 現 在 は 、
#pragma align 1 が 同 時 に
仮 定 さ れ て し
ま い 、 無 効 化
で き な い と い
う バ グ を 持 っ
て い ま す 。 以
下 は 、 DEC Alpha 用 に
定 義 さ れ た
’−m’ オ プ シ
ョ ン で す 。
−mno-soft-float
−msoft-float 浮 動 小 数
点 操 作 に 対 し
て 、 ハ ー ド ウ
ェ ア に よ る 浮
動 小 数 点 命 令
を 使 用 し ま す
(し ま せ ん )。 も
し 、 −msoft-float が
指 定 さ れ た 場
合 は 、 ’libgcc1.c’
内 の 関 数 が 浮
動 小 数 点 演 算
に 使 用 さ れ ま
す 。 た だ し 、
こ れ ら の ル ー
チ ン が 浮 動 小
数 点 演 算 を エ
ミ ュ レ ー ト す
る ル ー チ ン に
よ っ て 置 き 換
え ら れ て い る
か 、 そ の よ う
な エ ミ ュ レ ー
シ ョ ン ル ー チ
ン を 呼 び 出 す
よ う に コ ン パ
イ ル さ れ て い
る の で な い 限
り 、 こ れ ら の
ル ー チ ン は 浮
動 小 数 点 演 算
を 行 な っ て し
ま い ま す 。 浮
動 小 数 点 演 算
の な い Alpha の た め
の コ ン パ イ ル
を 行 な う た め
に は 、 ラ イ ブ
ラ リ も こ れ ら
を 呼 び 出 さ な
い よ う に コ ン
パ イ ル さ れ て
い な け れ ば な
り ま せ ん 。 浮
動 小 数 点 演 算
の な い Alpha の 実 装
は 、 浮 動 小 数
点 レ ジ ス タ を
必 要 と す る と
い う こ と に 注
意 し て 下 さ い
。
−mfp-reg
−mno-fp-regs 浮 動 小 数
点 レ ジ ス タ セ
ッ ト を 使 用 す
る (使 用 し な い
)コ ー ド を 生 成
し ま す 。
−mno-fp-regs は 暗 黙
の う ち に
−msoft-float を 含 み
ま す 。 浮 動 小
数 点 レ ジ ス タ
セ ッ ト が 使 用
さ れ な い 場 合
は 、 浮 動 小 数
点 オ ペ ラ ン ド
は 整 数 レ ジ ス
タ に 入 れ ら れ
て 渡 さ れ 、 浮
動 小 数 点 数 の
結 果 は $f0 で は な
く $0 に 入 れ て 返
さ れ ま す 。 こ
れ は 非 標 準 の
関 数 呼 び 出 し
手 順 で あ り 、
浮 動 小 数 点 数
の 引 数 や 返 り
値 を 持 つ 関 数
で 、 −mno-fp-regs を
つ け て コ ン パ
イ ル さ れ た コ
ー ド か ら 呼 び
出 さ れ る 関 数
は す べ て こ の
オ プ シ ョ ン を
つ け て コ ン パ
イ ル さ れ て い
る 必 要 が あ り
ま す 。 こ の オ
プ シ ョ ン の 典
型 的 な 用 法 は
、 浮 動 小 数 点
レ ジ ス タ を 使
用 せ ず 、 し た
が っ て 浮 動 小
数 点 レ ジ ス タ
へ の セ ー ブ も
リ ス ト ア も 必
要 の な い カ ー
ネ ル を 構 築 す
る 時 な ど が あ
る で し ょ う 。
こ こ に 追 加 す
る オ プ シ ョ ン
は System V Release 4 に お い
て 、 こ れ ら の
シ ス テ ム 上 の
他 の コ ン パ イ
ラ と の 互 換 性
の た め に 提 供
さ れ る も の で
す 。
|
−G |
|
SVr4 シ ス テ ム に
お い て 、 gcc は
’−G’ オ プ シ
ョ ン を 受 け 付
け ま す (そ し て
こ れ を シ ス テ
ム リ ン カ に 渡
し ま す )。 こ れ
は 他 の コ ン パ
イ ラ と の 互 換
性 の た め で す
。 し か し 、 リ
ン カ オ プ シ ョ
ン を gcc の コ マ
ン ド ラ イ ン か
ら 渡 す よ り も
、 我 々 は
’−symbolic’ ま た
は ’−shared’ の
使 用 が 適 当 で
あ る と 考 え て
い ま す 。
コ ン パ
イ ラ が 使 用 し
た そ れ ぞ れ の
ツ ー ル の バ ー
ジ ョ ン を .ident ア
セ ン ブ ラ デ ィ
レ ク テ ィ ブ を
使 用 し て 、 出
力 で 明 示 し ま
す 。
−Qn
.ident
デ ィ レ ク テ ィ
ブ を 出 力 に 加
え る こ と を 抑
制 し ま す (こ れ
は デ フ ォ ル ト
で す )。
−YP,dirs
’−l’
で 指 定 さ れ た
ラ イ ブ ラ リ に
対 し て 、 dirsで
規 定 さ れ た デ
ィ レ ク ト リ の
み を 検 索 し 、
他 は 検 索 し ま
せ ん 。 dirs 中 は
、 1 つ の コ ロ ン
で 区 切 る こ と
に よ り 、 複 数
の デ ィ レ ク ト
リ エ ン ト リ を
記 述 し ま す 。
−Ym,dir
M4 プ リ プ
ロ セ ッ サ を dir
に 検 索 し ま す
。 ア セ ン ブ ラ
が こ の オ プ シ
ョ ン を 使 用 し
ま す 。
こ れ ら
の マ シ ン 独 立
オ プ シ ョ ン は
、 コ ー ド 生 成
に て 使 用 さ れ
る イ ン タ フ ェ
ー ス 規 約 を 制
御 し ま す 。 こ
れ ら の ほ と ん
ど は ’−f’ で 始
ま り ま す 。 こ
れ ら の オ プ シ
ョ ン は 有 効 形
式 と 無 効 形 式
の 2 つ の 形 式 を
持 っ て い ま す
。 ’−ffoo’ の 無
効 形 式 は
’−fno−foo’ で す
。 以 下 に 挙 げ
る 表 に お い て
は 、 こ の う ち
、 デ フ ォ ル ト
で は な い 片 方
の み が 挙 げ ら
れ て い ま す 。
’no−’ を 追 加
す る か 、 削 除
す る か に よ っ
て 双 方 の 形 式
を 得 る こ と が
で き ま す 。
−fnonnull−objects
参 照 型 に よ っ
て 参 照 さ れ る
オ ブ ジ ェ ク ト
は ヌ ル で な い
と 仮 定 し ま す (C++
の み )。 通 常 は GNU
C++ は 参 照 型 に よ
っ て 参 照 さ れ
る オ ブ ジ ェ ク
ト に 関 し て は
保 守 的 な 仮 定
を 行 い ま す 。
例 え ば 、 コ ン
パ イ ラ は a が
以 下 の コ ー ド
に お い て ヌ ル
で な い こ と を
チ ェ ッ ク す る
必 要 が あ り ま
す 。
obj &a = g
(); a.f (2); こ の 種 の 参
照 が ヌ ル で な
い こ と の チ ェ
ッ ク は 、 特 別
な コ ー ド を 必
要 と し ま す 。
し か し 、 こ れ
は 多 く の プ ロ
グ ラ ム に と っ
て 無 用 な も の
で す 。 こ の ヌ
ル に 対 す る チ
ェ ッ ク を 必 要
の な い 場 合
’−fnonnull-objects’ を
使 用 す る こ と
に よ り 、 省 略
す る こ と が で
き ま す 。
−fpcc−struct−return
struct と
union の 値 を 返 す
場 合 に 、 普 通
の C コ ン パ イ ラ
が 行 な う の と
同 じ 規 約 を 使
用 し ま す 。 こ
の 規 約 は 小 規
模 な 構 造 体 に
対 し て 非 効 率
な も の と な り
、 ま た 多 く の
マ シ ン で そ の
関 数 を 再 入 不
可 能 と し て し
ま い ま す 。 し
か し こ れ は 、 GCC
で コ ン パ イ ル
さ れ た コ ー ド
と PCC で コ ン パ イ
ル さ れ た コ ー
ド を 相 互 に 呼
び 出 す こ と を
可 能 と す る と
い う 利 点 を 持
ち ま す 。
−freg−struct−return
struct と
union の 値 を 返 す
場 合 に 、 可 能
な 場 合 は レ ジ
ス タ を 使 用 す
る 規 約 を 使 用
し ま す 。 こ れ
は −fpcc−struct−return
を 使 用 し た 場
合 と 比 較 し て
、 小 さ な 構 造
体 を 返 す 場 合
に 高 い 性 能 を
発 揮 し ま す 。
−fpcc−struct−return
と −freg−struct−return
の ど ち ら も 使
用 し な か っ た
場 合 に は 、 GNU CC は
各 タ ー ゲ ッ ト
に 対 し て 標 準
で あ る と 考 え
ら れ る 規 約 を
デ フ ォ ル ト と
し て 使 用 し ま
す 。 も し 標 準
規 約 が な か っ
た 場 合 は 、
−fpcc−struct−return を
デ フ ォ ル ト と
し て 使 用 し ま
す 。
−fshort−enums
enum 型 に
対 し て 、 ち ょ
う ど 取 り 得 る
値 の 範 囲 に 応
じ た バ イ ト 数
の 型 を 与 え ま
す 。 具 体 的 に
は 、 enum 型 は 、
そ の 値 域 を 格
納 す る に 十 分
な 最 小 の 整 数
型 と 等 価 に な
り ま す 。
−fshort−double
double を
float と 同 サ イ ズ
に し ま す 。
−fshared−data
デ ー タ と 非 const
変 数 を 、 プ ラ
イ ベ ー ト な デ
ー タ で は な く
、 共 有 デ ー タ
と し て コ ン パ
イ ル し ま す 。
こ の オ プ シ ョ
ン は 、 走 行 中
の 同 じ プ ロ グ
ラ ム 間 は 共 有
デ ー タ が 共 有
さ れ 、 プ ラ イ
ベ ー ト デ ー タ
が そ れ ぞ れ の
プ ロ セ ス に 1 つ
ず つ 与 え ら れ
る よ う な 一 部
の オ ペ レ ー テ
ィ ン グ シ ス テ
ム で 意 味 を 持
ち ま す 。
−fno−common
bss セ ク シ
ョ ン 中 の 初 期
化 さ れ て い な
い グ ロ ー バ ル
変 数 に 対 し て
で も 、 共 通 ブ
ロ ッ ク に 生 成
す る の で は な
く 、 領 域 を 割
り 当 て ま す 。
こ の オ プ シ ョ
ン は 、 (extern を つ
け ず に ) 同 一 の
変 数 を 宣 言 し
た 2 つ の コ ン パ
イ ル に 対 し て
、 リ ン ク 時 に
エ ラ ー を 発 生
す る と い う 効
果 が あ り ま す
。 こ の オ プ シ
ョ ン は 、 常 に
こ の よ う な 動
作 を 行 な う シ
ス テ ム に お い
て も 、 プ ロ グ
ラ ム が 正 常 に
動 作 す る か ど
う か を 検 査 す
る 場 合 に の み
有 用 で す 。
−fno−ident
’#ident’
デ ィ レ ク テ ィ
ブ を 無 視 し ま
す 。
−fno−gnu−linker
(C++ の コ ン
ス ト ラ ク タ と
デ ス ト ラ ク タ
の よ う な ) グ ロ
ー バ ル な 初 期
化 の コ ー ド を (GNU
リ ン カ が こ れ
ら を 扱 う 標 準
の シ ス テ ム で
あ る よ う な シ
ス テ ム に お い
て ) GNU リ ン カ で 使
用 さ れ る 形 式
で 出 力 し ま せ
ん 。 こ れ は GNU リ
ン カ で は な い
リ ン カ を 使 用
す る 場 合 に 指
定 し ま す 。 こ
の 場 合 、 collect2 を
使 用 し て 、 確
実 に シ ス テ ム
リ ン カ に コ ン
ス ト ラ ク タ と
デ ス ト ラ ク タ
を 含 ん だ コ ー
ド を 出 力 さ せ
る 必 要 が あ り
ま す 。 (collect2 は GNU CC
の デ ィ ス ト リ
ビ ュ ー シ ョ ン
に 含 ま れ ま す
。 ) collect2 を 必 ず
使 用 し な け れ
ば な ら な い シ
ス テ ム に お い
て は 、 コ ン パ
イ ラ ド ラ イ バ
gcc は 自 動 的 に
そ の よ う に コ
ン フ ィ ギ ュ レ
ー シ ョ ン さ れ
ま す 。
−finhibit-size-directive
.sizeア セ
ン ブ ラ デ ィ レ
ク テ ィ ブ な ど
、 関 数 が 途 中
で 分 割 さ れ 、
メ モ リ 上 の 異
な っ た 位 置 に
そ れ ぞ れ の 部
分 が 配 置 さ れ
る よ う な 場 合
に 不 都 合 が 生
じ る よ う な 要
素 を 出 力 し ま
せ ん 。 こ の オ
プ シ ョ ン は
’crtstuff.c’ を コ ン
パ イ ル す る 時
に 使 用 さ れ ま
す 。 そ れ 以 外
の 場 所 で は こ
れ を 使 用 す る
必 要 は あ り ま
せ ん 。
−fverbose-asm
出 力 の ア セ ン
ブ ラ 中 に 特 別
な コ メ ン ト 情
報 を 追 加 し 、
可 読 性 を 高 め
ま す 。 こ の オ
プ シ ョ ン は 一
般 的 に は 、 出
力 の ア セ ン ブ
ラ コ ー ド を 本
当 に 読 み た い
場 合 (例 え ば コ
ン パ イ ラ 自 身
を デ バ ッ グ し
て い る よ う な
場 合 ) に の み 効
果 が あ り ま す
。
−fvolatile ポ イ ン タ
に よ る メ モ リ
の 参 照 を 全 て
volatile と し て 扱 い
ま す 。
−fvolatile−global 外 部 変
数 や グ ロ ー バ
ル デ ー タ ア イ
テ ム へ の メ モ
リ 参 照 を 全 て
volatile と し て 扱 い
ま す 。
|
−fpic こ の オ プ
シ ョ ン が タ ー
ゲ ッ ト マ シ ン
で サ ポ ー ト さ
れ て い れ ば 、
位 置 独 立 な コ
ー ド を 出 力 し
ま す 。 こ の オ
プ シ ョ ン は 共
有 ラ イ ブ ラ リ
で の 使 用 に 適
し ま す 。 |
|
−fPIC こ の オ プ
シ ョ ン が タ ー
ゲ ッ ト マ シ ン
で サ ポ ー ト さ
れ て い れ ば 、
位 置 独 立 な コ
ー ド を 出 力 し
ま す 。 こ の オ
プ シ ョ ン は ダ
イ ナ ミ ッ ク リ
ン ク に 適 し て
お り 、 分 岐 に
お い て 大 き な
デ ィ ス プ レ ー
ス メ ン ト を 要
求 す る 場 合 に
も 適 応 し ま す
。 |
−ffixed−reg
名 前 が reg の レ
ジ ス タ を 固 定
レ ジ ス タ と し
て 扱 い ま す 。
生 成 さ れ た コ
ー ド は こ の レ
ジ ス タ を 参 照
し ま せ ん (た だ
し 、 ス タ ッ ク
ポ イ ン タ 、 フ
レ ー ム ポ イ ン
タ 、 そ の 他 固
定 用 途 の 場 合
を 除 き ま す )。
reg
は レ ジ ス タ 名
で な け れ ば な
り ま せ ん 。 受
け 付 け ら れ る
レ ジ ス タ 名 は
マ シ ン 固 有 で
あ り 、 マ シ ン
記 述 マ ク ロ フ
ァ イ ル 内 の
REGISTER_NAMES マ ク ロ に
記 述 さ れ た も
の で す 。 こ の
フ ラ グ は 無 効
形 式 を 持 ち ま
せ ん 。 な ぜ な
ら 、 こ れ は 3 通
り の 指 定 が 可
能 で あ る か ら
で す 。
−fcall−used−reg
名 前 が reg の レ
ジ ス タ を 、 関
数 呼 び 出 し に
よ っ て 破 壊 さ
れ る 割 り 当 て
可 能 の レ ジ ス
タ と し て 取 り
扱 い ま す 。 こ
れ は 、 関 数 呼
び 出 し を 跨 い
で 存 在 し な い
一 時 領 域 や 変
数 と し て 割 り
当 る こ と が で
き ま す 。 こ の
指 定 で コ ン パ
イ ル さ れ た 関
数 は 、 レ ジ ス
タ reg の 保 存 や
復 帰 を 行 い ま
せ ん 。 こ の フ
ラ グ を マ シ ン
の 実 行 モ デ ル
に お い て 、 あ
る 固 定 的 で 特
殊 な 役 割 を 持
っ て い る レ ジ
ス タ 、 例 え ば
ス タ ッ ク ポ イ
ン タ や フ レ ー
ム ポ イ ン タ に
対 し て 適 用 す
る こ と は 、 破
滅 的 な 結 果 を
生 み ま す 。 こ
の フ ラ グ は 無
効 形 式 を 持 ち
ま せ ん 。 な ぜ
な ら 、 こ れ は 3
通 り の 指 定 が
可 能 で あ る か
ら で す 。
−fcall−saved−reg 名
前 が reg の レ ジ
ス タ を 、 関 数
に よ っ て 保 存
さ れ る 割 り 当
て 可 能 な レ ジ
ス タ と し て 取
り 扱 い ま す 。
こ れ は 、 関 数
呼 び 出 し を 跨
い で 存 在 す る
一 時 領 域 や 変
数 と し て も 割
り 当 て る こ と
が で き ま す 。
こ の 指 定 で コ
ン パ イ ル さ れ
た 関 数 は 、 レ
ジ ス タ reg を 使
用 す る 場 合 、
そ の 保 存 と 復
帰 を 行 い ま す
。 こ の フ ラ グ
を マ シ ン の 実
行 モ デ ル に お
い て 、 あ る 固
定 的 で 特 殊 な
役 割 を 持 っ て
い る レ ジ ス タ
、 例 え ば ス タ
ッ ク ポ イ ン タ
や フ レ ー ム ポ
イ ン タ に 対 し
て 適 用 す る こ
と は 、 破 滅 的
な 結 果 を 生 み
ま す 。 ま た 、
こ の フ ラ グ を
関 数 の 返 り 値
が 格 納 さ れ る
レ ジ ス タ に 使
用 す る と 、 こ
れ も 破 滅 的 な
結 果 を 生 み ま
す 。 こ の フ ラ
グ は 無 効 形 式
を 持 ち ま せ ん
。 な ぜ な ら 、
こ れ は 3 通 り の
指 定 が 可 能 で
あ る か ら で す
。
2 つ
の ’#pragma’ デ ィ
レ ク テ ィ ブ (指
令 )が GNU C++ に よ っ
て サ ポ ー ト さ
れ て い ま す 。
こ れ は 、 1 つ の
ヘ ッ ダ フ ァ イ
ル を 2 つ の 目 的
、 つ ま り あ る
オ ブ ジ ェ ク ト
ク ラ ス の た め
の イ ン タ フ ェ
ー ス の 定 義 と
し て の 目 的 と
、 オ ブ ジ ェ ク
ト ク ラ ス に 含
ま れ る 内 容 の
完 全 な 定 義 と
し て の 目 的 の
、 両 方 の 目 的
で 使 用 す る た
め の も の で す
。
#pragma interface
(C++ の み )
こ の デ ィ レ ク
テ ィ ブ を 、 オ
ブ ジ ェ ク ト ク
ラ ス を 定 義 し
て い る ヘ ッ ダ
フ ァ イ ル 中 に
使 用 す る こ と
に よ っ て 、 そ
れ ら の ク ラ ス
を 使 用 す る ほ
と ん ど の オ ブ
ジ ェ ク ト フ ァ
イ ル の 大 き さ
を 減 少 さ せ る
こ と が で き ま
す 。 通 常 は 、
特 定 の 情 報 (イ
ン ラ イ ン メ ン
バ 関 数 の バ ッ
ク ア ッ プ コ ピ
ー 、 デ バ ッ グ
情 報 、 仮 想 関
数 実 現 の た め
の 内 部 テ ー ブ
ル ) の 複 製 が そ
の ク ラ ス 定 義
を イ ン ク ル ー
ド し た そ れ ぞ
れ の オ ブ ジ ェ
ク ト フ ァ イ ル
中 に 置 か れ ま
す 。 こ の プ ラ
グ マ を 使 用 す
る こ と に よ っ
て 、 こ の よ う
な 複 製 を 防 ぐ
こ と が 可 能 と
な り ま す 。
’#pragma interface’ を 含
ん だ ヘ ッ ダ フ
ァ イ ル を イ ン
ク ル ー ド し た
場 合 は 、 こ れ
ら の 追 加 情 報
は 生 成 さ れ ま
せ ん (た だ し 、
メ イ ン の 入 力
ソ ー ス フ ァ イ
ル 自 身 が ’#pragma
implementation’ を 含 ん
で い る 場 合 を
除 き ま す )。 そ
の か わ り 、 オ
ブ ジ ェ ク ト フ
ァ イ ル は リ ン
ク 時 に 解 決 さ
れ る 参 照 を 含
む こ と に な り
ま す 。
#pragma implementation
#pragma implementation
"objects.h"
(C++ の み )
イ ン ク ル ー ド
さ れ た ヘ ッ ダ
フ ァ イ ル に よ
る 完 全 な 出 力
を 生 成 さ せ た
い (ま た そ れ を
グ ロ ー バ ル に
可 視 化 し た い )
場 合 に は 、 メ
イ ン の 入 力 フ
ァ イ ル 中 で こ
の プ ラ グ マ を
使 用 し ま す 。
こ の 場 合 、 イ
ン ク ル ー ド さ
れ る ヘ ッ ダ フ
ァ イ ル は 、
’#pragma interface’ を 使
用 し て い な け
れ ば な り ま せ
ん 。 イ ン ラ イ
ン 関 数 の バ ッ
ク ア ッ プ 情 報
、 デ バ ッ グ 情
報 、 仮 想 関 数
実 現 用 の 内 部
テ ー ブ ル は 、
全 て イ ン プ リ
メ ン テ ー シ ョ
ン フ ァ イ ル 中
に 生 成 さ れ ま
す 。
’#pragma
implementation’ を 、 引
数 を つ け ず に
使 用 し た 場 合
は 、 こ れ は そ
の ソ ー ス フ ァ
イ ル と 同 じ ベ
ー ス ネ ー ム
(basename)を 持 つ フ ァ
イ ル に 対 し て
適 用 さ れ ま す
。 例 え ば 、
’allclass.cc’ 中 の
’#pragma implementation’ は
、 ’#pragma implementation
“allclass.h” ’ と 等
価 で す 。 も し
複 数 の ヘ ッ ダ
フ ァ イ ル に 対
し て 、 1 つ の イ
ン プ リ メ ン テ
ー シ ョ ン フ ァ
イ ル を 対 応 さ
せ た い 場 合 は
、 文 字 列 の 引
数 を 使 用 す る
必 要 が あ り ま
す 。
1 つ
の ヘ ッ ダ フ ァ
イ ル に 対 し て
、 複 数 の イ ン
プ リ メ ン テ ー
シ ョ ン フ ァ イ
ル を 対 応 さ せ
る 方 法 は あ り
ま せ ん 。
file.c C
言 語 ソ ー ス フ
ァ イ ル
|
file.h |
C 言 語 ヘ ッ ダ (プ
リ プ ロ セ ッ サ )
フ ァ イ ル |
|
file.i |
プ リ プ ロ セ ス
済 み の C 言 語 ソ
ー ス フ ァ イ ル |
|
file.C |
C++ ソ ー ス フ ァ
イ ル |
|
file.cc |
C++ ソ ー ス フ ァ
イ ル |
|
file.cxx |
C++ ソ ー ス フ ァ
イ ル |
|
file.m |
Objective-C ソ ー ス フ ァ
イ ル |
|
file.s |
ア セ ン ブ リ 言
語 フ ァ イ ル |
|
file.o |
オ ブ ジ ェ ク ト
フ ァ イ ル |
|
a.out |
リ ン ク エ デ ィ
ッ ト 済 み の 出
力 |
|
TMPDIR/cc∗ |
一 時 フ ァ イ ル
群 |
|
LIBDIR/cpp |
プ リ プ ロ セ ッ
サ |
|
LIBDIR/cc1 |
C 言 語 コ ン パ イ
ラ |
|
LIBDIR/cc1plus |
C++ コ ン パ イ ラ |
|
LIBDIR/collect |
い く つ か の マ
シ ン で 必 要 と
な る リ ン カ の
フ ロ ン ト エ ン
ド |
|
LIBDIR/libgcc.a |
GCC サ ブ ル ー チ
ン ラ イ ブ ラ リ |
|
/lib/crt[01n].o |
ス タ ー ト ア ッ
プ ル ー チ ン |
|
LIBDIR/ccrt0 |
C++ 用 の 付 加 的
な ス タ ー ト ア
ッ プ ル ー チ ン |
|
/lib/libc.a |
標 準 ラ イ ブ ラ
リ 、 intro(3)を 参
照 |
|
/usr/include |
#include フ ァ イ ル
の た め の 標 準
デ ィ レ ク ト リ |
|
LIBDIR/include |
#include フ ァ イ ル
の た め の GCC 標 準
デ ィ レ ク ト リ |
|
LIBDIR/g++−include |
#include フ ァ イ ル
の た め の 付 加
的 な g++ デ ィ レ ク
ト リ |
LIBDIR
は 通 常
/usr/local/lib/machine/version の
形 式 を 持 ち ま
す
TMPDIR は 環 境 変 数
TMPDIR (も し 使 用 可
能 な ら ば /usr/tmp を
、 そ う で な け
れ ば /tmp を 使 用
し ま す ) か ら と
ら れ ま す 。
as(1), cpp(1),
gdb(1), ld(1)
info 中 の ’gcc’,
’cpp’, ’as’,
’ld’, ’gdb’ エ
ン ト リ
Using and Porting GNU CC (for version 2.0), Richard M.
Stallman; The C Preprocessor, Richard M. Stallman;
Debugging with GDB: the GNU Source-Level Debugger,
Richard M. Stallman and Roland H. Pesch; Using as: the
GNU Assembler, Dean Elsner, Jay Fenlason & friends;
ld: the GNU linker, Steve Chamberlain and Roland
Pesch.
バ グ を
報 告 す る 方 法
に つ い て は 、 GCC
マ ニ ュ ア ル を
参 照 し て く だ
さ い 。
Copyright 1991,
1992, 1993 Free Software Foundation, Inc.
Permission is
granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission
notice are preserved on all copies.
Permission is
granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided
that the entire resulting derived work is distributed under
the terms of a permission notice identical to this one.
Permission is
granted to copy and distribute translations of this manual
into another language, under the above conditions for
modified versions, except that this permission notice may be
included in translations approved by the Free Software
Foundation instead of in the original English.
GNU CC に
対 し て 貢 献 し
た 人 々 に 関 し
て は 、 GNU CC マ ニ ュ
ア ル を 参 照 し
て く だ さ い 。
細 川 達
己 (hosokawa [AT] mt.jp): NetBSD 用
に 翻 訳
sakai [AT] csl.jp,
h-nokubi [AT] nmit.jp,
kumano [AT] strl.jp, horikawa [AT] isrd.jp: FreeBSD
向 け に 修 正 , 査
閲
| | |