GCCについて part4

このエントリーをはてなブックマークに追加
GCC(GNU Compiler Collection)について語るスレ。

GNU本家のGCCページ
http://gcc.gnu.org/

前スレ
・GCCについて part3
http://pc5.2ch.net/test/read.cgi/tech/1072484422/
・GCCについて part2
http://pc2.2ch.net/test/read.cgi/tech/1046179115/
・GCCについて(過去ログ倉庫)
http://pc2.2ch.net/tech/kako/1007/10077/1007731543.html

関連スレ
・cygwin + mingwn + gcc 相談室
http://pc5.2ch.net/test/read.cgi/tech/1058134693/
・gcjって使ってる人います?
http://pc5.2ch.net/test/read.cgi/tech/1046627795/
2
3
5デフォルトの名無しさん:04/07/18 00:58
-foptimize-sibling-calls という最適化オプションがありますよね。
マニュアルには "Optimize sibling and tail recursive calls."
とだけあってよくわからないんですが、これってたとえば以下の
ような無限に再帰する可能性のあるコードでスタック使い切るのを
抑制できるんでしょうか?

#細かい文法は省略

int a() {
xxx;
yyy;
 if (foo) {
  return b();
 } else {
  return c();
 }
}

int b() {
 yyy;
 zzz;
 if (hoge) {
  return c();
 } else {
  return a();
 }
}

int c() { return 1; }
んなわけあるかい。
有限の再帰をループ展開してくれるだけだよ。
>>5
その通り。

>>6
末尾再帰の最適化というものを知らないなら知らないなりに、
試してからものを言いなさい。
8外注業者 ◆PVCAbsPHPE :04/07/18 08:55
Fedora Coreを手に入れて、C++プログラミングをしようとした。
Hello Worldを作ると、警告になった。

http://www.linuxhelp.net/forums/index.php?act=ST&f=3&t=3399

昔とはiostream.hの使い方が変わったんだね。

#include <iostream>

using namespace std;


int main()
{
cout << "Hello Programmer!" << endl;
cout << "Welcome to the World of C++!" << endl;
return(0);
}
随分とC++にはご無沙汰だったご様子で。
10外注業者 ◆PVCAbsPHPE :04/07/18 09:15
>>9

仕事でCとかC++を使った経験がない。
業務経歴の半分はインフラ。よくわからずにmakeしていた。。。
今回、makeの勉強をやろうと思い、簡単なC++ソースを作成。
そこで変わったことに気付いた。
最初にC++の勉強をしたのは4年ぐらい前かな?
4年前は変わった後だよ!
>>8
今はreturnには括弧をつけないスタイルが主流。
>>12
昔はreturnには括弧をつけるものだったの?
int i = (0);
今は定数代入には括弧をつけないスタイルが主流。
(fputc('\n', stdout));
今は関数呼出には括弧をつけないスタイルが主流。
16デフォルトの名無しさん:04/07/18 17:30
#define MAX(a,b) a > b ? a : b
今はマクロ定義には括弧をつけないスタイルが主流。
17外注業者 ◆PVCAbsPHPE :04/07/18 19:31
gmakeというものを知った。
GNUmakefileを読み込むんだね。
18外注業者 ◆PVCAbsPHPE :04/07/18 20:11
やったーーー!!
PostgreSQL7.4.3をコンパイル・インストールできたあ。
一発でできるなんて、凄いよ。
19デフォルトの名無しさん :04/07/18 20:16
>>18
一番大変で難しいのはその後の動作確認なんだが・・・
20外注業者 ◆PVCAbsPHPE :04/07/18 20:20
>>19

プロセス起動してテーブル作成までできたよ。
上げんなボケ!!
こんなマイナーねたは下げでやるに決まってるだろ!!
糞害虫が
22外注業者 ◆PVCAbsPHPE :04/07/18 20:27
>>21

ほう、プログラム板にも私を知っている人間がいるんだね。
>>22
ここはキミの日記ではないので。
24外注業者 ◆PVCAbsPHPE :04/07/19 18:22
今日、PostgreSQLのソースを解析しようとした。
でも、挫折。。。
いきなりメモリ関連の記述。
わからないよ〜。
ヘッダーファイルをたくさん宣言していて、いきなり関数を使用している。
どのソースで定義された関数なのかわからない。
私の目的。インフラの仕事に合わせて既存ソフトウェアの勉強をする。
そのためにソース解析までして深く理解しようとした。
でも、これじゃあ、時間ばかりかかって成果がでない。
結局、コンパイル・インストール・設定の勉強をする方針に戻した。
ここは日記スレじゃないんだけど。
流れが速いスレなら個々人がNG設定すればいいんだけど、ここみたいにトロいスレだと
単にいちコテが占有してる状態になってしまう。これって削除依頼物だから
早目に空気読めてないのに気付いて消えてね。
「cygwin + mingwn + gcc 相談室」もあるし、ぶっちゃけこのスレい
らない。

>>27
勝手に決めんな。
cygwinやmingwnの環境では無い奴はどうするんだ?
むしろ、cygwinやmingwnで開発するケースは少ないし、あってもどうせ趣味ぐらいだろ。
いやそれよりもwinから離れろ。
それこそ決め付けんな、むしろMinGWなら知ってるがmingwnってなんだと突っ込みたいが、
それはさておきこのスレがWinべったりだったりしたら、それはそれで確かに問題だ。
30デフォルトの名無しさん:04/07/20 21:39
ちょっと関係無いけど質問します。

Pentium M は 686ファミリー でいいのでしょうか?
アセンブラスレのほうが的確な返答がくると思う
32デフォルトの名無しさん:04/07/23 05:37
age
How are you? > this thread
Fine! And you? > 33
3533:04/07/27 17:45
>>34
I'm sick thank you.
nl_langinfoが効いてないと思ってたら
ttp://gcc.gnu.org/ml/gcc-patches/2004-05/msg01414.html
こんなのがあった。
以下のコードがコンパイルできないけど何故?

asm ("
movl $123, %%eax
addl %0,%%eax
" :: "r"(i));
>>37
asmに食わせてる文字列が生き別れになってる。
ちゃんと繋げ。

>>37
こうか?
asm (
"movl $123, %%eax \n\t"
"addl %0,%%eax \n\t"
:: "r"(i));

でも、よく>>37のようなコードを見掛けるが
gccのバージョンでできたりできなかったりするのか?
>>39
どのバージョンだった忘れたけど(たぶん3.0あたり)、行をまたぐ
文字列を食わせると"これはANSI違反で将来のバージョンでは
エラーにするヨン”というような警告を出していたから、恐らく
3.0以前では出来たはず。 今でもオプションで出来るかもしれない。
3.1じゃなかったっけ?cppの挙動が変わった時に受け付け無くなったような気がする。
-traditionalで受け付けるようになるかな。
はっきり言って、>>37のようなソースコードを
ちまちまと変換するのめんどくさいっす。
なんとかしちくれ。
>>41
RedHatにのってる3.2ではまだ警告だね。-traditionalでも警告出た。
-std=xxxをかたっぱし試したが変化なし。
3.4.1でもダメ。
うーむ、もはや>>37のソースコードは負の遺産なのか?
gcc,multi-line,stringでぐぐるとこれが問題になった人は沢山いるようだね。
しかしgccチームはこれは危険なgcc拡張であり、使われるべきでないもの
という主張を貫き通しているようですね。 しかたがないからperlスレでも
いってこのコードを自動的に書き換えるスクリプトを捜すか開発して
ここにご報告ください >>37
>>45
>しかたがないからperlスレでもいってこのコードを自動的に
>書き換えるスクリプトを捜すか開発してここにご報告ください >>37
ワロタ
>>37が報告をするんかい
一つ聞きたいです。
以下のサイトで「JavaはCよりも速い!?--驚異の"-server"オプション」
ttp://www.geocities.jp/toshio16369/column/021108a.html
を見ててまさかCがjavaよりも遅いなんて何かの間違えだろ。
と思いgccの最適化オプションを余すところ無く指定して計ったのですが
"java -server"に負けてしまった。くそ〜、何故だ!!
(もちろん、-serverを指定しないのと比べるとCが早いのだ)
何故、-serverを指定して早くなるのか?
(まさか、loopを端折ってねーだろーな、という疑問があるが)
わかる方いますか?(gccにはまだ最適化の余地があるんだろうか?)

gccは、3.4.1です。以下がオプションです。
gcc Bubble.c -o Bubble -O3 -fomit-frame-pointer -fexpensive-optimizations -ffast-math -funroll-all-loops -msse2 -m3dnow
4847:04/08/14 05:48
あ、言い忘れたけどデータ数は200000件でテストしました。
-mcpu=pentium4
5047:04/08/14 21:14
>>49
>-mcpu=pentium4
だめでした。うーむ。"-server"で何が行われてるんだろうか?
おまえさんの環境と、測定方法と、測定結果をそれぞれ出してみてくれ。
>>47
-fprefetch-loop-arrays
5347:04/08/14 22:40
>>51
>おまえさんの環境と、測定方法と、測定結果をそれぞれ出してみてくれ。
Athlon 64 2800+ Mem 2G
測定方法は、>>47で書いたサイトと同じです。200000件
gcc: 1m23.851s
java -server: 1m12.928s
5447:04/08/14 22:53
>>52
>-fprefetch-loop-arrays
gcc キタ━━━━━━(   )(゚  )(∀゚ )(゚∀゚)( ゚∀)(  ゚)(   )━━━━━━!!

gcc: 0m59.120s
java -server: 1m9.745s

gccの方が、およそ20秒程早くなりました。
thanxです。

どうやら、javaでは、gccで言うgprofデータを基にコンパイルする“最適化コンパイル”見たいな手法
をしているようです。
JDKのバージョンいくつ?
1.4.2_01だったら2分だったのが
1.4.2_05だと1分だった
(Pen4-2.5G)
>>50
> うーむ。"-server"で何が行われてるんだろうか?

-server: HotSpot server VM (実行時間改善最優先)
-client: HotSpot client VM (起動時間も考慮)
-classic: JIT VM

Servletなどは長時間同じコードが実行し続けられるため。

>>54
その最適化すべき区域を"HotSpot"と言っている。
5747:04/08/15 16:22
-funroll-all-loops, -funroll-loopsは設定しない方がパフォーマンスが上がります。
そりゃ、-funroll-all-loopsには"This usually makes programs run more slowly"と
書いてあるしね。-funroll-loopsも、最近のキャッシュヒット重視アーキテクチャだと
遅くなるのが普通だわな。
その辺を実行時に考えながらやってくれるのがHotSpotですよ。
実行時にしか決まらないようなことでも最適化できる。
>>59
C/C++ でも、実行時プロファイルをとって、それをフィードバックして最適化に
反映するツールがある。

gcc だと「gcc "profile feedback"」で検索するとイロイロ出てくるけど、使い物に
なるかは不明。
6147:04/08/16 01:07
javaは、自動で最適化を実行(実行後にコードが変化するイメージかな?)
gccは、事前に手動で最適化を施す
ってことですよね?
VCで書いたインラインアセンブラを
GCC用に書きなおしているのですが
VCとGCCでは全く表現が異なっているため
(例 eax→%%eaxや[eax+8]→8(%%eax)など)
非常に苦労しています。
どこかにVCからGCCへ移植するための
解説ってありますか?
>>63
ありがとうございます
6547:04/08/17 03:56
みなさん、gcovは御存じですか?
man gcov
はあ
>>62-63
がーん!いいものがあるなあ!
漏れも使わせてもらおうっと。
ありがとう。
>>63
自動で変換してくれるような賢いツールはないかしら。
>>63
たまたま今日探してたものが...
一時間ぐぐっても見つけれなかった漏れってorz
gccとiccはどちらが、より最適化されたバイナリを生成しますか?
71デフォルトの名無しさん:04/08/18 13:09
ぐしし
いくく
7362:04/08/19 05:37
また質問で申し訳ないのですが
マクロを文字列の中に展開することってできますか?

#define ADR(k) k*2+1(%%eax)
asm( "mov ADR(2),%%ebx" );
      ↓プリプロセッサ
asm( "mov 2*2+1(%%eax),%%ebx" );
のような感じです。
よろしくお願いします。

>>67
>>69
http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html
ここも使えるかも
>>73
これじゃだめか?
#define TOSTR(s) #s
#define ADR(k) TOSTR(k*2+1(%%eax))
asm( "mov "ADR(2)",%%ebx" );
      ↓
asm( "mov " "2*2+1(%%eax)" ",%%ebx" );
      ↓
asm( "mov 2*2+1(%%eax),%%ebx" );
75より安全:04/08/19 08:13
k→(k)
>>74
ありがとうございます。
これでゴールにたどり着けそうです。
-fschedule-insns,-fschedule-insns2ってなんですか?
info gccぐらいしろよな
>>78
やりましたが、最適化オプションとしかわかりませんでした。
$man gcc
-fschedule-insns
If supported for the target machine, attempt to reorder instruc-
tions to eliminate execution stalls due to required data being
unavailable. This helps machines that have slow floating point or
memory load instructions by allowing other instructions to be
issued until the result of the load or floating point instruction
is required.

Enabled at levels -O2, -O3, -Os.

-fschedule-insns2
Similar to -fschedule-insns, but requests an additional pass of
instruction scheduling after register allocation has been done.
This is especially useful on machines with a relatively small num-
ber of registers and where memory load instructions take more than
one cycle.

Enabled at levels -O2, -O3, -Os.

誰か違いの分るテストコード書いてくれ
int f (int a, int b, int c);

int g (int a, int b, int c)
{
return f (-c, -b, -a);
}

これが-fno-schedule-insns2
negl %eax
movl %eax, 12(%esp)
negl %edx
movl %edx, 8(%esp)
negl %ecx
movl %ecx, 4(%esp)

こっちがあり
negl %eax
negl %edx
negl %ecx
movl %eax, 12(%esp)
movl %edx, 8(%esp)
movl %ecx, 4(%esp)
man gccの日本語訳見つけた

 -fschedule-insns
    ターゲットマシンにおいてこのフラグがサポートされている場合は、必要なデータを利用可能になる
    まで待つことによる実行の遅滞を防ぐために、命令の順番の変更を行います。これは遅い浮動小数点
    命令やメモリ読み込み命令の実行において、それらの結果を必要とする命令の前に他の命令を詰め込
    みます。

 -fschedule-insns2
    `-fschedule-insns' と似ていますが、レジスタ割当て処理の後にもう一度命令スケジューリングの
    段階を置きます。これは、比較的レジスタ数が少なく、メモリロード命令が 1 サイクルよりも多 く
    を要するマシンにおいて、特に効果的です。
>>81
gcc 3.3.3では、全部同じコードですけど何故?

-fno-schedule-insnsも-fno-schedule-insns2もオプション無しも以下のコード
negl %eax
movl %eax, 8(%esp)
movl 12(%ebp), %eax
negl %eax
movl %eax, 4(%esp)
movl 16(%ebp), %eax
negl %eax
movl %eax, (%esp)
>>83
-O3だけでやっても?
>>84
-O3だけだと。
movl 8(%ebp), %eax
movl 12(%ebp), %edx
movl 16(%ebp), %ecx
negl %eax
negl %edx
negl %ecx
movl %eax, 16(%ebp)
movl %edx, 12(%ebp)
movl %ecx, 8(%ebp)
8682:04/08/21 22:09
gcc --helpでも説明がちょっとあった。
 -fschedule-insns2   レジスタ確保の後で命令を並べ直す
 -fschedule-insns    レジスタ確保の前に命令を並べ直す
>>85
じゃあいいんじゃないの?
fno-ってやらないって意味だよ。
8883 & 85:04/08/21 22:18
>>87
そうか。逝ってきます。
gcovで君のホット・スポットを探そう!
http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_6.html#SEC113
まとめると、
「君のgスポットを探そう!」
c++ファイルをコンパイルするとき、毎回オプションとして-fomit-frame-pointerだとか
-funroll-loopsを書いているのですが、これらをsshのssh_configのようにデフォルトとして、
どこかに書いておくことはできないのでしょうか?
>>91 Makefile
>>91
シェルでaliasしとくか,
$ cat g++_with_flag_optimaize
#!/bin/sh
FLAG='-fomit-frame-pointer -funroll-loops'
/usr/bin/g++ $FLAG "$@"
exit $?
$ g++_with_flag_optimaize hoge.cpp
なんてのはどうですか?
もし,g++_with_flag_optimaizeのファイル名をg++とするなら,
PATHにオリジナルのディレクトリより先に指定しておくと優先されますよ.
9493:04/08/24 06:38
もちろん92のようにMakefileで指定するのが一番いいとは思いますよ.
Makefileで、

include ~/.makefile

$ cat ~/.makefile
CXX=g++ -Wall -pedantic -fomit-frame-pointer -funroll-loops
96デフォルトの名無しさん:04/08/24 12:27
コンパイルを複数のCPUでおこなうことは可能ですが、
ネットワーク上の他の複数PCのCPUをつかって
コンパイルする方法ってありますでしょうか?
97デフォルトの名無しさん:04/08/24 12:29
Plan9ならできる。GCCは使えないだろうけど。
>>96
distcc でぐぐってみそ
distcc
distccいいよ〜
今もお気楽コンパイル中
101デフォルトの名無しさん:04/08/24 12:47
>>100
そんなに速いの?
distccってLinuxマシン1台Windowsマシン3台で
Linuxカーネルコンパイルできますか?
できるならどうやってやるの?
>>101
研究室のマシン全部にそっとdistcc仕込んだんじゃネーノ?
>>102
Cygwinとかで、クロス環境つくれば由


以前やったのは、PS2の開発現場で、(当時はなかったので)
手製 distcc 相当のものを。Cygwin で作ったクロスコンパイル cc1plus は
なぜか安定させることができなかった。

ていうか今なら、coLinuxの上でcc1走らせればええんでネーノ?
10596:04/08/24 13:03
どうもありがとうございます。
試してみます。
これでかなり作業時間が短縮できそう。
感謝!!
分散コンパイルが必要なほど強烈なコードを扱ったことないのでアレなんだけど、
Cygwin上とかの遅いGCCを相手にしても釣りが出るほど良いものなのですか?

想像力不足で、メリットのほどがいまいちわからん。
107デフォルトの名無しさん:04/08/25 06:59
http://member.nifty.ne.jp/hardy/linux/install/gcc.html
ここを参考にしながらインストールをしているのですが、
make stage1

make: *** No rule to make target `stage1'. Stop.
というエラーがでて先に進めません。
どうしたらよいのでしょうか?カレントディレクトリは
gcc-3.4.1
です。
108デフォルトの名無しさん:04/08/25 08:42
>>107
make&&make installでいい
普通にREADMEとかINSTALLの通りにビルドすりゃいいんでしょ?

関係ないがGCCくらいになると
ビルドディレクトリを別に作ってビルドした方がよい希ガス

$ tar -zxvf gcc-x.x.x.tar.gz
$ mkdir gccbuild
$ cd gccbuild
$ ../gcc-x.x.x/configure
$ make
>>109
ていうか、ほぼマスト。
別にしないと、自分をビルドするためのコードを
平気で上書きとかしやがりますよ。

クロスコンパイル用にコンパイルするとかじゃないなら
大抵は素直に通るけど、実は結構エラー吐くことも多い。
それ以前の所で引っかかってる気がして仕方ないが、
GCC落としてきたところのMLだのニュースグループだの
良く読んで再トライしてみれ。
111デフォルトの名無しさん:04/08/27 13:32
別のディレクトリでやらなくても問題なく通ったが。
もし問題があるのならglibcみたいにconfigure時に止めるでしょ。
>>111
…すまん。
glibcのビルドも絶対一緒にやるもんだとばっかり思い込んでたよ…。
113デフォルトの名無しさん:04/08/29 10:01
gccをアップグレードするときは、現在あるgccを上書きするのではなく、別のディレクトリにインストールしてそこにパスを通す方がいいのでしょうか?
そりゃ、万が一問題が起きたら、被害甚大だから。
別のとこに放り込んどいて、シンボリックリンクすれば?
>>113
同じ所に突っ込んでも古いのは消えない。-Vで古いのも使えるし。
3.3でそのへんの仕様が変わったのがいやんだけどねえ。
116デフォルトの名無しさん:04/08/30 11:43
long longの変数をint型の変数に代入した時、警告するようなオプションってありますでしょうか?
boost::numeric_cast
>>116
ttp://gcc.gnu.org/ml/gcc/2004-06/msg01270.html
割と最近の話でびっくりした。
げ。ほんの2ヶ月前でやんの。
>>109の通りにやったのですが、make途中でエラーが出て止まってしまいます。
suse9.1を使っています。どうしたらよいのでしょうか?
>>117
オイオイ...
122デフォルトの名無しさん:04/08/31 14:05
エラーメッセージも書かない奴
123デフォルトの名無しさん:04/08/31 15:12
>>118
> ttp://gcc.gnu.org/ml/gcc/2004-06/msg01270.html
> 割と最近の話でびっくりした。
これってREAL_TYPEからINTEGER_TYPEへの変換しか警告しないみたいよ?
http://gcc.gnu.org/ml/gcc/2004-06/txt00002.txt
116たんの用途にはダメポ。

>>122
初心者にはありがちですな。
英語は全部読み飛ばしている様子だし。
まあしかし暖かく見守っていきましょうよ。
>>123
挙がってるパッチはそうだけど、
スレッド追っていくと、"warn for any implicit conversion that may change a value"
という仕様を視野に入れていてくれそうな感じ(に読み取れた)。
126デフォルトの名無しさん:04/09/01 06:19
インストール方法を詳しく解説した日本語のページがあれば教えてください
127デフォルトの名無しさん:04/09/01 07:57
「gcc インストール」でぐぐれ
128デフォルトの名無しさん:04/09/01 09:23
>>126
INSTALL/以下のHTMLファイルをどこかにおいてExcite翻訳へ
rootではなくてもインストールすることはできますか?
たとえば自分のホームディレクトリにインストールして、使用することはできるのでしょうか?
>>129 --prefix 指定すればどこでも好きなとこにインストールできっぺ。
http://enbug.tdiary.net/20040620.html#p02
まあどちらにしろ3.4系は使い物にならないけどな
っていうか、nested functionってCで使えたんだ・・・
Cでというかgccでな。
ここはgccスレだが標準Cでできると勘違いされるとアレなので一応
>>134
C99で使えるよ
Pascalで書くときはそれなりに便利だったが、Cで配布するコードに使おうとは思わんなあ。
誰も使っていないような機能は信用出来ないし。
使えりゃ使えたでそりゃ便利なんだが、蕎麦アレルギーより遥かに深刻な
潜在的アレルギー持ちが大量に死亡する予感
enbug書いてる人って億児さんだっけ?
個人的にはコンパイラのバグを誘発するようなコード書く側にも
問題あるとおもうよ。あら捜しはテストコードだけでやればいい。
gcc3の最高傑作は3.3.4、と、あと10年は語られるだろうな。
gcc-1.4.2 サイコー
142デフォルトの名無しさん:04/09/04 10:18
>>140
やっぱりそうなんだ
>>139
バグが見付からないとdejagnuにテストが追加されない罠。
そもそもdejagnuのテストもあんましあてにならんからなあ。

結局使う人が苦労すると。
>>140
いまだに3.2.3使ってるんだけど、大雑把に言ってどのくらい違うもの?
145デフォルトの名無しさん:04/09/04 17:04
long doubleの精度に関する質問です。

まず、私の環境は以下のとおりです。
cpu optern248
os fedora core 2 for x86_64
compiler gcc 3.3.3

以上の環境で以下のプログラム(test.c)
#include <stdio.h>
#include <math.h>
main()
{
float x=0.1;
double xd=0.1;
long double xdl =0.1L;
printf("%40.35e (size=%d)\n",x,sizeof(x));
printf("%40.35e (size=%d)\n",xd,sizeof(xd));
printf("%40.35e (size=%d)\n",xdl,sizeof(xdl));
}
をコンパイル'gcc -lm test.c'して実行させた結果、
1.0000000149011611938476562500000000000000e-01 (size=4)
1.0000000000000000555111512312578270211816e-01 (size=8)
1.0000000000000000555111512312578270211816e-01 (size=16)
という結果が得られます。

double とlong doubleで精度が同じように見えるのですが、実際のところどうなっているのでしょうか?
http://www.turbolinux.co.jp/world/library/features/SoftwareDesign/200401/AMD64/64bit-ch3a-2.html
を見るとx86_64では128bit浮動小数点演算がサポートされているとあります。
>>145
その printf() は long double に対応していますか?
147デフォルトの名無しさん:04/09/04 17:35
>>146
その辺のことも疑ってみないといけないのですね。
とりあえず倍々精度、128bit-FP、long doubleでprintfをぐぐって見ます。
148デフォルトの名無しさん:04/09/04 17:49
145です。
long doubleを表示させるときは”Le”を使うんですね。
man 3 printf
に書いてありました。

普段long doubleなんて使わないので気づきませんでした。
>>144
3.3が凄いというよりは3.4が酷すぎる
g++に関して言えば,これを見ると
http://boost.sourceforge.net/regression-logs/
結構検討しているようには見えるんだけど,
2%差(vs 3.3.3)はやっぱ酷いんかなぁ...
>>150
3.2や3.3より退化してる時点でダメダメ
>>151
paser取っ換えたんだから少しは...
153デフォルトの名無しさん:04/09/07 14:28
3.4.2って prefetch-loop-arrays を無視するんでしょうか. 以前に挙げられ
ていたベンチでどうしても Java より遅くなります.

gcc (GCC) 3.4.2 [FreeBSD] 20040728
java version "1.4.2-p6"

という環境で10万要素をバブルソートすると

25sec, gcc -O
25sec, gcc -O2 -march=pentium3 -fprefetch-loop-arrays
18sec, java -server

となる.

>>54
> >>52
> >-fprefetch-loop-arrays
> gcc キタ━━━━━━(   )(゚  )(∀゚ )(゚∀゚)( ゚∀)(  ゚)(   )━━━━━━!!
154デフォルトの名無しさん:04/09/07 14:35
-fverbose-asm
アセンブルしてみると確かにプリフェッチをしてるみたいです. ということで
キャッシュ量の二倍, 50万要素で比べてみました.

980sec, gcc -O2
887sec, gcc -O2 -march=pentium3 -fprefetch-loop-arrays
889sec, java -server

確かに効果がある? ようです.
156デフォルトの名無しさん:04/09/08 14:38
-Oオプションの数字はいくつまであるのでしょう?教えてください、偉い人。
-O3? -O5?
157デフォルトの名無しさん:04/09/08 14:44
>>156
3まで。
ちなみに-O10を指定すると下位2ビットだけ見て-O2が指定されたものと見なされる。
>>157
999まである
javaに負けるgccって存在価値あるの?
160デフォルトの名無しさん:04/09/08 22:20
>>159
あるよ。
161デフォルトの名無しさん:04/09/09 00:33
3.4.2 age
bccだろうがiccだろうがvc++だろうが負けるときゃ負ける。

163デフォルトの名無しさん:04/09/09 07:37
gccってなんて読むの?
>>159
java で Linux コンパイルできるのかよ。
>>163
ゲェーツェーツェー
>>163
えんはんすと ぐらふぃっく ちゃーじゃー
binutilsなしで行けるのか?
>163
グッシッシ
169デフォルトの名無しさん:04/09/09 13:34
>>166
EGC か。なつかしいな。
GRCGとEGCの区別がつかない香具師の数
GCC: The Complete Reference
ttp://www.amazon.com/exec/obidos/tg/detail/-/0072224053/

Should this book be add into a shopping cart?
173デフォルトの名無しさん:04/09/10 14:40:42
2chは日本人以外書き込み禁止ですよ。
174デフォルトの名無しさん:04/09/10 15:27:29
不自然さのない日本語を話せるならいいだろ
175デフォルトの名無しさん:04/09/10 19:04:37
172の英語間違ってるし
176デフォルトの名無しさん:04/09/10 19:18:47
間違ってないじゃん・・・と思ったけど
addじゃなくてaddedだな
177デフォルトの名無しさん:04/09/11 01:35:25
Brave GNU World
http://gnu.fyxm.net/brave-gnu-world/brave-gnu-world-2001.ja.html

今年のはまだ〜?
178デフォルトの名無しさん:04/09/11 11:48:09
現在alphaとopteronの2つのマシンを使っているのですが、コンパイル時にCUPを自動で判別してコンパイル方法を教えてください。
具体的には、

#ifdef XXXX

alpha用コード

#else

opteron用コード

#endif

みたいな感じでやりたいのですが、XXXXの部分がわかりません。教えてくださいエライ人。
179デフォルトの名無しさん:04/09/11 12:00:46
>>178
OSに禿しく依存。
180デフォルトの名無しさん:04/09/11 12:38:37
-v
181デフォルトの名無しさん:04/09/11 13:17:43
>>178
そこに asm でも入らない限り、CPU別の判定はナンセンスだと
感じるんだが、それを行いたい目的は何? ヒューリスティックに求めた
「xxx向きの算法」を条件分けて入れたいのかな?

質問で返してスマン。
182178:04/09/11 13:23:37
178です。ご回答ありがとうございます。
opteronでSSEを使ったプログラムを書きたいと思っています。
183デフォルトの名無しさん:04/09/11 13:33:36
コンパイラオプション指定すれば勝手にSSE使うけど・・・
184デフォルトの名無しさん:04/09/11 14:24:44
>>182

オプテロンではデフォルトだよ!
CPU指定してんのか?
185デフォルトの名無しさん:04/09/11 15:07:18
builtin_define ("__alpha");
builtin_define ("__alpha__");
builtin_assert ("cpu=alpha");
builtin_assert ("machine=alpha");

builtin_assert ("cpu=x86_64");
builtin_assert ("machine=x86_64");
builtin_define ("__amd64");
builtin_define ("__amd64__");
builtin_define ("__x86_64");
builtin_define ("__x86_64__");
186デフォルトの名無しさん:04/09/13 07:00:58
ポレのは386Mだったんで、GRCGしか使えんかった。


ような希ガス。
187デフォルトの名無しさん:04/09/13 08:35:50
懐しい話だが、どこの誤爆だ?
188デフォルトの名無しさん:04/09/13 12:17:37
>>187
>>169-171の続きじゃないの?
かなり時期を外したネタなのが惜しい。
189デフォルトの名無しさん:04/09/13 18:16:22
169は関係ない
190デフォルトの名無しさん:04/09/13 19:27:33
September 9, 2004
  The next major version of GCC following the current 3.4 release series will be called GCC 4.0.
191デフォルトの名無しさん:04/09/13 19:30:06
4日も前のニュースかよ
192デフォルトの名無しさん:04/09/13 19:38:46
ここに張られていない以上はヌースと言ってもよさげ。

しっかし、あの酷い出来の後じゃなぁ・・・当分3.3.1を使うことになりそう。
193デフォルトの名無しさん:04/09/13 19:44:47
gcc 4.0になるってそんなにメジャーな変更があるのか?
194デフォルトの名無しさん:04/09/13 20:24:44
c++とjavaはわりと変更大きそうだけど
195デフォルトの名無しさん:04/09/13 21:47:02
D言語が入るとか?
196デフォルトの名無しさん:04/09/13 22:50:50
入らないんじゃね?
197デフォルトの名無しさん:04/09/13 22:51:34
むしろParrot+Perlとか入ったりして
198デフォルトの名無しさん:04/09/13 23:02:58
GCC 3.4は酷いの?
一部では最適化が強力になって早いという話も聞いたんだけど。
199デフォルトの名無しさん:04/09/13 23:03:33
GDCならもうあるんじゃね?
200デフォルトの名無しさん:04/09/13 23:15:01
>>199
GCCのメンバーと関係無い香具師が勝手に作っただけの
非公式版だろ
201デフォルトの名無しさん:04/09/13 23:15:35
>>198
最適化が多少良くなってもバグだらけじゃ意味無いしね
202デフォルトの名無しさん:04/09/13 23:36:40
仕様が厳しくなったのに肝心のgccが駄目ぽってのはいやん
203198:04/09/13 23:47:34
確かにGCC 3.4はバグが多い気も。。。
3.4.3あたりでまともになるのかな?
204デフォルトの名無しさん:04/09/14 01:13:07
GCCのさいて
205デフォルトの名無しさん:04/09/14 14:34:45
-fprefetch-loop-arrays の話ですが, -O の時は -fstrength-reduce を付け
ないと prefetch しないようです. また,

-O -fstrength-redue -fprefetch-loop-arrays



-O2 -fprefetch-loop-arrays

とでは, -O の方が性能が良くなりました. GCC 3.4.2 の最適化がショボイんでしょうか.
206デフォルトの名無しさん:04/09/14 15:45:36
>>205
そのネタはもう飽きた
207デフォルトの名無しさん:04/09/14 17:37:17
はあ
208デフォルトの名無しさん:04/09/14 18:30:46
>>205
これこそgccネタとしてふさわしい。
オプションの指定しだいで最適化されるかされないか、そんな雰囲気がいいんじゃねーか。>>206は、すっこんでろ。
で、-O3 -fprefetch-loop-arrays -fstrength-reduce -fomit-frame-pointer -fexpensive-optimizations これ最強。
まあお前らド素人は、-Osでもやってなさいってこった。
209デフォルトの名無しさん:04/09/14 18:44:54
>>206
コンパイラ書く側に立ってないんじゃ、あんたもド素人だと思うよ。
210デフォルトの名無しさん:04/09/14 18:45:31
ソースも示さないんじゃ、こっちで試しようがないよ。
211デフォルトの名無しさん:04/09/14 18:47:37
カーネルに興味持つ香具師は多いけど、コンパイラやインタプリタの
ソースを見ようとする奴は少ないね。なんで?
212デフォルトの名無しさん:04/09/14 18:50:10
コンパイラは道具だから?
213デフォルトの名無しさん:04/09/14 18:52:34
コンパイラ見る奴ってカーネル見る奴に比べてそんなに少ないかな?
かなりいるであろう最適化好きはカーネルよりもむしろコンパイラの方見てそうだけど
214デフォルトの名無しさん:04/09/14 18:53:19
コンパイラのコードが自動生成されてて読むに耐えないものだから
215デフォルトの名無しさん:04/09/14 18:55:57
まあ過疎スレなんだし、>205の日記帳として使うのもありじゃない?
216デフォルトの名無しさん:04/09/14 18:56:24
自動生成するコードが面白いんじゃないの?
217デフォルトの名無しさん:04/09/14 19:06:01
gcc&コンパイラハカー、カコイイ!!
218デフォルトの名無しさん:04/09/14 19:21:22
オープンソースなのにソース読まないのは、
民主主義なのに法律しらない奴と同じだよな
219デフォルトの名無しさん:04/09/14 19:30:42
Kなんかがいくら独自拡張やっても、んなコード誰も読みたくないから取り込まれない
220デフォルトの名無しさん:04/09/14 19:39:05
自動生成元のコード読めよ
221デフォルトの名無しさん:04/09/15 00:33:54
>>209
あんた「も」って、一言もド素人とは言っていないが。
222デフォルトの名無しさん:04/09/15 01:08:13
>>208
-fomit-frame-pointer って、かえって遅くなることありません?
223デフォルトの名無しさん:04/09/15 01:38:12
ていうか遅くなる事のが多いよ
224デフォルトの名無しさん:04/09/15 09:17:19
遅くなったことなんかないと思うけど。
余計な手続きをしないってだけだから
遅くなることはまずないんじゃないの?
225デフォルトの名無しさん:04/09/15 10:02:43
ここは想像で語るスレではありません。
226デフォルトの名無しさん:04/09/15 10:04:25
じゃあ遅くなるソース見せなよ。
関数使ってないんじゃないの?
227デフォルトの名無しさん:04/09/15 10:23:51
>>224
> 余計な手続きをしないってだけだから

余計な手続きが必要になるのは, 付けたときの方だよ.
228デフォルトの名無しさん:04/09/15 10:30:51
3.3.3 + i686で-fomit-frame-pointerしてみましたが、
object codeは何の変化もありませんでした。
229デフォルトの名無しさん:04/09/15 10:35:58
関数使ってないからだろ
230デフォルトの名無しさん:04/09/15 10:41:51
$ cat foo.c
#include <stdio.h>

int main(void) { return printf("\n"); }
$ gcc -c -g foo.c
$ objdump -S foo.o > /tmp/foo
$ gcc -c -g -fomit-frame-pointer foo.c
$ objdump -S foo.o > /tmp/bar
$ diff /tmp/foo /tmp/bar
$ gcc -c -g -fno-omit-frame-pointer foo.c
$ objdump -S foo.o > /tmp/baz
$ diff /tmp/foo /tmp/baz
$
231デフォルトの名無しさん:04/09/15 10:45:48
関数呼び出してないんだから当り前だろ
int f (int a) {return a * 2;}
これで-Sでやってみなよ
232デフォルトの名無しさん:04/09/15 11:07:15
>>231
それ、関数呼び出してない…
233デフォルトの名無しさん:04/09/15 11:09:02
でどうだったの?
234デフォルトの名無しさん:04/09/15 11:09:53
いや、それ関数呼び出してないじゃん?
235デフォルトの名無しさん:04/09/15 11:10:47
俺は>>230のが関数使ってないって書いたんだけど
だから違いの分かるコードを見せただけ
236デフォルトの名無しさん:04/09/15 12:33:29
むしろ、-fomit-frame-pointerというのが何をするかわかってない奴がこのスレにいるに1000マルク。
237デフォルトの名無しさん:04/09/15 12:37:11
ノシ
238デフォルトの名無しさん:04/09/15 15:57:01
-fomit-frame-pointer使うと
フレームポインタをレジスタに格納しないので、
フレームポインタにアクセスする時に遅くなる。
239デフォルトの名無しさん:04/09/15 16:06:24
>>208のオプションって頭悪いな
gcc -O2
だけで

-fdefer-pop -foptimize-sibling-calls -fcse-follow-jumps -fcse-skip-blocks
-fexpensive-optimizations -fthread-jumps
-fstrength-reduce -fpeephole -fforce-mem -ffunction-cse
-fkeep-static-consts -fcaller-saves -freg-struct-return -fgcse
-fgcse-lm
-fgcse-sm -floop-optimize -fcrossjumping
-fif-conversion -fif-conversion2
-frerun-cse-after-loop -frerun-loop-opt -fdelete-null-pointer-checks
-fsched-interblock -fsched-spec -fbranch-count-reg -freorder-blocks
-freorder-functions -fcprop-registers -fcommon -fgnu-linker -fregmove
-foptimize-register-move -fargument-alias -fstrict-aliasing -fmerge-constants
-fzero-initialized-in-bss -fident -fpeephole2 -fguess-branch-probability -fmath-errno
-ftrapping-math -m80387
-mhard-float -mno-soft-float -malign-double
-mieee-fp -mfp-ret-in-387 -mstack-arg-probe -maccumulate-outgoing-args
-mcpu=pentiumpro -march=i386

が有効になるのにな。
240デフォルトの名無しさん:04/09/15 16:07:38
少なくとも
-fstrength-reduce -fexpensive-optimizations
は必要ないな
241デフォルトの名無しさん:04/09/15 16:49:45
-mcpu=pentiumpro -march=i386
-mcpu=pentiumpro -march=i386
-mcpu=pentiumpro -march=i386
-mcpu=pentiumpro -march=i386
242デフォルトの名無しさん:04/09/15 17:04:08
>>238
> フレームポインタにアクセスする時に遅くなる。
嘘つけ。
243デフォルトの名無しさん:04/09/15 17:10:51
>>242
じゃあレジスタアクセスとメモリアクセスどっちが速いと思ってるの?
244デフォルトの名無しさん:04/09/15 19:22:42
まあまあ。
悪いのはspのアドレッシングモードが貧弱なx86のせいということで、喧嘩は止めようぜ。
245デフォルトの名無しさん:04/09/15 19:45:05
>>243
>じゃあレジスタアクセスとメモリアクセスどっちが速いと思ってるの?
おいおい、その問題と-fomit-frame-pointerは違くないか?
246デフォルトの名無しさん:04/09/15 21:23:09
-fomit-frame-pointerなんて無条件に付けとけばいいじゃんて結論に達したのは
その当時俺がそれを調べてたマシンが68kだったからだな。
x86では確かに厳しげ。
247デフォルトの名無しさん:04/09/15 23:27:32
>>246
デバッグするのでは無いなら無条件につけてもいいような気もするが。> -fomit-frame-pointer
248デフォルトの名無しさん:04/09/15 23:30:39
恐いよ
249デフォルトの名無しさん:04/09/15 23:40:55
フレームポインタにアクセスする時に遅くなるよ
250デフォルトの名無しさん:04/09/15 23:46:52
同じボケは繰り返さない。
251デフォルトの名無しさん:04/09/15 23:49:28
アクセスする必要がない関数のときだけレジスタを使わないようにするんだよボケ。
252デフォルトの名無しさん:04/09/15 23:49:30
-fomit-frame-pointer使うとEBPに入るはずのフレームポインタが
スタックに載っちゃうんだよ。遅くなるに決まってるじゃん。
253デフォルトの名無しさん:04/09/15 23:51:20
-fomit-frame-pointer付けて
allocaとかsetjmpとかその辺のEBP使う関数使うとぶっこわれんの?
254デフォルトの名無しさん:04/09/15 23:53:19
>>253
極端に遅くなるだけじゃないの?
スタックに載るんでしょ?
255デフォルトの名無しさん:04/09/16 00:04:15
>252は本気で言ってるのかな。

通常はEBP経由でアクセスするスタックフレーム(引数/ローカル変数)を
ESP経由で直接アクセスするようになるだけなのに。
256デフォルトの名無しさん:04/09/16 00:06:02
たかが一個のコンパイラオプションだけでこんなに騒げるgccは素晴らしいな
257デフォルトの名無しさん:04/09/16 00:08:30
258デフォルトの名無しさん:04/09/16 00:10:32
>>257
それはx86なんて糞アーキテクチャだからだろ
259デフォルトの名無しさん:04/09/16 00:19:01
速度が低下する「こともある」を示しているだけにしか見えないが
260デフォルトの名無しさん:04/09/16 00:26:36
-fomit-frame-pointer は有利に働く場合も不利
に働く場合もあると思う。このオプションは他のレジスタを割り当
て可能にする。一方 x86 が命令セットを解釈するやり方から考え
て、スタック相対アドレスはフレーム相対アドレスよりも大きなス
ペースを必要とする。したがってプログラムで利用できる I
キャッシュが少なくなってしまう。同様に -fomit-frame-pointer
を指定するとコンパイラはスタックポインタを命令コールのたびに
再配置するが、フレームがある場合はスタックアキュムレータを数
命令で使いきってしまうことになる。
261デフォルトの名無しさん:04/09/16 00:27:59
ただ、mozillaとかSDLとか一部のプログラムでは -fomit-frame-pointer が入っているとcore吐いて落ちるケースがありました。
262デフォルトの名無しさん:04/09/16 00:32:47
「フレームポインタ」の意味が分かってない奴の発言
>238 >243 >249 >252 (>257?)
263デフォルトの名無しさん:04/09/16 00:35:22
Denis Zaitsev - BUG: g++ 3.x.x -fomit-frame-pointer: exception handling doesn't work
http://gcc.gnu.org/ml/gcc/2004-08/msg00253.html
264デフォルトの名無しさん:04/09/16 00:37:04
Cygwin libs broken by "-fomit-frame-pointer" switch
http://www.cygwin.com/ml/cygwin/2001-04/msg01913.html
265デフォルトの名無しさん:04/09/16 00:37:50
Scrollbars and scrollwheel: -fomit-frame-pointer problems
http://www.mail-archive.com/[email protected]/msg09296.html
266デフォルトの名無しさん:04/09/16 00:38:25
こんな壊れたコードを量産する
fomit-frame-pointerなんか使ってる香具師の気が知れんね
267デフォルトの名無しさん:04/09/16 00:39:36
Code generation bug with -fomit-frame-pointer
http://gccsdk.riscos.info/mail-archive/gcc/2003/1947.html
268デフォルトの名無しさん:04/09/16 00:44:09
なるほど、理論的な「遅くなる原因」を示せなかった(理解してなかった)ので
「遅くなるから使えない」をやめて、今度は「バグがあるから使えない」に変更しましたか。

まあ、それは正しいと思うけど。
269デフォルトの名無しさん:04/09/16 00:51:16
誰かそのbugを要約して
オフセットの計算ミス?
270デフォルトの名無しさん:04/09/16 00:56:12
fomit-frame-pointerなんてだいっきらいだ。
漏れが書いたC++のコードだってまともに動きやしなかった。
VC++7.1なら/Oy付けてもちゃんと動いたのに。
271デフォルトの名無しさん:04/09/16 01:48:20
随分伸びてると思ったらくだらないののしりあいですね
272デフォルトの名無しさん:04/09/16 08:30:25
性能については>>244-245に尽きる。
品質については…まあいかにもバグがでそうな機能だと思う。
273デフォルトの名無しさん:04/09/16 08:31:34
失礼、>>244 >>246だった。
274デフォルトの名無しさん:04/09/16 10:04:14
ののしりあいというより、バカがボウフラのごとく涌いているだけ。

275デフォルトの名無しさん:04/09/16 13:48:39
>>274

ハケーン.
276デフォルトの名無しさん:04/09/16 15:37:56
確かにバグがあったバージョンもあったかもしれないが、
正直、-fomit-frame-pointer自体には罪はないような気がするが。
277デフォルトの名無しさん:04/09/16 15:39:45
Linux(x86)は、デフォルトで-fomit-frame-pointerを使用してます。
278277:04/09/16 15:44:40
あ、言い忘れたけど>>277はカーネルのことです。
279デフォルトの名無しさん:04/09/16 16:00:06
>>276
> 正直、-fomit-frame-pointer自体には罪はないような気がするが。
そうだよ。-fomit-frame-pointerで遅くなるってわめいてる奴は、
アクティベーションレコードが何なのかもわかってないのさ。
280デフォルトの名無しさん:04/09/16 16:53:20
ようするに-fomit-frame-pointerを理解せずに使うなよ、ということでこの件は終了でいいですか?
281デフォルトの名無しさん:04/09/16 17:20:04
無条件に使えでいいんじゃないの?
遅くなる例もないみたいだし。
282デフォルトの名無しさん:04/09/16 20:06:22
-pg とバッティングする.
283デフォルトの名無しさん:04/09/16 20:08:42
それくらいか
284デフォルトの名無しさん:04/09/16 22:15:23
このへんで>>252の再臨きぼんぬ
285デフォルトの名無しさん:04/09/16 22:47:22
284=252
286デフォルトの名無しさん:04/09/16 23:06:54
252=271=285
287デフォルトの名無しさん:04/09/17 00:17:57
288デフォルトの名無しさん:04/09/17 00:18:53
>>276
現在のバージョンもバグだらけ
289デフォルトの名無しさん:04/09/17 00:30:45
自分のバグをコンパイラのせいにするのも良し。
遅くなると思って使わないのもまた良し。
290デフォルトの名無しさん:04/09/17 00:50:54
それで, -O より -O2 の方が遅い原因は分ったんですか?
291デフォルトの名無しさん:04/09/17 11:37:13
すぐにコンパイラのバグのせいにする奴は厨。
ほとんどが自分のプログラムミス。
292デフォルトの名無しさん:04/09/17 12:52:48
C言語という仕様がザルだというのもあるな.
293デフォルトの名無しさん:04/09/17 15:05:32
これがコードのミスなんだ。へえー。

#include <stdio.h>

int x(int y)
{
int x= y;
if (y)
printf("%d\n", y);
else
throw "x";
return x;
}

main()
{
try {
x(0);
}
catch (const char *e) {
puts(e);
}
catch (...) {
puts("cathed");
}
}

294デフォルトの名無しさん:04/09/17 15:09:39
そもそもコードのバグだったら
なんで-fomit-frame-pinterの有無で挙動がかわんの?
やっぱコンパイラのバグじゃん。
295デフォルトの名無しさん:04/09/17 15:10:11
pointer
296デフォルトの名無しさん:04/09/17 15:27:12
>>293
オプション何でやっても
xって表示されるけど間違いなの?
c++よく分からないけど。
297デフォルトの名無しさん:04/09/17 16:36:50
プログラムのミスのせいで-fomit-frame-pointerをつけると死ぬ例

void f (int i) {
int a[1];
a[i] = 0;
}

#include <stdio.h>
#include <stdlib.h>

void f (int i);
int main () {
f (1);
printf ("aaa\n");
exit (0);
}
298デフォルトの名無しさん:04/09/17 16:58:13
>>297
gcc以前の問題
299デフォルトの名無しさん:04/09/17 17:05:03
>>298
まともな返答も出来ないのかよ。
つけないとpush ebpで助かるけど、つけるとリターンアドレスを書き換えて
挙動が変わるって説明したのに。

もうお前書きこむな
300デフォルトの名無しさん:04/09/17 17:20:42
どっちにしろebp書き換えたらセーフじゃないだろヴォケ
301デフォルトの名無しさん:04/09/17 17:21:58
だから最初からお前がまぬけなコード書いてるんだろって言ってるの
コンパイラのバグじゃなく
302デフォルトの名無しさん:04/09/17 17:27:06
> -fomit-frame-pointer is one of those "optimizations" that does more harm
> than good in my opinion.

Well, I always found the resulting assembly of code compiled with
'-fomit-frame-pointer' much easier to read than without :-)
303デフォルトの名無しさん:04/09/17 17:44:52
このスレに、-fomit-frame-pointerをどうしても悪くしたい奴がいるようです。
304デフォルトの名無しさん:04/09/17 17:48:49
まあなんで-O2に-fexpensive-optimizationsさえ付いてくるのに、
-fomit-frame-pointerがついてこないかを考えれば、
普通は-fomit-frame-pointerを使うべきではないのは自明だな。
305デフォルトの名無しさん:04/09/17 17:50:20
これだけで議論になるオプションなので、
本当のオプション名は、-fomit-flame-pointerになんじゃないかなぁ。w
306デフォルトの名無しさん:04/09/17 17:57:13
ところで、>>293の挙動が-fomit-frame-pinterの有り、無しの
どちらでも結果が変わらんのだが。
どちらもxが表示される。

(´-`).。oO(>>293はいったい何が言いたいんだろう)
307デフォルトの名無しさん:04/09/17 18:01:02
>>303
-fomit-frame-pointerにバグのあるVersionを使ってる奴ががんばってるだけでは?
gccをVersion Upすればいいじゃん。w
なんでそんなにがんばるのかわからん。
308デフォルトの名無しさん:04/09/17 18:05:49
>>304
>まあなんで-O2に-fexpensive-optimizationsさえ付いてくるのに、
>-fomit-frame-pointerがついてこないかを考えれば、
>普通は-fomit-frame-pointerを使うべきではないのは自明だな。
うーむ、これは憶測だけどgdbで使用できるようにするための配慮ではと思うのだが。
本当のところは知らん。
309デフォルトの名無しさん:04/09/17 18:06:04
>>299
>つけないとpush ebpで助かるけど

助かってどうする。
310デフォルトの名無しさん:04/09/17 18:09:24
>>309
どうもしないよ。
そもそもバグのあるコードがたまたま動いてるように見える
例で書いたんだから。
311デフォルトの名無しさん:04/09/17 18:14:14
>>293
>puts("cathed");
312デフォルトの名無しさん:04/09/17 18:14:18
付けてみた場合と付けなかった場合で速度を比べてみるのが最強!
313デフォルトの名無しさん:04/09/17 18:14:39
ん、つまりあんたの言いたいことは、
-fomit-frame-pointerをつけた方がバグ鳥にも役立ちますよ
って、そういうこと?
314デフォルトの名無しさん:04/09/17 18:17:59
This is a frame war.
This is a holy war.
315デフォルトの名無しさん:04/09/17 18:19:17
>>304,308
`-fomit-frame-pointer'
...
Enabled at levels `-O', `-O2', `-O3', `-Os'.
316デフォルトの名無しさん:04/09/17 18:19:32
>>313
>>294がなんで挙動が変わるのかって書いてたから
それに対して書いたんだよ。
わざとらしいな。
それにバグ取りとか関係ないと思うけど。
さっきのやつだとa[2] = 0;ってすればつけたほうが平気だし。
317デフォルトの名無しさん:04/09/17 18:24:59
皆様、ここで一旦もう一度冷静になって、
man gcc、info gcc、gcc -v --help
の-fomit-frame-pointerの項目を落ち着いて見てみようぜ。
318デフォルトの名無しさん:04/09/17 18:33:40
>>315

うそを書くな.
319デフォルトの名無しさん:04/09/17 18:34:09
>>304
282
320デフォルトの名無しさん:04/09/17 18:34:43
>>318
どのバージョン?
321デフォルトの名無しさん:04/09/17 18:38:20
>>320
3.3.4
322デフォルトの名無しさん:04/09/17 18:39:31
>>321
ならinfoに書いてあるよ。
323デフォルトの名無しさん:04/09/17 18:44:17
>>322
少なくともx86では有効にならないよ
そもそもバグならmanも何も関係ないしね
324デフォルトの名無しさん:04/09/17 18:49:18
>>323
俺もう書かないけどいい?
325デフォルトの名無しさん:04/09/17 18:50:04
いいよ
326デフォルトの名無しさん:04/09/17 18:50:32
manと実装が同期してないことはよくあるね。
-Sをして自分で確かめろってことでそ。
327デフォルトの名無しさん:04/09/17 19:15:06
そもそも-O2で付くなら、
fomit-frame-pointerの話なんて出ないよな。
-O2で付くんなら-fomit-frame-pointerとかいう長ったらしいオプション付ける必要ないもん。
328デフォルトの名無しさん:04/09/17 19:18:05
>>327
だーかーらー
> `-O' also turns on `-fomit-frame-pointer' on machines where doing
> so does not interfere with debugging.
329デフォルトの名無しさん:04/09/17 19:19:56
それだけなら>>263-267みたいなの事は起こらないだろ
330デフォルトの名無しさん:04/09/17 19:29:09
>>327
>そもそも-O2で付くなら、
`-O' also turns on `-fomit-frame-pointer' on machines where doing
so does not interfere with debugging.
331デフォルトの名無しさん:04/09/17 19:40:56
>>330

machines where doing so does not interfere with debugging.
332デフォルトの名無しさん:04/09/17 19:53:16
x86で-fomit-frame-pointer付けると逆に遅くなる理由を説明が説明されてるよ
http://www.radiumsoftware.com/0304.html#030409
333デフォルトの名無しさん:04/09/17 19:55:57
結局-fomit-frame-pinter付けちゃいけないのは
x86だけだろ。さもgccが全部悪いみたいないいかたすんなよ。
sparcやMac(PPC)でgcc使ってる香具師だっているだろ。
334デフォルトの名無しさん:04/09/17 20:00:39
>>293
これ与太かとおもったら本当だった。
-O2 -fomit-frame-pointer だとアボートしましたってなる。
-O0 -O1 -O3 -Os なら -fomit-frame-pointer やっても平気だけど。
3.3.4で。
335デフォルトの名無しさん:04/09/17 20:05:33
久しぶりにこのスレ見に来たら今更こんな話題やってんのかよ
-fomit-frame-pointerはx86では付けない方がいいなんて何年も前から常識だぜ

あげちゃうよ
336デフォルトの名無しさん:04/09/17 20:08:52
>>335
じゃ277は止めた方がいいのかな?
337デフォルトの名無しさん:04/09/17 20:16:20
-fomit-frame-pointerのバグじゃなくて
例外のバグじゃないかとも書いてあるね。
338デフォルトの名無しさん:04/09/17 20:47:34
ようし、こうなったらIntelかAMDの奴呼んできて、
はっきりさせようじゃねーか。

誰か2chに呼んできて。
339デフォルトの名無しさん:04/09/17 20:53:09
>>334
>-O2 -fomit-frame-pointer だとアボートしましたってなる。
3.3.3だけど再現しないなぁ。
たぶん3.3.4にバグがあったってオチなんでしょ。
340デフォルトの名無しさん:04/09/17 20:56:23
うわー3.4系はバグリまくってて使えないし
3.3.4まで使えないのかー。
どのバージョン使えばいいんだgccって。
341デフォルトの名無しさん:04/09/17 20:57:51
>>340
-fomit-frame-pointer使わなきゃいいだろ。
どうせ-fomit-frame-pointer使っても百害あって一利なしのx86つかってんだろ。
342デフォルトの名無しさん:04/09/17 21:07:07
>>339
今 3.3.3 と 3.4.0 で試してみたら平気だった。
でも 3.3.4 だけはなるから、これ固有なのかな。
343デフォルトの名無しさん:04/09/17 21:19:57
>>332
遅くなるとは書いてないみたいだけど?
344デフォルトの名無しさん:04/09/17 21:20:57
>>332-333
もうその話は100レス前に終わってる(>>244, >>246).
345デフォルトの名無しさん:04/09/17 21:49:48
さあ次の話題カモーンヌ
346デフォルトの名無しさん:04/09/17 22:24:20
>>332のソース、何でbarがvoidなんだろ?
347デフォルトの名無しさん:04/09/17 22:35:05
>>332のつけた方が速いじゃん。少なくともpentium3だと。

-O3 -fomit-frame-pointer
real 0m16.099s
user 0m15.910s
sys 0m0.080s

-O3
real 0m20.337s
user 0m19.070s
sys 0m0.000s
348デフォルトの名無しさん:04/09/17 22:43:02
テストの仕方間違えた。たいして差は出ないな。

-O3 -fomit-frame-pointer
real 0m15.766s
user 0m15.760s
sys 0m0.000s

-O3
real 0m16.216s
user 0m16.210s
sys 0m0.010s
349デフォルトの名無しさん:04/09/17 22:45:28
まだ間違えてんじゃないの
350デフォルトの名無しさん:04/09/17 22:51:03
int foo (void);
int bar (int a[]) {return 0;}

int main ()
{
int i;

for (i = 0; i < 100000000; i++)
foo ();
return 0;
}

まだ間違えてるかな。
先にやった時は、このファイルもオプション変えてたけど
2回目は固定してやった。
351デフォルトの名無しさん:04/09/17 22:57:39
>>350
そのコードじゃ別の所で最適化かかって意味無いんじゃね
352デフォルトの名無しさん:04/09/17 23:03:15
>>351
ファイル分けてコンパイルしたから
大丈夫じゃない?多分
353デフォルトの名無しさん:04/09/17 23:04:24
0.202u 0.000s 0:00.20 100.0% 5+165k 0+0io 0pf+0w
354デフォルトの名無しさん:04/09/17 23:18:38
ていうかね、ごく一部(1人or2−3人)の人が、
「遅くなることもある」という表現を知らないせいか
ひたすら「遅くなる」とだけ唱えているから、ややこしくなるのよ。
355デフォルトの名無しさん:04/09/17 23:19:19
static int z;
int bar(int *x){
z++;
*x = z;
}

int foo(void){
int a[16] = {0};
a[0] += bar(a); a[0] += bar(a); a[0] += bar(a); a[0] += bar(a);
a[0] += bar(a); a[0] += bar(a); a[0] += bar(a); a[0] += bar(a);
a[0] += bar(a); a[0] += bar(a); a[0] += bar(a); a[0] += bar(a);
a[0] += bar(a); a[0] += bar(a); a[0] += bar(a); a[0] += bar(a);
return a[0];
}

int main(){
int i,j;
for(i=j=0; i<0xfffffff; i++) j += foo();
printf("%d\n", j);
return(0);
}
/*************************************************************/
"-O3 -mcpu=i686"と"-O3 -mcpu=i686 -fomit-frame-pointer"で比べて見た。
-fomit-frame-pointer有り:
real 0m4.573s
user 0m4.568s
sys 0m0.004s
-fomit-frame-pointer無し:
real 0m4.601s
user 0m4.599s
sys 0m0.001s
本当に微妙なんだけど、-fomit-frame-pointerをつけたほうが早かった。
356デフォルトの名無しさん:04/09/17 23:21:34
>>354
あと、gccのversionによっても微妙に速度は変わるはずだし。
versionを統一してチェックしなければ意味ないし。
357デフォルトの名無しさん:04/09/18 13:17:54
結局今マトモな最新バージョンはgcc-3.3.3みたいですね
358デフォルトの名無しさん:04/09/18 17:58:41
これは嵐の前の静けさですか?
359デフォルトの名無しさん:04/09/18 18:18:41
GCC-3.3.5 release
360デフォルトの名無しさん:04/09/18 18:52:33
prerelease?
361デフォルトの名無しさん:04/09/18 21:41:10
GCC-3.3.5 release status
http://gcc.gnu.org/ml/gcc/2004-09/msg00742.html

>I recall that the release date for GCC-3.3.5 is September 30, 2004.
362デフォルトの名無しさん:04/09/18 21:45:08
またバグが増えるのかな?
363デフォルトの名無しさん:04/09/18 23:03:41
>>362
何故バグを期待してんのかわからん。

そんなにバグがいやなら商用のiccでも使っておけ。
364デフォルトの名無しさん:04/09/18 23:11:04
>>363
iccは動かないし
365デフォルトの名無しさん:04/09/19 02:51:54
こんばんわ、みなさま。
さぁ〜、ベンチマークの結果発表の時間がきました。

Linux C and C++ Compilers
A comparison via benchmarks on Opteron and Pentium
ttp://www.coyotegulch.com/reviews/linux_compilers/


くそっ!iccに負けてるじゃんかよ。
366デフォルトの名無しさん:04/09/19 02:56:07
LAMEのMP3 Encodingで勝ってる。わーい
367デフォルトの名無しさん:04/09/19 03:03:51
gccには適応生存能力がある。
ある意味それが利点でもあるのだが。
368デフォルトの名無しさん:04/09/19 03:11:24
>>367
そう言ってるね。

>If anything, these tests show how free software rivals -- and sometimes exceeds
>-- the quality of its commercial counterparts. Perhaps GCC's greatest strength
>is its cross-platform portability; it is arguably the most ubiquitous piece of
>software in the world, running on everything from mainframes to embedded systems.
>For obvious reasons, Intel's compiler is specific and limited to their processors.
369デフォルトの名無しさん:04/09/19 03:21:47
さすが大人の意見です。

>"Choice" is the key word here -- choice is good, be it in democracy or software.
>Intel provides a useful alternative to GCC for development on ia32 systems.
>One compiler might have a great environment for developing GUI code; another
>compiler might generate fast code. GPL-like freedom may be important -- or not
> -- as individual circumstances dictate.
370デフォルトの名無しさん:04/09/19 09:26:06
371デフォルトの名無しさん:04/09/19 13:13:33
gcc 4.0 なんてあるのか…。
372デフォルトの名無しさん:04/09/19 13:44:35
上の pov-ray ベンチを

-O3 -ffast-math -fomit-frame-pointer -march=pentium-m -fprefetch-loop-arrays
-O3 -ffast-math -fomit-frame-pointer -march=pentium-m

の二種類でやったら

3067sec, 3092sec

になった. -fprefetch-loop-arrays を付ければもっと gcc の結果は良くなりそう.
373デフォルトの名無しさん:04/09/19 13:44:36
374デフォルトの名無しさん:04/09/19 13:45:12
>>372
-ffast-mathって結果変わっちゃうよ
375デフォルトの名無しさん:04/09/19 14:20:53
>>374
> -ffast-mathって結果変わっちゃうよ
んにゃ、元のページで使ってるから、372はそれと同じ設定にしただけだろ。
376デフォルトの名無しさん:04/09/19 14:23:25
あー、3.4 が 4.0 に改名するだけですか。
Java 1.5 が Java 5.0 になるようなもんですかね。
377デフォルトの名無しさん:04/09/19 16:06:23
>>376 ちがうよ。
378376:04/09/19 16:24:17
え? 違うの? あっそう。
379デフォルトの名無しさん:04/09/19 16:38:27
380デフォルトの名無しさん:04/09/19 20:00:49
381デフォルトの名無しさん:04/09/20 00:32:43
よ〜し、gccでバンバン最適化してiccを追い抜いちゃうぞ〜。
382デフォルトの名無しさん:04/09/20 10:01:13
パパが抜けてるぞ。
383デフォルトの名無しさん:04/09/20 14:58:50
InterlockedIncrementみたいなのはgccにはないですか?
384デフォルトの名無しさん:04/09/20 15:01:12
>>383
gcc「には」ないだろうな。
385デフォルトの名無しさん:04/09/20 15:03:47
>>383 bits/atomicity.h
386デフォルトの名無しさん:04/09/20 15:04:35
>>385
さんくす子
387デフォルトの名無しさん:04/09/20 23:51:38
誰かネタふれ
388デフォルトの名無しさん:04/09/21 00:25:20
age
389デフォルトの名無しさん:04/09/21 00:29:28
んじゃネタ振るか

3.4.2release、テストでエラー多過ぎなんじゃボケ
リリース後10日で半減したけどそのクオリティはリリースの時に達成しとけよ
390デフォルトの名無しさん:04/09/21 00:32:07
3.4系はゴミ
391デフォルトの名無しさん:04/09/21 00:40:04
-ffast-math つけると何が変わるの?
392デフォルトの名無しさん:04/09/21 00:40:48
メーカーのサポートを受けられるかどうか
393デフォルトの名無しさん:04/09/21 00:46:47
>>389-390
事情通な人ならちょっと聞いてみたいんだが、4.0はもっとすごいのか?
394デフォルトの名無しさん:04/09/21 00:47:13
3.5系も>>370見るとやばめ
あれが出てからgccデベロッパが物凄い勢いで言い訳してたのは…
まぁ言い訳したくもなる結果だ罠

メモリ馬鹿喰い
コンパイル時間激増
性能停滞
セグフォ多数

まぁそれでも結構期待してたりするんですけどね、4.0
アーキテクチャごとの最適化とかc++は進歩してるっぽいし
今後のチューニングでどこまで改善出来るのか知りませんけど
395デフォルトの名無しさん:04/09/21 00:53:55
このスレで最新の安定安全バージョンは3.3.3と結論が出てるじゃないか。
396デフォルトの名無しさん:04/09/21 00:54:44
>>391
浮動小数点演算の精度が低性能になる。
397デフォルトの名無しさん:04/09/21 00:56:14
今から、gcc4.0のicc越えを期待しとく。
398デフォルトの名無しさん:04/09/21 00:57:02
あんまり期待しないでね。
icc9ももうすぐ出るから更に突き放されるだけだろう。
399デフォルトの名無しさん:04/09/21 00:58:30
速度
icc8>vc++7.1>gcc3.4>gcc3.3
標準準拠度
vc++7.1>gcc3.4>gcc3.3>icc8
400デフォルトの名無しさん:04/09/21 00:59:08
間違えた標準準拠度
vc++7.1>gcc3.3>gcc3.4>icc8

401デフォルトの名無しさん:04/09/21 00:59:51
間違えた標準準拠度じゃこれが間違ってる見たいじゃん。

正しい標準準拠度
vc++7.1>gcc3.3>gcc3.4>icc8
402gccer:04/09/21 00:59:57
手動でカスタマイズするから。いいもん〜だ。
403デフォルトの名無しさん:04/09/21 01:01:22
>>401
嘘だ。vcなんてM$仕様に拡張しまくりじゃん。
404デフォルトの名無しさん:04/09/21 01:02:01
gccなんてgcc仕様に拡張しまくりじゃん

という事は最強はicc?
405デフォルトの名無しさん:04/09/21 01:03:27
VC++7.1のboost100%の力は永遠に語り継がれるであろう。
406デフォルトの名無しさん:04/09/21 01:06:22
>>403
C++ の規格自体、処理系毎の拡張を許容する内容になってるでしょ。
407デフォルトの名無しさん:04/09/21 01:08:52
VC7.1使ってるけど、素直にtemplateが書けるってうれしいねえ。
408デフォルトの名無しさん:04/09/21 01:11:59
>>404
iccはイソテルアーキテクチャ依存。問題外
409デフォルトの名無しさん:04/09/21 01:12:59
gccでboost使おうとすると何が使えない?
410デフォルトの名無しさん:04/09/21 01:13:15
VC Userがなにげこのスレにいる。
411デフォルトの名無しさん:04/09/21 01:16:04
>>396
なんか微妙な表現だな。
412デフォルトの名無しさん:04/09/21 01:18:01
>>409
3.3.3なら
mpl,signals,test,type_triats

3.4系なら更に
spirit,python,function,assign

のテストで失敗します
413デフォルトの名無しさん:04/09/21 01:19:05
3.4系は
lambdaもtest通らないよ
414デフォルトの名無しさん:04/09/21 01:21:41
それはboostが間違ってる
415デフォルトの名無しさん:04/09/21 01:22:31
VC++7.1では通る
416デフォルトの名無しさん:04/09/21 01:34:33
ていうかicc-8の方がgcc-3.3.3より準拠度高いよ。
icc-7.1は酷かったけどな。
pythonはicc-8も通らないけどmplとかは通るからね。
417デフォルトの名無しさん:04/09/21 01:40:07
まあgccにも速くVC++7.1の領域に辿り着いて欲しいですな
418gcc:04/09/21 02:01:01
>>417
まぁね。ぼちぼち、やっていくよ。
419デフォルトの名無しさん:04/09/21 02:06:03
>>418
最近逆行してる気がするのは気のせい…?
binutilsは確実に進歩していってるけどgccは…
420デフォルトの名無しさん:04/09/21 02:12:00
VC++7.1厨が暴れているな
421デフォルトの名無しさん:04/09/21 02:13:37
↑かわいそうな香具師だな
422VC++7.1:04/09/21 02:18:01
キシャアアァ!!
423デフォルトの名無しさん:04/09/21 03:02:14
みんあRuby津じゃ得bsむもんfしお
Riubuy!
424デフォルトの名無しさん:04/09/21 03:51:20
gccでの不具合あったら報告お願いします。
そういう風にして育っていくと、gccとしても本望だと思います。
# 文句だけでなくね。:)
425デフォルトの名無しさん:04/09/21 15:45:13
#define LINE_MARKER_BAR(line_i) __asm__ __volatile__ ("# " __FILE__ ": " #line_i : : )
#define LINE_MARKER_FOO(line_s) LINE_MARKER_BAR(line_s)
#define LINE_MARKER LINE_MARKER_FOO(__LINE__)

としてソース内に LINE_MARKER; をまき散らしてから gcc -S するとウマー

...
  jal.printf
 #APP
  # fib.c: 30
 #NO_APP
  move  $2,$0
...

なおMacOS Xのgccで試したら #APP とかが付かなかった。
426デフォルトの名無しさん:04/09/21 19:57:44
>>425
そんな面倒をするくらいなら、gcc -S -fverbose-asm 結果の.sと、普通にgcc -c した.oを併用(併読)したほうがよくないか?
(後者は objdump -S に食わせるわけね)。
427デフォルトの名無しさん:04/09/21 21:49:26
なんでGCCの開発者たちはバージョンアップを急ぐの?
4〜5年くらい経ったらカーネルとかその時代に要求される機能とかがちょっとずつ変わってくるだろうけど、一年ちょっとじゃ。。。
安定させることに専念して欲しいかも
428デフォルトの名無しさん:04/09/22 00:11:32
>>426
gcc -S -fverbose-asm
だけでいいんじゃないの?
objdump -S foo.o
で何か有意義な情報が得られるのだろうか
429デフォルトの名無しさん:04/09/22 07:22:07
GCC2->GCC3のときみたいにGCC4に対応させるために
またスクリプトを書き換えなきゃならないのかな…
それは無しにしてほしいけど
430デフォルトの名無しさん:04/09/22 10:03:08
NFSマウントしたディレクトリーにカレントディレクトリーを移して
gcc使うと時々リンク時にエラーが出てしまいます。
-c つけてコンパイルだけにするとエラーは起きません。

エラーメッセージは
/usr/bin/ld: final link failed: 入力/出力エラーです
LANG=Cにすると
/usr/bin/ld: final link failed: Input/output error

gccのld以外の用途でこのような症状に遭遇していませんので
gcc特有の問題の気がします。良く分かりませんけど。
こういう現象に遭遇した人いますか?
431デフォルトの名無しさん:04/09/22 11:09:14
gccのld
432デフォルトの名無しさん:04/09/22 13:00:18
UNIX自体に問題がある

もう死滅してほしい
433デフォルトの名無しさん:04/09/22 13:01:31
なんか嫌な事でもあったのか?
434デフォルトの名無しさん:04/09/22 13:23:45
Plan9の予感。
UNIXのスペチャリストが、もっとPlan9の概念設計の
話し合いに参加すべきだと思うね。
435デフォルトの名無しさん:04/09/22 13:32:23
LinusはPlan9が設計的にミスを犯してるとかなんとか言ってたけど、
Linusはまだ批判してるだけいい方で、他の人達はPlan9を徹底的に
無視してる。これじゃパッドノウハウなんて言われても仕方ないね。
みんな自分のポジションだけが大事で、UNIXのこと、計算機の将来
なんてどうだっていいわけだ。
436デフォルトの名無しさん:04/09/22 13:55:00
コンソールの前に立ったらパスワードがいらないOSがいいの?
437デフォルトの名無しさん:04/09/22 13:59:22
>>436
ストールマンなら喜んで使いそうだ。
438デフォルトの名無しさん:04/09/22 14:17:39
>>430
gccのときに確実に再現する(gcc以外による)問題だからといって
gcc特有の問題とは限らないんでないの。普通はNFSを疑う。


439デフォルトの名無しさん:04/09/22 14:33:06
>>428
> objdump -S foo.o
> で何か有意義な情報が得られるのだろうか
ん、元質問者はCのソースコードと対比しながら読みたいみたいだったからさ。
440438:04/09/22 16:28:08
なんか意味不明だな。括弧の中はなかったことにして読んでくだされ。
441デフォルトの名無しさん:04/09/22 17:35:31
>>440
断る!!
442デフォルトの名無しさん:04/09/22 19:46:53
>>430
その英語のエラーメッセージでぐぐると53件ヒットする。
全体的に眺めてみただけだが、いろんなディストロ、OSで起きているようだ。
ときどきそういうことが起きるという症状は
NFSが関係している場合も関係してない場合もあるらしい。
53件もヒットしているのに、原因判明したという話は見付からない。
53件しかヒットしないとも言える。それだけ珍しい現象。
こんなカルトな問題を2chで聞いて教えてもらえるわけがないだろ。
ソース追って自分で調べてくれ。気になるから分かったら教えてくれ。
443デフォルトの名無しさん:04/09/22 19:47:58
>>439
それこそ gcc -S -fverbose-asm だけでいいんじゃないの?
444デフォルトの名無しさん:04/09/22 21:15:09
単純に-fverbose-asmを知らないか、使えない環境なんだろう
445デフォルトの名無しさん:04/09/22 22:33:52
>>426 > そんな面倒をするくらいなら、gcc -S -fverbose-asm 結果の.sと、普通にgcc -c した.oを併用(併読)したほうがよくないか? (後者は objdump -S に食わせるわけね)。

>>428 > gcc -S -fverbose-asm だけでいいんじゃないの? objdump -S foo.o で何か有意義な情報が得られるのだろうか

>>439 > ん、元質問者はCのソースコードと対比しながら読みたいみたいだったからさ。

>>443 > それこそ gcc -S -fverbose-asm だけでいいんじゃないの?

>>444 > 単純に-fverbose-asmを知らないか、使えない環境なんだろう
446デフォルトの名無しさん:04/09/22 22:45:55
>>444
つまり、426が「objdump -S」と組み合わせるという意味の無い提案をした理由は
426が-fverbose-asmを知らなったからだということですか。
常人には真似のできない推理に脱帽です。
447デフォルトの名無しさん:04/09/22 22:56:11
VC使ったほうが速いし小さいよ
448デフォルトの名無しさん:04/09/22 22:57:07
↑かわいそうな香具師だな
449デフォルトの名無しさん:04/09/22 22:57:28
>>430
disk fullとかquotaに引っかかったとかはどうだ。
450デフォルトの名無しさん:04/09/22 23:00:22
NFSだとうまく動かないって有名な話だろ。
451デフォルトの名無しさん:04/09/22 23:01:37
いまさらプロプラエタリに依存しようという気にもならない
452デフォルトの名無しさん:04/09/22 23:27:18
漏れの debian の msc (monoのC#コンパイラ)も、NFSの下で
動かすと、0バイトのファイルを吐いて死ぬ。
NFSサーバは、LinuxベースのNASです。悲しいです。
453デフォルトの名無しさん:04/09/22 23:44:13
今日の一言:初心者はVCで学び始めるより、gccで学んだ方が幸せになれる。
454デフォルトの名無しさん:04/09/22 23:50:57
え、どこどこ?
どこにそんなことかいてあるの?
455デフォルトの名無しさん:04/09/22 23:51:47
>>453
おれでも、
さすがにそれはない
と思う。
456デフォルトの名無しさん:04/09/22 23:52:00
>>453の脳内
457gcc:04/09/23 00:37:48
>>453
教え役がいないと嫌われちゃうかも
458デフォルトの名無しさん:04/09/23 01:47:31
初心者はちょっとだけ勉強してすぐ諦めてやめる可能性が高いので
最初は無料コンパイラーで勉強を始めるのがいいかも。
昔はLSI-Cの体験版がそういう用途で人気だった。
459デフォルトの名無しさん:04/09/23 01:52:19
っていうかgccマスターしちゃえばアーキテクチャ変えても
それなりに生きていけないか?

ところでgcjのGUIフロントエンドって無なかったっけ?
460デフォルトの名無しさん:04/09/23 02:36:08
正直。gccはあまりにも当り前に使えるので
誰もありがたみがわかないんじゃないのかな。
無くなると(開発が滞ると)それなりに痛いのではないだろうか。(少なくとも自分にとっては)
461デフォルトの名無しさん:04/09/23 02:42:01
別のコンパイラ使うから関係ねーよとかいいつつ
実はgcc拡張に依存したコード書きまくってた香具師とか大発生しそう。
462デフォルトの名無しさん:04/09/23 02:59:20
adaとか使用している方いますか?
自分、adaは使用した事無いですけど、
いったいどんな風に使用されてるのかなと疑問があったので。
463デフォルトの名無しさん:04/09/23 03:05:15
アメリカ軍で使われてるんじゃないの?
464デフォルトの名無しさん:04/09/23 03:58:57
ペンタゴンではこのまえの集団テロから使わなくなりました
465デフォルトの名無しさん:04/09/23 09:50:34
>>464
詳しく
466デフォルトの名無しさん:04/09/23 10:26:56
>>465
つまらない奴だな
467デフォルトの名無しさん:04/09/23 10:47:56
adaを使用したアプリで防犯してるんですかね。
468デフォルトの名無しさん:04/09/23 11:16:13
>>462
こんなの見つけた。 主に組み込系ですよね。 飛行機、ロケット、兵器の制御。
ボーイング777のプログラムは全てAdaで書かれているそうだ。
http://www.seas.gwu.edu/~mfeldman/ada-project-summary.html

469デフォルトの名無しさん:04/09/23 11:20:36
それが仇になって電波ジャックされると
470デフォルトの名無しさん:04/09/23 11:40:37
日本では、あまり使用例無いけど(っていうか使ってる奴いるんだろうか?)、
海外(米国)では使われてるんですな。
471デフォルトの名無しさん:04/09/23 12:05:06
>>444
ホームラン級の(ry

472デフォルトの名無しさん:04/09/23 12:06:50
>>443
なぜそう思うか、両方の出力を貼って説明してみろ
473デフォルトの名無しさん:04/09/23 12:58:51
>>461
GCCは別の意味でポータブルだからな
474デフォルトの名無しさん:04/09/23 15:34:03
>>444
もしそうだったら-fverbose-asmの紹介をしないと思うのだが…
475デフォルトの名無しさん:04/09/25 03:14:14
「愚者は知識に学び、賢者は経験に学ぶ」
476gcc:04/09/25 14:19:11
>>475
ソレハ ワタシニハ インプット サレテマセン
477デフォルトの名無しさん:04/09/25 14:24:55
「患者は看護婦に学ぶハァハァ」
478デフォルトの名無しさん:04/09/25 14:42:08
「イククは、グシシに学ぶ」
479デフォルトの名無しさん:04/09/25 16:10:48
C99と'C++が想定したC'は非互換だと思うんですが
どうクリアする気なんでしょうね?C99の上にSTL載せるのかな…
480デフォルトの名無しさん:04/09/25 16:47:26
>>479
コンパイラオプション
481デフォルトの名無しさん:04/09/26 00:17:36
>>480
C++の言語仕様が C + OOP拡張 であることが真でなくなったことを言ってると思う。
482デフォルトの名無しさん:04/09/26 00:27:04
>>481
言っている意味がわかりませんが、C++はC89の上位互換でもありません。
483デフォルトの名無しさん:04/09/26 00:51:41
そもそもCも上位互換を保持して改訂されているわけじゃないし…
484デフォルトの名無しさん:04/09/26 01:33:10
下位互換だろ.
485デフォルトの名無しさん:04/09/26 15:14:11
g++でコードをコンパイルしようとしたら、「ld: cannot find -lstdc++」と出るのですが、
何が原因でしょうか?
ちなみに、gccでCのコードをコンパイルするのには成功しました。
OSは、Windows XPです。
486デフォルトの名無しさん:04/09/26 15:30:30
>>485
cygwinですか?
487デフォルトの名無しさん:04/09/26 15:47:18
>>486
そうです。
488デフォルトの名無しさん:04/09/26 16:02:48
たぶんあなたに悪霊が取り付いているからです
489デフォルトの名無しさん:04/09/26 16:05:11
>>487
念のため聞きますがg++でのコンパイルはどんなコマンドを打ってますか?
490あぼーん:あぼーん
あぼーん
491デフォルトの名無しさん:04/09/26 16:14:09
>>489
g++ -O2 -o test.exe test.cpp
492デフォルトの名無しさん:04/09/26 16:30:23
>>491
$ g++ -v -O2 -o test.exe test.cpp
で-Lのパスを確認してみるとか
493デフォルトの名無しさん:04/09/26 20:58:11
適当に書いてVC7.1で通ってたコードを
試しにg++(3.3/3.4)でコンパイルしたら

explicit specialization in non-namespace scope

キターっていうのはこういうときに使うのかな・・・
494デフォルトの名無しさん:04/09/26 21:53:11
モナオ
495デフォルトの名無しさん:04/09/27 02:10:18
>>493
そういうエラーの出る「VC7.1で通ってg++(3.3/3.4)で通らないコード」
のサンプル出してみてよ
496デフォルトの名無しさん:04/09/27 02:16:35
VCは、規格ではエラーになるべきコードなのにならないことがあるからなあ。
497デフォルトの名無しさん:04/09/27 02:20:21
VCダメダメ、
498デフォルトの名無しさん:04/09/27 09:16:30
>>495
エラーメッセージ読めないの?
499デフォルトの名無しさん:04/09/27 17:10:29
C99って何ですか?
500デフォルトの名無しさん:04/09/27 17:12:30
99回目のセックス
501デフォルトの名無しさん:04/09/27 17:18:54
502デフォルトの名無しさん:04/09/27 22:44:31
試せ。
Snapshot gcc-3.4-20040924
tp://gcc.gnu.org/pub/gcc/snapshots/3.4-20040924/
503デフォルトの名無しさん:04/09/28 03:13:28
再び、-fomit-frame-pointer論争を!
504デフォルトの名無しさん:04/09/28 06:45:43
('A`)マンドクセ
505デフォルトの名無しさん:04/09/28 07:07:54
いや、そう言わずに。
506デフォルトの名無しさん:04/09/28 09:24:13
これ買おうかな。

GCC: The Complete Reference
ttp://www.amazon.com/exec/obidos/tg/detail/-/0072224053/
507デフォルトの名無しさん:04/09/28 12:17:48
>>506
訳本の計画はないの?
508デフォルトの名無しさん:04/09/28 12:50:25
>>507
待てない。出るのに半年から1年はかかるんじゃねーか?
509デフォルトの名無しさん:04/09/28 16:15:38
>>508
2年前の本なわけだが。
510デフォルトの名無しさん:04/09/28 18:12:06
gdbでpthreadのデバッグやろうとしてるんですけど、
非常にタイミング命の処理をデバッグしたいんです。
けど、gdbではうまく処理できてるようにみえるんですけど。
-gをはずすとたまに不正な値を出すんです。
gdbをするとうまくいき、デバッグ情報はずすとダメになる。
どうしたらよいでしょうか?
511デフォルトの名無しさん:04/09/28 18:13:20
プログラムがおかしいんじゃねえの
512パラドックス マン:04/09/28 18:15:41
>>510
それは、「シュレーディンガーの猫」だな。
513デフォルトの名無しさん:04/09/28 19:02:17
>511
ソース見てみないとなんとも
514デフォルトの名無しさん:04/09/28 20:06:20
自分で状態遷移書いてみろよ。
それと単スレッド毎のデバッグはしたのか?

>gdbをするとうまくいき、デバッグ情報はずすとダメになる。

このケースはメモリ破壊している事がほとんど。
515デフォルトの名無しさん:04/09/28 22:33:43
>>510
Heisenbug とも言う. (トレースによって再現状況の変わるバグ)
516デフォルトの名無しさん:04/09/28 22:35:34
>>510
メモリリークを検出できるライブラリを使ってみたらどう?
517デフォルトの名無しさん:04/09/28 22:39:47
>>510
その手のバグを捜すには簡単なリングバッファを作ってそこに要所要所で重要な
状態を記録する。 あとはASSERTてんこもり。 ASSERTしたところでgdbで
リングバッファに保存された状態遷移をながめてバグを同定する。
518デフォルトの名無しさん:04/09/29 00:14:59
>>514
> >gdbをするとうまくいき、デバッグ情報はずすとダメになる。
>
> このケースはメモリ破壊している事がほとんど。

マルチスレッドなんだから、リソース競合も大いにあるでしょ。

> 自分で状態遷移書いてみろよ。

これはその通り。
519デフォルトの名無しさん:04/09/29 16:35:55
>>510
Helgrind
520デフォルトの名無しさん:04/09/29 23:54:43
GCC-3.3.5がそろそろ出るぞ!
Are you ready?
521デフォルトの名無しさん:04/09/30 00:57:53
through
522デフォルトの名無しさん:04/09/30 03:12:08
しかも華麗に。
523デフォルトの名無しさん:04/09/30 08:49:52
そ、そんな。ひどい。
524デフォルトの名無しさん:04/09/30 09:44:48
>>510
Race conditionが発生してると思われる。
525デフォルトの名無しさん:04/09/30 10:03:36
イィィィヤッホォォォォオオオオウゥ!!
526デフォルトの名無しさん:04/10/01 13:35:09
>>525
なんなんだよ、うるさいなぁ。
527デフォルトの名無しさん:04/10/01 13:38:45
質問があります。
$ make love
ってコマンドを打ったんですが、何度実行してもForkしませんでした。
どうしてでしょうか?
自分のマシンがVirusにでも感染してるんでしょうか?
よろしくお願いします。
528デフォルトの名無しさん:04/10/01 14:25:03
フォアダイスだな
529デフォルトの名無しさん:04/10/01 14:42:47
>>527
トロイだな。実際には別の奴と実行している。
530デフォルトの名無しさん:04/10/02 00:57:31
gccをDLしようと思ったのですが、どれも20MBぐらいのファイルなのですが、
これで大丈夫なのでしょうか?
pathの設定でつまずいてしまいました(汗
531 ◆FIcNi4f8js :04/10/02 01:16:05
× つまずく
○ つまづく
532デフォルトの名無しさん:04/10/02 01:32:16
3.3.5がもうミラーされてる。今回もアナウンスメントなしなのかな?
533デフォルトの名無しさん:04/10/02 05:54:29
はやく3.5でないかな〜
534デフォルトの名無しさん:04/10/02 07:23:46
一生でないと思うよ
535520:04/10/02 08:42:16
>>532
だから言ったではないか。

>>533
つ ftp.iij.ad.jp/pub/gcc/releases/gcc-3.3.5/
536デフォルトの名無しさん:04/10/02 09:20:54
537デフォルトの名無しさん:04/10/02 09:21:39
538デフォルトの名無しさん:04/10/02 09:22:38
539520:04/10/02 11:16:32
>>533
あっ3.5だったのか。orz
540デフォルトの名無しさん:04/10/02 18:36:15
>>531
つまずく
で合ってる。
541ハイフンエムぷに:04/10/02 18:39:21
-mpniオプションは、オタ専用のオプションですか?
542デフォルトの名無しさん:04/10/02 22:24:10
`-mpni' is deprecated. Use `-msse3' instead.
543デフォルトの名無しさん:04/10/03 13:05:33
本当に3.3.5はここの住人にスルーされたのか?
544デフォルトの名無しさん:04/10/03 16:48:11
このスレの住人は、shyなんだよ。
545デフォルトの名無しさん:04/10/03 16:52:31
燃焼系〜、燃焼系〜

  orz
 orz orz
orz orz orz
546デフォルトの名無しさん:04/10/03 16:54:21
とりあえず、3.3.5をmakeだけはした。
次は↓がmake installして使用状況を報告するべし。
547デフォルトの名無しさん:04/10/03 18:13:45
GCC4まだー?
VCは7になってるんだから
早くしないと追いつかないよー(^^)
548デフォルトの名無しさん:04/10/03 18:49:12
gcc 2005、いずれはgcc VSOPにしますから。
549rms:04/10/03 19:54:02
VCとは比べんな!
Win厨は逝ってよし。
550デフォルトの名無しさん:04/10/03 20:49:24
比較もされなくなったらお終いだと思うよ(ゲラ
551デフォルトの名無しさん:04/10/03 20:52:37
そういえば、次号のC MAGAZINEってコンパイラの最適化術があるね。
どうでもいいことだが。
552デフォルトの名無しさん:04/10/03 20:54:00
>>550
そこ、笑うとこですか?
553デフォルトの名無しさん:04/10/03 21:25:29
gcc3って結局使われたんだろーか
gcc2.95ってところが結構多そうだし

kdeだとかのオモチャじゃなくてビジネス系で、ね
554デフォルトの名無しさん:04/10/03 21:48:52
ビジネスでgcc使うところは長くないな
555デフォルトの名無しさん:04/10/03 21:57:03
Appleか
556デフォルトの名無しさん:04/10/03 22:04:59
PS2
557デフォルトの名無しさん:04/10/03 22:40:54
あと組み込みとか

俺はゲーム屋だけど gcc 3.x 系列使ってます。もう gcc 2.9x だと
コンパイル通らんコードになってる。
558デフォルトの名無しさん:04/10/03 22:56:25
>>550
w
559デフォルトの名無しさん:04/10/03 23:09:35
>>553
冗談だろ…
560デフォルトの名無しさん:04/10/03 23:19:03
Red Hat Enterprise Linux 3はgcc3だぞ
2.1まではgcc2.96だったけど
561デフォルトの名無しさん:04/10/03 23:36:22
非gcc厨が、気になってのぞきに来るスレはここでつか?
562デフォルトの名無しさん:04/10/04 01:12:16
RedHatってあのオモチャIT企業ご用達のOSね
563デフォルトの名無しさん:04/10/04 01:19:50
>>562
最近は動作環境に RedHat 指定してくるベンダもある。オモチャっつーか
用途によりけりって感じだが。

組み込みの開発環境に汎用機持ってくる馬鹿はいないわけで。
564デフォルトの名無しさん:04/10/04 01:24:57
>>562
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ   >オモチャIT企業ご用達のOS
 彡¤   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
565デフォルトの名無しさん:04/10/04 05:21:31
linuxのコマンドをプログラム内から実行する方法を教えてください 。
566デフォルトの名無しさん:04/10/04 07:56:47
system()
567デフォルトの名無しさん:04/10/04 09:06:38
popen()
568デフォルトの名無しさん:04/10/04 09:08:22
普通はforkしてexecveです
569デフォルトの名無しさん:04/10/04 09:11:20
>>568
それは、用途にもよらないか?
570デフォルトの名無しさん:04/10/04 09:44:22
Snapshot gcc-4.0-20041003 release.
571デフォルトの名無しさん:04/10/04 10:27:49
>>562
You are painfully for proprietary software.
Now, Let's use a gcc!!
572デフォルトの名無しさん:04/10/04 13:16:14
$ ecc -O2 main.cpp
573デフォルトの名無しさん:04/10/04 15:09:26
$ nova -O3 translate.c
574デフォルトの名無しさん:04/10/04 15:48:40
>>573
nova: Command not found.
575デフォルトの名無しさん:04/10/04 17:41:15
$ geos -Os translate.c
576デフォルトの名無しさん:04/10/04 18:07:46
$ aeon -O translate.c
577デフォルトの名無しさん:04/10/05 04:15:31
コンパイラ比較
良い <----------------------------------------------> 悪い
gcc >>>>>>>> ||越えられない壁|| >>>>>> icc or ecc >>>> VC
578デフォルトの名無しさん:04/10/05 09:30:34
晒しage
579デフォルトの名無しさん:04/10/05 09:58:08
>>577
逆ですか?
580デフォルトの名無しさん:04/10/05 12:32:06
>>579
Linuxソースへの対応だよ。きっと
581デフォルトの名無しさん:04/10/05 16:12:22
gccの使いやすさもさることながら
縁の下の binutils の使い勝手も忘れぬよう。
582デフォルトの名無しさん:04/10/05 16:16:37
gccに特許侵害の疑い
http://www.itmedia.co.jp/enterprise/articles/0410/05/news016.html

VC++はもうMSが金払ったから大丈夫。
583デフォルトの名無しさん:04/10/05 16:23:33
>>582
コンパイラのどの技術がコダックの特許に抵触するのか解説きぼん


というのはさておき、ま〜たやっかいなネタだのう。
584デフォルトの名無しさん:04/10/05 17:21:03
特許ゴロ化した企業は風評を落とし、売り上げも落とし、信用も落とすという風潮ができてくれることを願わんばかり。
585デフォルトの名無しさん:04/10/05 18:52:36
>>581
はーい。先生。
586デフォルトの名無しさん:04/10/05 19:26:20
GIFが去ったら今度はオブジェクト指向かよ。
587デフォルトの名無しさん:04/10/05 19:31:35
以下で正しいでつか?
資本主義社会=地雷特許で埋めつくされた社会
588デフォルトの名無しさん:04/10/05 20:15:31
10メートル走るごとに殴りあうのが正しい競争社会です
この世界は万人が幸せに生きられるようには創られていないのです。
589デフォルトの名無しさん:04/10/05 20:19:40
Ruby差宇じぃy!!!!!!!!
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>GCCCCCCCCC
590デフォルトの名無しさん:04/10/05 20:32:13
>>587
そうか、だから現実って見た目以上に窮屈な世界なのか。
591デフォルトの名無しさん:04/10/05 20:33:02
>>590
俺は仮想現実を好む。
592デフォルトの名無しさん:04/10/05 20:36:20
このスレの内容に戻って、
-mregparmを使えば関数コールを速くすることができるんですか?
例えば、-mregparm=4とか。
ABIに依存しますが妥当な値を入れれば高速化できるかな。
593デフォルトの名無しさん:04/10/05 20:56:48
(・ω・)Kodakなんかさっさと潰れればいいのに。
594デフォルトの名無しさん:04/10/05 21:05:40
( ´・ω・)むしろ、潰れそうだからゴロ化したのかもしれない。SCOのように
595デフォルトの名無しさん:04/10/05 21:09:28
そのときにはMSが買いとって自社以外の全ての会社やソフトウェアプロジェクトから
徴収を開始すると思われ (>_<)
596デフォルトの名無しさん:04/10/05 21:36:57

djgppって、今でも開発が継続されていますけど、WindowsXP上で使う限りにおいて、MinGWと使い勝手に違いはありますか?
597デフォルトの名無しさん:04/10/05 21:55:03
16bitだったり
598GNU's world:04/10/05 22:44:40
The world of GNU is large.
And the actual world is narrow.

FSF/UNESCO Free Software Directory
ttp://directory.fsf.org/
599デフォルトの名無しさん:04/10/05 22:58:25
32bitじゃないの?
ただMMX使うと落ちたような気がした。
movq %mm0, %mm0とか書くだけでも。
600デフォルトの名無しさん:04/10/05 23:04:16
糞スレで600get
601デフォルトの名無しさん:04/10/05 23:09:15
なぜ DJGPP を使わないのですか?
ttp://www.sixnine.net/cygwin/translation/faq/faq_3.html#SEC123
602デフォルトの名無しさん:04/10/05 23:33:27
>>601

djgppはWin32APIが使えないってことですかね。
603デフォルトの名無しさん:04/10/06 00:34:46
>>592
スタックをさわらなくなるので、大概速くなりますな。
まあ3あたりが無難な所ではないかと。
604デフォルトの名無しさん:04/10/06 00:40:14
>>592
指定したマシンだけで動かすのであれば、
デフォルトで設定していてもいいのでは? > mregparm
605デフォルトの名無しさん:04/10/06 01:16:08
平たく言うと強制fastcall化オプション?
606デフォルトの名無しさん:04/10/06 02:03:29
コンパイラに対しての強制フェラチオですね
歯があたって痛いかもしれません
607デフォルトの名無しさん:04/10/06 02:03:53
イマラチオっていうんですよそれ
608デフォルトの名無しさん:04/10/06 02:17:36
>>592
x86では、syscall/sysret(そのCPUが対応してれば)を使うのか?
609デフォルトの名無しさん:04/10/06 02:29:12
>>608
それはOS側に依存
610608:04/10/06 02:32:55
>>609
そうだった。orz
611デフォルトの名無しさん:04/10/06 02:56:43
>>602
基本的にDOSのファンクションを使ったライブラリとかしかないだろうし、
メモリ空間に制限もあったような?使った事が無いのでよく知りません。
頑張ればGUIなプログラムも作れるかもしれないが、そんなことするなら
mingwあたりを使った方が正解でしょう。
612デフォルトの名無しさん:04/10/06 03:05:55
NT系での俺的評価
mingw > RSXNT > djgpp
ただコンソールアプリを作るときはRSXNT.
613デフォルトの名無しさん:04/10/06 04:29:05
"-O2 -O3" または、"-O3 -O2"と指定した場合どうなりますか?
614デフォルトの名無しさん:04/10/06 04:31:06
それでやって-fverbose-asm -Sして、出来た*.sの先頭を見ればいいじゃん。
615デフォルトの名無しさん:04/10/06 16:09:14
>>613
manより
>複数の -O オプションを指定した場合は、レベル番号の有無に関わらず、最後に指定したものが有効になります。
616デフォルトの名無しさん:04/10/06 16:50:17
-fdelayed-branch と -fschedule-insns の実例が見てみたいのですが、適当なコード例はないでしょうか?

-fdelayed-branch
If supported for the target machine, attempt to reorder instruc-
tions to exploit instruction slots available after delayed branch
instructions.

-fschedule-insns
If supported for the target machine, attempt to reorder instruc-
tions to eliminate execution stalls due to required data being
unavailable. This helps machines that have slow floating point or
memory load instructions by allowing other instructions to be
issued until the result of the load or floating point instruction
is required.
617デフォルトの名無しさん:04/10/06 17:21:47
さぁ、買え!

An Introduction to GCC
  by Brian J. Gough, foreword by Richard M. Stallman
  ISBN: 0-9541617-9-3
ttp://www.network-theory.co.uk/gcc/intro/
ttp://www.amazon.com/exec/obidos/tg/detail/-/0954161793/


The Definitive Guide to GCC
  by William von Hagen, Kurt Wall
  ISBN: 1-59059-109-7
ttp://www.apress.com/book/bookDisplay.html?bID=187
ttp://www.amazon.com/exec/obidos/tg/detail/-/1590591097/
618デフォルトの名無しさん:04/10/06 17:56:07
おにいちゃん
gcc3.4.2どないしたん?
619デフォルトの名無しさん:04/10/06 18:27:40
>>616
gcc 3.3.5のソースを見てみたが、
-fdelayed-branchは、g77とM88Kアーキテクチャしか使われてない??

-fschedule-insnsに関しては、config/i386/i386.c内に以下を見つけた。
-O2以上だと無効にされるみたい。

void
optimization_options (level, size)
int level;
int size ATTRIBUTE_UNUSED;
{
/* For -O2 and beyond, turn off -fschedule-insns by default. It tends to
make the problem with not enough registers even worse. */
#ifdef INSN_SCHEDULING
if (level > 1)
flag_schedule_insns = 0;
#endif

/* The default values of these switches depend on the TARGET_64BIT
that is not known at this moment. Mark these values with 2 and
let user the to override these. In case there is no command line option
specifying them, we will set the defaults in override_options. */
if (optimize >= 1)
flag_omit_frame_pointer = 2;
flag_pcc_struct_return = 2;
flag_asynchronous_unwind_tables = 2;
}
620デフォルトの名無しさん:04/10/06 18:37:42
>>619
サンスコ。

では、何が起きるか見るときは g++ -O0 -fschedule-insns -S と g++ -O0 -S で比較するのがよさそうですね。
でもフラグの有無で変化があるコードが書けない・・・

621デフォルトの名無しさん:04/10/06 18:48:58
>>620
適当なソースでコンパイルしてdiffれば。
622デフォルトの名無しさん:04/10/07 00:58:07
3.3.5を使ってみたよ v(^-^=)
623デフォルトの名無しさん:04/10/07 01:05:14
>>622
よく締まった?
624デフォルトの名無しさん:04/10/07 01:33:37
-fschedule-insnsでgccのmlを検索してみたら、
ia32では使うな、動かない
理由はレジスタが少ないからとか?
>>620がia32でないことを祈る。
625デフォルトの名無しさん:04/10/07 01:42:08
>>624
619のコード中のコメントでガイシュツぽ
626デフォルトの名無しさん:04/10/07 01:50:58
コメントは見たけど、でも、>>620は-O0でやるみたいだったので気になった。
2.95の頃から注意はされてるけど、bug報告が多い-fschedule-insnsオプションであった。
627デフォルトの名無しさん:04/10/07 02:02:43
成る程
628デフォルトの名無しさん:04/10/07 02:03:38
>>616
ターゲットは?

>>619
-fdelayed-branchは、sparcでも使われてる。

i386 で -O2 以上の場合、デフォルトでは無効なだけで -fschedule-insns と指定すれば有効。

>>620
>>619 にサンスコってことは、>>616 のターゲットは i386 だったんですか?
i386 では遅延分岐がないので -fdelayed-branch の実例は見れない。

-O0 では -fschdule-insns は無効。
-O0 より上じゃないとだめ。

>>624
最適化にどの程度寄与するかは別にして、動くことは動く。
実例が見たいってだけなら別に ia32 でもいいんじゃない?
629デフォルトの名無しさん:04/10/07 04:41:09
gccのインクリメンタル・コンパイル機能、使ってる人、います?
プリ・ヘッダコンパイルのことですが。

実際に使ってる人の意見だとか様子、ちょっと聞いてみたいです
630デフォルトの名無しさん:04/10/07 05:21:43
釣りか?
自分で使ってみれば?(・з・)
631デフォルトの名無しさん:04/10/07 08:13:40
自分で、試すのは、面倒なんです
632デフォルトの名無しさん:04/10/07 09:55:17
>>631
g++ ヘッダーファイル[enter]でpchが出来る。
例えばSTLのファイルに食わせてコンパイル時間が変化するかどうか試して
みればよい。

俺の場合は少しコンパイル時間が速くなったが、元々CPU/メモリが十分な
速度を持っているせいかどうか、大した違いはなかった。
633デフォルトの名無しさん:04/10/07 12:04:04
すごく…おおきいです
634デフォルトの名無しさん:04/10/07 17:01:03
ごみ集めについて力説しているページとか抗議死霊を後会している所を教えてください
635デフォルトの名無しさん:04/10/07 17:07:36
636デフォルトの名無しさん:04/10/07 17:32:34
いいえ♥
637デフォルトの名無しさん:04/10/07 18:02:13
>>634
それはgccに関係のあるっていうこと前提にして言っているのか?
638デフォルトの名無しさん:04/10/07 18:05:53
>>634
boehm gcのページにリンクがあるよ。
639デフォルトの名無しさん:04/10/07 19:21:29
GCC&LDでCRT等をリンクせずにバイナリを作りたいのですが
dataセクションの初期化コード(static変数等)が消えちゃいます
CRTをリンクせず 変数の初期化コードを生成&リンクする方法はないでしょうか
640デフォルトの名無しさん:04/10/07 19:26:45
naideath!
641デフォルトの名無しさん:04/10/07 20:16:44
変数の初期化コードの意味がよくわからないけど、
リンカーのスクリプトを自前で用意すれば、何とかなると思うよ。
642デフォルトの名無しさん:04/10/07 20:49:46
>>639
.bss や .ctor ではなく .data セクションの初期化なの?
643デフォルトの名無しさん:04/10/07 23:56:50
Cコンパイラを使っていて、きちんとヘッダのディレクトリにパスを通したつもりなのに、
"No rule to make target "hoge.h" とか出てきてしまって、リンカーが止まってしまうんですけど、
こんなことってありますか?
念のためにmakefileを見ると、ちゃんと通っているのに、どうしても"hoge.h"だけ拾ってくれない。
"foo.h"なんかは拾ってくれるのに。
644デフォルトの名無しさん:04/10/08 00:06:14
>>643
> Cコンパイラを使っていて、きちんとヘッダのディレクトリにパスを通したつもりなのに、
パスを通した、って環境変数のことかな?それなら、それだけじゃだけじゃだ
めだよ。絶対パスをMakefileに書くか、VPATHを通すかしないと。
645元GC屋さん:04/10/08 00:15:17
646元GC屋さん:04/10/08 00:16:26
あ、Common Lispスレに言って聞いた方が詳しい人がいるよ、GCは。
647デフォルトの名無しさん:04/10/08 01:09:54
>>644
> パスを通した、って環境変数のことかな?それなら、それだけじゃだけじゃだ
> めだよ。絶対パスをMakefileに書くか、VPATHを通すかしないと。
>
gccベースの統合開発環境なんだけど、そこでパスを指定してあげると、
Makefileにも反映されるという仕掛けになっていて、
実際、出来上がったMakefileを読んでみると、ちゃんと-I../incとかなっているんだけど。。。
しかも、一部のヘッダだけがいくらやっても、弾き飛ばされてしまう。
どうなっているんだ〜
648デフォルトの名無しさん:04/10/08 01:17:01
苦し紛れに makedepend
649デフォルトの名無しさん:04/10/08 01:32:16
MM
650デフォルトの名無しさん:04/10/08 02:57:30
makeの話ならこっちでやらないか?
make makes many problems
http://pc5.2ch.net/test/read.cgi/tech/1029599472/
651デフォルトの名無しさん:04/10/08 02:58:23
>647
とりあえずおまいさんが色々と勘違いしているに1票。
No rule to make target ... って怒ってるのはリンカじゃなくて make だろ?
Makefile 中にある -I../inc はコンパイラに対する指定だろ?
>644 の言うとおり絶対パス書くか、VPATH を通すべし。
652デフォルトの名無しさん:04/10/08 07:57:36
653デフォルトの名無しさん:04/10/08 13:10:04
>643
make は"hoge.h を作る「ルール」がないんだ"って言ってるような...
パス云々以前のような気がするけど..
>650 道意
654デフォルトの名無しさん:04/10/08 13:57:11
>>653
ちゃう。パスの問題。
hoge.hが材料になってるのに見つけられないからmakeが作ろうとしてる。
でもそもそもhoge.hは作る必要は無いファイル。
見つけられないだけであるファイルだから。

eclipseみたいなmakefileを自動で生成する統合開発環境の使い方が分からないのだと思うので、
・統合開発環境のマニュアルを読む
・統合開発環境の名前+vpathでぐぐる
・その統合開発環境の為のスレを2chで探す
・無ければスレ立てるまでもない質問スレへ
って感じじゃないか。
655デフォルトの名無しさん:04/10/08 14:02:03
>>647
hoge.h をコンパイルしているに1票
656デフォルトの名無しさん:04/10/08 15:04:16
>>654
統合環境が便利なのか便利でないのかわからなくなってまいりました。ってオチでつか?
657デフォルトの名無しさん:04/10/08 16:14:27
>>656
手でmakefile書けばすぐに解決出来るのになー、みたいな。
使い方さえ分かれば便利なんだと思うよ。
とりあえずマニュアル嫁>643
658653:04/10/08 18:37:19
>>654
なるほど。勉強になりました。
659デフォルトの名無しさん:04/10/08 23:18:59
>>654
同じく知らなかった。
makeは、なければruleに従ってtargetをmakeしようとするんだな

>>651
hoge.hをインクルードして、オブジェクトファイルを作るのは、コンパイラの仕事だよなw
リンカーはオブジェクトをリンクするんだから
660デフォルトの名無しさん:04/10/09 03:18:24
>>629
プリコンパイルヘッダーの正しい使い方を教えて下さい。
だったら、よかったのに・・・
661デフォルトの名無しさん:04/10/09 14:19:54
I used gcc 3.4.2.
Oops!!
662デフォルトの名無しさん:04/10/09 17:01:49
I used gcc 3.3.5.
(^o^)
663デフォルトの名無しさん:04/10/09 19:32:00
lol.
664デフォルトの名無しさん:04/10/09 22:38:19
out to lunch = OTL
665デフォルトの名無しさん:04/10/10 01:01:29
質問させてください。
gccで作成したオブジェクトファイルをバイナリー化するツールはご存じありませんでしょうか。
目的は、多数のデータがあるソースファイルがあり、
これまでは普通にリンクして使用していたのですが、
訳あって、データ部を後からファイルで読み込む必要が出てきました。
そこで、単純にオブジェクトをバイナリー化できないかと思いまして。
よろしくお願い致します。
666デフォルトの名無しさん:04/10/10 01:19:45
$ objdump -t foo.o
$ objdump -s foo.o
から自分で作って。
667デフォルトの名無しさん:04/10/10 01:58:28
>>665
今までリンクしてたんなら、シンボル情報をどう扱うかが問題にならない?
668デフォルトの名無しさん:04/10/10 10:48:51
>>665
環境は? UNIX とか Win32 ならダイナミックリンクするって手がある。
669デフォルトの名無しさん:04/10/10 16:29:46
配列で持っていたデータを外から読みたいつーことじゃないの?
生バイナリならobjcopy -obinaryで作れるが。
670デフォルトの名無しさん:04/10/10 17:24:44
GLIBCをobjdump -d で眺めていたら、
10580d: eb e9 jmp 1057f8 <realpath+0x28>
10580f: 00 55 b8 add %dl,0xffffffb8(%ebp)
105812: ff (bad)
105813: ff (bad)
105814: ff (bad)
105815: ff 89 e5 56 ba ff decl 0xffba56e5(%ecx)
10581b: ff (bad)
10581c: ff (bad)
10581d: ff 83 ec 0c 8b 75 incl 0x758b0cec(%ebx)
105823: 08 8b 8e a4 00 00 or %cl,0xa48e(%ebx)

このような箇所がありました。この"(bad)"っていうのはなんでしょうか?
なにか意味があるんですか?
671デフォルトの名無しさん:04/10/10 18:05:50
>>670
単なるinvalid instruction。
データ部分かなにかを強引に逆アセンブルしてるだけ。
672デフォルトの名無しさん:04/10/10 18:40:42
>>671
ということはこれはNOP(0x90)と同じという意味なんですかね。
673デフォルトの名無しさん:04/10/10 18:53:41
>>672
違う
普通は実行すると例外が発生する
# gccが.textセグメントに定数埋め込んでるだけだと思うので普通は実行されないが
674デフォルトの名無しさん:04/10/10 20:07:19
>>673
add命令の後に実行されるようにみえるが…
675デフォルトの名無しさん:04/10/10 20:19:05
10580fから逆汗してるからそう見えるんでしょ?
105810から逆汗すると別の命令になるんじゃ?
676デフォルトの名無しさん:04/10/10 20:44:28
>>674
add命令のオペランドは何か分かってる?
677デフォルトの名無しさん:04/10/11 00:08:49
>>675 が正解
105810:
55           push ebp
b8 ff ff ff ff     mov eax,0ffffffffh
89 e5         mov ebp,esp
56           push esi
ba ff ff ff ff     mov edx,0ffffffffh
83 ec 0c       sub esp,0ch
8b 75 08       mov esi,dword ptr [ebp+8]
8b 8e a4 00 00 00 mov ecx,dword ptr [esi+000000a4h]
678デフォルトの名無しさん:04/10/11 07:29:56
ということはこれはobjdump(libopcode.so)のバグということでいいんでしょうか?

Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
・・・・
[10] .plt PROGBITS 00014be4 014be4 000140 04 AX 0 0 4
[11] .text PROGBITS 00014d30 014d30 0f5a60 00 AX 0 0 16
[12] __libc_freeres_fn PROGBITS 0010a790 10a790 000d4d 00 AX 0 0 16

ELFヘッダの内容を見れば、.textセクションの範囲内でした。
679デフォルトの名無しさん:04/10/11 08:12:30
バグとは言い切れんかもな。
完全なdisassembleは決定不能問題だから。
680デフォルトの名無しさん:04/10/11 08:13:48
Symbol table '.dynsym' contains 2172 entries:
Num: Value Size Type Bind Vis Ndx Name
2162: 001057d0 63 FUNC GLOBAL DEFAULT 11 realpath@GLIBC_2.0

001057d0 <realpath>:
1057d0: 55 push %ebp
1057d1: 89 e5 mov %esp,%ebp
1057d3: 53 push %ebx
1057d4: 83 ec 08 sub $0x8,%esp
1057d7: 8b 45 0c mov 0xc(%ebp),%eax
1057da: e8 b0 f5 f0 ff call 14d8f <sigprocmask@plt+0x7b>
1057df: 81 c3 41 80 02 00 add $0x28041,%ebx
1057e5: 85 c0 test %eax,%eax
1057e7: 74 15 je 1057fe <realpath+0x2e>
1057e9: 89 44 24 04 mov %eax,0x4(%esp)
1057ed: 8b 55 08 mov 0x8(%ebp),%edx
1057f0: 89 14 24 mov %edx,(%esp)
1057f3: e8 b8 25 f3 ff call 37db0 <realpath>
1057f8: 83 c4 08 add $0x8,%esp
1057fb: 5b pop %ebx
1057fc: 5d pop %ebp
1057fd: c3 ret
1057fe: 8b 83 44 01 00 00 mov 0x144(%ebx),%eax
105804: 65 c7 00 16 00 00 00 movl $0x16,%gs:(%eax)
10580b: 31 c0 xor %eax,%eax
10580d: eb e9 jmp 1057f8 <realpath+0x28>
10580f: 00 55 b8 add %dl,0xffffffb8(%ebp)
105812: ff (bad)
105813: ff (bad)
お騒がせして済みません。どこがおかしいのかは分りませんが、どうやら未使用の領域に
適当にデータが書き込まれているようです。なんでこんな風になっているのかは分りません。
しかもゼロ埋めすらされていない。。。realpathのサイズは63。0x10580dまでです。
681デフォルトの名無しさん:04/10/11 08:33:14
未使用というのはちょっと違うか。
>>677さんが言ってるように、NULLで区切られて0x105810バイト目から
ある処理が埋め込まれてるのかも。
ただこの場合、相対ジャンプする箇所に<realpath+0xXX>と、realpathからの
バイト数が表示されるはずですが、そのような箇所はありません。
実際に実行される可能性があるのかどうかは分りません。
682デフォルトの名無しさん:04/10/11 08:52:51
alignする為のダミーがあるのかもしれんよ。
>>679氏の言うとおり。
683デフォルトの名無しさん:04/10/11 09:30:05
リンカの仕様として関数を16バイト境界に整列させるというのがあるようです。
で、次のグローバルなシンボルまでの領域にローカルなコードが埋め込まれているのかも。
objdumpはこれをグローバルな関数の下に無理やりつけてしまう仕様のようです。
105810からを一つの関数と見なすと以下のようになりました。

スレ汚し失礼しました。
684デフォルトの名無しさん:04/10/11 09:30:50
10580f 00
105810 55 ;push %ebp
105811 b8 ff ff ff ff ;mov $0xffffffff,%eax
105816 89 e5 ;mov %esp,%ebp
105818 56 ;push %esi
105819 ba ff ff ff ff ;mov $0xffffffff,%edx
10581e 83 ec 0c ;sub $0xc,%esp
105821 8b 75 08 ;mov 0x8(%ebp),%esi
105824 8b 8e a4 00 00 00 ;mov 0xa4(%esi),%ecx
10582a 85 c9 ;test %ecx,%ecx
10582c 74 33 ;je 105861
10582e 8b 45 14 ;mov 0x14(%ebp),%eax
105831 8b 55 0c ;mov 0xc(%ebp),%edx
105834 89 44 24 08 ;mov %eax,0x8(%esp)
105838 89 54 24 04 ;mov %edx,0x4(%esp)
10583c 8b 86 98 00 00 00 ;mov 0x98(%esi),%eax
105842 89 04 24 ;mov %eax,(%esp)
105845 ff d1 ;call *%ecx
685デフォルトの名無しさん:04/10/11 09:31:12
105847 ba ff ff ff ff ;mov $0xffffffff,%edx
10584c b9 ff ff ff ff ;mov $0xffffffff,%ecx
105851 83 f8 ff ;cmp $0xffffffff,%eax
105854 74 07 ;je 10585d
105856 89 c1 ;mov %eax,%ecx
105858 89 c2 ;mov %eax,%edx
10585a c1 f9 1f ;sar $0x1f,%ecx
10585d 89 d0 ;mov %edx,%eax
10585f 89 ca ;mov %ecx,%edx
105861 83 c4 0c ;add $0xc,%esp
105864 5e ;pop %esi
105865 5d ;pop %ebp
105866 c3 ;ret
105867 89 f6 ;mov %esi,%esi
105869 8d bc 27 00 00 00 00 ;lea 0x0(%edi),%edi
686デフォルトの名無しさん:04/10/11 09:50:55
コード領域は00でもnopでもなく未定義命令例外を出すコードで埋めてほしいところだけどx86の1バイト命令では無理なんだよな
687デフォルトの名無しさん:04/10/11 10:20:09
>>686
CC じゃいけないの?
688デフォルトの名無しさん:04/10/11 10:52:33
kodakキター!
689デフォルトの名無しさん:04/10/11 10:58:51
gccもですか…
690デフォルトの名無しさん:04/10/11 17:55:44
CC って INT 3 のこと?
691デフォルトの名無しさん:04/10/11 18:02:45
CCといったらさくら

さくらといったら作者急病
692デフォルトの名無しさん:04/10/11 20:04:21
>>688
今度はいったい何
693デフォルトの名無しさん:04/10/12 05:03:27
DevC++に関連したスレはないのか?
無いなら立ててもらいたいのだが。
うちからじゃホスト制限で無理ぽい。
694デフォルトの名無しさん:04/10/12 05:31:53
テンプレぐらい書けヴォケ
695デフォルトの名無しさん:04/10/12 05:54:41
なぁ、gcc 3.3.5って確かにreleaseされたと思ったんだけど消えてねーか?
696デフォルトの名無しさん:04/10/12 05:58:52
ごめん、あった。
日本のミラーサイトに無い所が結構あったぞ。
697デフォルトの名無しさん:04/10/12 06:43:14
>>687の意図がわからないので眠れないのだが...
698デフォルトの名無しさん:04/10/12 07:24:35
以下のアセンブリソースで
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl $.LC0, (%esp)
call printf
          <ーーー A
leave
ret

Aの箇所に命令では無いバイナリコード(e.g. 0xFF)を置きたい場合、
どういう風にするんでしょうか?
699698:04/10/12 08:35:50
すいません。わかりました。
700665:04/10/12 09:44:15
>>666
ありがとう御座います、早速やってみました。
なんとか行けそうな感じです。
perlでバイナリー化ツールを制作しようと考えてます。

>>667
工夫して回避するつもりです。
オフセット位置や、レングスをあらかじめ内包してデータ化するなどして。

>>668
クライアントの仕様で、DLL等は使えない状態です。

>>669
参考になりました。

RESありがとう御座います。
返事が遅れて申し訳ありません。
701デフォルトの名無しさん:04/10/12 10:13:02
3.5.0が良いパフォーマンスだそうです。

GCC Benchmarks (coybench), AMD64 and i686, 14 August 2004
ttp://gcc.gnu.org/ml/gcc/2004-08/msg00664.html
702デフォルトの名無しさん:04/10/12 10:51:39
>>692

「Kodakの特許は、あるシステムやモジュールが別のものにタスクの実行支援
を求めるという概念全体をカバーしていると言っても過言ではない。これらの
特許では、明らかにJavaの一部で使われているような具体的な概念について言
及している。これらの特許は、現代のプログラミング言語やOS、(データベー
ス)エンジン、メッセージングブローカ、アプリケーションサーバなど、あら
ゆる実行環境をカバーしているように見える」(Eunice)

http://japan.cnet.com/news/ent/story/0,2000047623,20075055,00.htm

703デフォルトの名無しさん:04/10/12 17:58:18
特許が技術の進歩を阻害する。
704LettersOfLiberty ◆rCz1Zr6hLw :04/10/12 18:00:03
Re:>703 この際、政府には研究費の増額を頼まないと。
705デフォルトの名無しさん:04/10/12 19:32:12
>>702
ああ、それかい・・・
Kodakが特許ゴロ化しないことを祈るよ。
下手すりゃオブジェクト指向的な要素をもつ言語が皆殺しにされちまう。
706デフォルトの名無しさん:04/10/13 01:21:10
Kodak氏ね
707デフォルトの名無しさん:04/10/13 01:41:07
つーか特許死ね
708デフォルトの名無しさん:04/10/13 03:20:46
特許氏ね じゃなくて 特許ゴロ氏ね なら理解出来る
709デフォルトの名無しさん:04/10/13 04:09:02
ゴロられる特許のシステムは氏なんでいいですかいいですねすいません。
710デフォルトの名無しさん:04/10/13 08:09:30
アメリカは法律屋が権力持ちすぎなんじゃないの?
知的所有権も法律屋の商圏広げるためのものだって気がしてきた。
711デフォルトの名無しさん:04/10/13 10:43:35
やっと気付いた?
712デフォルトの名無しさん:04/10/13 10:48:51
>>711
うん。知的所有権ってアメリカの国益を確保する目的が
一番なんだと思ってた。
713デフォルトの名無しさん:04/10/13 10:58:49
だからさ、そういう視点から見れば、
FSFなんかが知的所有権に猛烈に反対してるのは、
法律屋の商圏拡大を食い止めるだけの意味しかないんだなって思った。
理念めいたこといっても所詮はパイの取り合いみたいなもんだ。

市民運動なんて国外に持ち出したらまったく別の
意味合いになってしまうんだろな。
714デフォルトの名無しさん:04/10/13 11:00:24
×FSFなんかが知的所有権に猛烈に反対してるのは、
○FSFなんかがソフトウェアの知的所有権に猛烈に反対してるのは、
715デフォルトの名無しさん:04/10/13 11:08:35
だからさ、日本人でGNU信者やってる奴なんてただの馬鹿だろうな。
本音と建前の使い分けに長けてるアメリカ人のいう、一つの理念=建前を
真に受けて信じちゃってるんだからさ。
もちろん理念がただの建前だとしても、そこになんの真理もないと
言うつもりはないけどさ。
716デフォルトの名無しさん:04/10/13 12:21:22
>>701
tree-ssaって関係ある?
717デフォルトの名無しさん:04/10/13 13:32:56
>>715
でも、日本でGNUな活動してはいけない理由がまったく思いつきませんが?
718デフォルトの名無しさん:04/10/13 13:38:13
>>715
>法律屋の商圏拡大を食い止める
現状でアメリカほど酷くはないだろうけど
これは日本でも(予防的に)やってほしい
719デフォルトの名無しさん:04/10/13 14:54:17
>>713
>だからさ、そういう視点から見れば、
>FSFなんかが知的所有権に猛烈に反対してるのは、
>法律屋の商圏拡大を食い止めるだけの意味しかないんだなって思った。
>理念めいたこといっても所詮はパイの取り合いみたいなもんだ。
>市民運動なんて国外に持ち出したらまったく別の
>意味合いになってしまうんだろな。
知的所有権が国外にまで影響するからじゃねーのか。違うのか?
720デフォルトの名無しさん:04/10/13 14:57:26
>>701
3.5.0はどこにありますか? 探してるんですけど...
721デフォルトの名無しさん:04/10/13 15:13:28
>>720
3.5.0 というのはリリースされていないだす。
リリースされる予定もありません(次は 4.0 になるから)

701 の記事では、CVS からソースを取ってきて使ってると書いてある。
722デフォルトの名無しさん:04/10/13 19:53:41
それでもicc8の方が全然速いのね
723デフォルトの名無しさん:04/10/13 20:12:08
Pen4上で比較されたらほぼ全てで負けるのは仕方がない…
他のだったらもうちょいいい勝負になると思うけど
724デフォルトの名無しさん:04/10/13 20:33:19
そもそもコンパイラなんてCPUといっしょに開発するものだからな
725デフォルトの名無しさん:04/10/13 20:38:03
フロントエンドとバックエンドどっちの話をしてるんだ?
726デフォルトの名無しさん:04/10/14 00:54:16
まあ, iccが速いのは事実. PGIは64bitがどうなってるのか知らないが, 結構速い.
727デフォルトの名無しさん:04/10/14 09:31:59
ここはiccスレではありません。
728デフォルトの名無しさん:04/10/14 12:23:53
じゃあ hcc の話でもしようか。
729デフォルトの名無しさん:04/10/14 13:37:58
GCCがあるなら、
KCCがあってもよくね?
730デフォルトの名無しさん:04/10/14 16:16:52
KCCって何?Korean C Compilerか?
731LettersOfLiberty ◆rCz1Zr6hLw :04/10/14 16:33:33
dmc、bccは?
732デフォルトの名無しさん:04/10/14 17:16:51
>>730
KDEの
733デフォルトの名無しさん:04/10/14 23:58:21
ICCもGCC互換だよね.
734デフォルトの名無しさん:04/10/15 07:15:58
gccは64bitのプログラムを書けますか?
735デフォルトの名無しさん:04/10/15 07:17:57
お前は書けるのかよ?
736デフォルトの名無しさん:04/10/15 08:50:46
ついでに質問
64bitのint演算って、
どうやってやるの?
ライブラリとかあるの?
737デフォルトの名無しさん:04/10/15 09:42:08
int64
738デフォルトの名無しさん:04/10/15 10:05:03
>>737
_t が抜けてるぞ
739デフォルトの名無しさん:04/10/15 10:35:45
long long
740デフォルトの名無しさん:04/10/16 14:50:17
GNATは、GNU版のAdaのこと。
さらにGNATは、GCCの中間形式を生成するコンパイラである。
741デフォルトの名無しさん:04/10/16 22:59:58
>>740
トリビアのつもり?
742デフォルトの名無しさん:04/10/17 00:03:59
だれも聞いてないのに・・・
743デフォルトの名無しさん:04/10/17 18:26:53
i686マシンで"-O3"を指定すれば、プリフェッチ命令を使用しますか?
っていうかgccってプリフェッチ命令を使うんですか?
744デフォルトの名無しさん:04/10/17 18:57:25
>>743
1. GCCは現在使っているCPUを見て生成するコードを変えたりはしません。
2. i686 にはプリフェッチ命令が存在しないCPUがあります。(PentiumPro、PentiumII)

てゆーか、基礎がなってない上に自分で調べずに他人に聞く馬鹿は氏ね。
745デフォルトの名無しさん:04/10/17 19:57:33
746デフォルトの名無しさん:04/10/17 20:24:28
747デフォルトの名無しさん:04/10/18 00:55:52
>>743の回答になるかどうかわからないけど、こういうの見つけた。
http://gcc.gnu.org/ml/gcc-patches/2002-01/msg00452.html
748デフォルトの名無しさん:04/10/18 14:55:15
Hello, what is the good introductory text for gcc ? Thank you.
749デフォルトの名無しさん:04/10/18 17:34:03
http://gcc.gnu.org/onlinedocs/

あとPearsonから出版されてるDeitelのC本とか
750デフォルトの名無しさん:04/10/20 07:40:33
>>748
There is no such text but are some good texts.
You'd rather choose a favirite one among them.
751デフォルトの名無しさん:04/10/21 19:50:50
いいねぇ、これ。

GCC extension for protecting applications from stack-smashing attacks
ttp://www.trl.ibm.com/projects/security/ssp/
752デフォルトの名無しさん:04/10/21 20:28:51
以前はPropoliceって言ってたやつでしょ? SSPに名前変わってたのか。
753デフォルトの名無しさん:04/10/22 00:31:08
各国、登録商標でうるさいからでしょ。
754デフォルトの名無しさん:04/10/22 01:18:11
755デフォルトの名無しさん:04/10/23 07:19:25
CPUがいくつあるかを判断するにはどのようにしたらよいでしょうか?
756デフォルトの名無しさん:04/10/23 07:52:51
筐体のふたを開ける
757デフォルトの名無しさん:04/10/23 08:11:20
GCCで筐体のふたを開けるためのライブラリを教えてください
758デフォルトの名無しさん:04/10/23 08:20:13
printf("フタを開(ry
759デフォルトの名無しさん:04/10/23 11:27:58
>>755-758
おまいら、アホか。
760デフォルトの名無しさん:04/10/23 12:06:19
自分のホームディレクトリに自分用のヘッダファイルがおいてあるディレクトリをつくりました。
ここを常にサーチするように設定するにはどうしたらよいのでしょうか?
761デフォルトの名無しさん:04/10/23 12:08:42
C_INCLUDE_PATH
762デフォルトの名無しさん:04/10/23 21:52:20
CPATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
763デフォルトの名無しさん:04/10/25 21:23:34
ttp://gcc.gnu.org/ml/gcc/2004-10/msg00952.html
gcc4.0、やっぱりどうも-ffast-math指定なしで握ると芳しくないようで…
764デフォルトの名無しさん:04/10/25 21:36:34
>>763
全然関係ないリンクをはるなよ。
彼が問題にしてるのはcompilation performanceだ。
765デフォルトの名無しさん:04/10/27 11:36:08
std::complexがいい加減じゃない?
766デフォルトの名無しさん:04/10/28 07:32:40
General Setup --->
・・・
(0) Function alignment (NEW)
(0) Label alignment (NEW)
(0) Loop alignment (NEW)
(0) Jump alignment (NEW)

Linuxのmenuconfigにこういう項目が出来ていたんですが、
これってキャッシュに乗りやすくするためですよね。
これによってそんなにパフォーマンスって変わりますか?
767デフォルトの名無しさん:04/10/28 08:25:40
CPUによるんじゃね?

Pen4だとコード整列は効果はないとかどっかで見たな
データ整列のほうは効果あるみたいだが
768デフォルトの名無しさん:04/10/28 22:01:25
ていうかtree ssa branchってそんなにすぅぐぉいの?
できたら数字つきのベンチのってるページぷりーづ。
769デフォルトの名無しさん:04/10/29 00:20:02
>>767
これはalignmentそのものが目的じゃなくて、
飛んだ先ですぐに又cache missを起こさないようにするには、
alignmentをしておいた方がいい。cache境界と合致してるから。
ってことでしょ。
770デフォルトの名無しさん:04/10/29 02:39:30
>>769
Functionはそうだろうけど、他はそうでもないような・・・
771デフォルトの名無しさん:04/10/29 02:41:45
threadchigai
772デフォルトの名無しさん:04/10/29 13:26:45
>>770
他もそうだよ・・・っていうか普通はループ先頭のラベルをアラインするのがよく行われてる。
(画像処理系のカリカリのアセンブリコードでの align 擬似命令の使われ方とか見てると。効果の程は??だけど)
でもPen4だとμOPがキャッシュされてるので、小さなループでの元のIA32命令のアラインは関係ない、
ってのが「Pen4だと・・・」の話。

関数単位とかは多少は意味あるでしょうね。
一時キャッシュのラインに前の関数の後ろの方とか載せるのムダだし。
773デフォルトの名無しさん:04/10/29 22:46:56
キャッシュミスを避けるためというより、
キャッシュヒット時の命令プリフェッチ帯域を上げるため。
774デフォルトの名無しさん:04/11/01 06:40:52
775デフォルトの名無しさん:04/11/03 13:19:59
#include <stdio.h>
#include <string.h>

int main()
{
char *text = "this is a test.";
char *token;

token = strtok( text , " ." );
while( token != NULL ){
printf("%s\n",token);
token = strtok( NULL , " ." );
}

return 0;
}

というプログラムがあって、これをbccでコンパイルすると期待通りに動くのですが
gccだとセグメントエラーが出ます。
変数textを配列にすると、エラーが出ずに動くんですが、これはgcc側のstrtokに関するバグでしょうか?
gccのバージョンは3.3.3でCygwin上のものです。
776デフォルトの名無しさん:04/11/03 13:31:02
釣りか
777Rubykitch:04/11/03 13:32:06
ばかばっか
778デフォルトの名無しさん:04/11/03 13:33:21
778
779デフォルトの名無しさん:04/11/03 13:45:34
ISO/IEC 9899:1999
6.4.5 String literals

6 It is unspecified whether these arrays are distinct provided their
elements have the appropriate values. If the program attempts to
modify such an array, the behavior is undefined.
780デフォルトの名無しさん:04/11/03 13:49:58
>>779
日本語にするとどういう意味?
781Rubykitch:04/11/03 13:51:58
ホント、救いようがないなw
-Wall -Werror付けとけ。
782775:04/11/03 13:59:46
すいませんでしたm(_ _)m
strtok関数は第一引数を変更しながら進んでるんですね。

変更せずに関数内部でなんとかしてるのかと思ってました・・
783デフォルトの名無しさん:04/11/03 14:03:00
もしそれらの要素が適切な値を持っていると、
これらの配列が別個かどうかは無指定です。

自分で読んで意味が分からなかったから機械翻訳させてみたけど
結局同じ訳になってさっぱり意味がわからない。
784デフォルトの名無しさん:04/11/03 14:04:32
JIS X 3010:2003
6.4.5 文字列リテラル
それらの要素が適切な値をもっている場合、これらの配列同士が別個であるか
どうかは未規定とする。プログラムがこれらの配列を変更しようとした場合、
その動作は未定義とする。
785デフォルトの名無しさん:04/11/03 14:09:28
gcc 3.3とgcc 3.5の違いって何?
へたれなおいらには良くわからなかったっす...
786デフォルトの名無しさん:04/11/03 14:26:12
3.5は無くなったよ。
3.4の次は4.0だよ。
787デフォルトの名無しさん:04/11/03 14:29:02
( ゚д゚)ポカーン
788デフォルトの名無しさん:04/11/03 14:31:57
Win版のVC7.1に続いてWin版のicc-8.1がboost100%になってるらしいな
789デフォルトの名無しさん:04/11/03 16:28:16
>788
よう。CodeWarrior-9.3も100%らしいな。
790デフォルトの名無しさん:04/11/03 17:10:01
gcc-4.0.0は2.95並のコンパイル速度とVC並の最適化らしいですが本当ですか
791デフォルトの名無しさん:04/11/03 17:11:24
星に願うとしよう。
792デフォルトの名無しさん:04/11/03 17:13:42
793デフォルトの名無しさん:04/11/03 17:14:26
794デフォルトの名無しさん:04/11/03 17:59:55
C++の方はicpc
795デフォルトの名無しさん:04/11/04 17:02:43
dvec.hってgccで使えるのでしょうか?
796デフォルトの名無しさん:04/11/04 19:40:30
20041031のパッチがなかなかでないね。なんでだろう。
797デフォルトの名無しさん:04/11/07 01:38:10
>790
ということは、gcc3.4と比べると、コンパイルの早さが改善するものの、コンパイルされたバイナリの質はそれほど変わらないってことですか?
Pentium4とか、x86_64系とか、もっと最適化が賢くなってるといいなぁー、と(漠然と)思っているもので。
798デフォルトの名無しさん:04/11/07 04:45:24
そろそろデフォルトで2進数使えるようになんねぇかな
799デフォルトの名無しさん:04/11/07 04:49:20
最低限IQ128以上あれば2,8,10,16進間の変換を脳内で瞬時にできるから不必要。
800デフォルトの名無しさん:04/11/07 05:05:16
IQ100あれば2進16進間は一瞬だと思う
801デフォルトの名無しさん:04/11/07 05:11:25
>>799
だとしたら、16進表記も不要だと思うのだが・・・
802デフォルトの名無しさん:04/11/07 05:15:38
>>800
つまりアフォ以外には2進は必要無しということですね
803デフォルトの名無しさん:04/11/07 05:18:37
>>801
16進はソースコードの文字数を減らすための仕組みだよ。
804デフォルトの名無しさん:04/11/07 05:20:02
2進が必要な環境って脳が退化してるオヤジが多いのですよ
805デフォルトの名無しさん:04/11/07 08:28:50
いいじゃんかよぅ退化してたって!
806デフォルトの名無しさん:04/11/07 08:45:52
UNIXのコマンドで2,8,10,16を変換する方法とかないの?
漏れはWINDOWSの電卓使ってるけど。
807デフォルトの名無しさん:04/11/07 10:48:12
>>806
デフォルトで入っていそうなのはbcとか。
変数obaseの値が出力の基数になる。ibaseが入力。
ibase=10
obase=16
とすれば10進から16進の変換が可能。
808デフォルトの名無しさん:04/11/07 12:14:55
>>806,807
藻前ら基数変換以前にスレタイも理解できないアフォでつか。
809デフォルトの名無しさん:04/11/07 12:16:42
喪前は流れも読めないアフォでつか。
810デフォルトの名無しさん:04/11/07 12:36:22
でも、2進数表記ができた方が便利なときもあるよねー。
弊害もないと思うので、0b0101010101 みたいな表記を許してくれればいいのにな、と僕も思います。
811デフォルトの名無しさん:04/11/07 13:02:39
>>806
od
812デフォルトの名無しさん:04/11/07 13:34:14
ldの話をしたらスレタイも理解できないアフォと言われそう。
813デフォルトの名無しさん:04/11/07 13:45:45
8進数はあるのに(正直使ったことない)2進表記がないのは
最近までサイズ明示した型がなかったことと並ぶCの謎の一つであった。
814デフォルトの名無しさん:04/11/07 14:03:14
昔のハカーは2進<->8進<->16進の変換が脳内で自明にできたのさ.
まぁBoostでも使うとよい.
815デフォルトの名無しさん:04/11/07 14:34:35
なら8進だっていらないじゃん
816デフォルトの名無しさん:04/11/07 15:28:02
>>755
ageだし環境書いてないし… 釣りなのか…?
しかし良スレだ。
817デフォルトの名無しさん:04/11/07 15:38:05
ageは関係ないだろ
818デフォルトの名無しさん:04/11/07 15:45:08
古いものだと x68k 版の gcc とか、最近だと Tiny C Compiler が 0b
な2進数表現に対応してるね。
さいきんの gcc は独自拡張はしないという印象があるなあ。

819デフォルトの名無しさん:04/11/07 17:06:42
2進 8進 16進の相互変換は計算するまでもなく簡単だろ。
10進との変換は計算が必要だけどね。

2進数を3桁ずつ区切って変換すれば8進数に、4桁ずつ区切って
変換すれば16進数になる。一桁の8進数、16進数のビット配列の
テーブルくらい頭に入らないやつは(ry
820デフォルトの名無しさん:04/11/07 17:28:17
821デフォルトの名無しさん:04/11/07 18:12:47
HT対応かどうかを調べる方法を教えてください
822デフォルトの名無しさん:04/11/07 18:31:25
ユーザーに聞く
823デフォルトの名無しさん:04/11/07 18:36:31
unsigned a = 0x987654321;
unsigned b = 0b100110000111011001010100001100100001;

これでbが分かり易いという奴の気が知れない。
824デフォルトの名無しさん:04/11/07 18:42:27
>>823
4桁ごとに分けて書けるようにしたいよね。
unsigned b = 0b_1001_1000_0111_0110_0101_0100_0011_0010_0001;
825デフォルトの名無しさん:04/11/07 19:01:37
16進のほうがわかり易いな
冗長なだけだ
826デフォルトの名無しさん:04/11/07 19:07:46
>>823
一応今使ってるgccは2進表記パッチ当ててるけど
さすがにそういう使い方はあまりしないよ。
マスクするときに使うけど。
827デフォルトの名無しさん:04/11/07 19:30:02
>>823
プロセッサのシミュレータをつくるときなんかだと、bの方が分かりやすそう。
828デフォルトの名無しさん:04/11/07 19:46:23
作ってみた
$ cat test.cpp.gz.base64
H4sICN76jUEAA3Rlc3QuY3BwAKVUX4ubQBx891MM9UXhHtSYxJBQaEuhhXvMQ9/CqmsimE3w
DxyUfvfOzxy3undcyjVhXGacHX87xPi1KZqh1NjVl65vtTp/9oauNkcYddbdVRUaXV9uPb/U
VW008ogf7KPD4TDTYuxjR4vpS1yNvsVciyUvdTX6lo4meStXo2890+JxvszV6Ns4muQpV6Mv
n2vjfIWr0Vc6muRpV6Ovmmpjc4gsl9YQWy6NIbFc2sLCcmkKqeXSEpaWS0NYWS7tYG25NIPM
cmkFG8ulESjLpQ3klksTKCyXFlBaLg1AWy6nR/XCv/7cJz++/wpUewzBy8uNb1/2cXCNHnCN
Q0RPvn+NiHi60d4XM4SRTBOSZweREItpEpEQi9kor/wSAledPiJ1bhIpsSRWxPqtRxIpsSRW
xHo6wv08eag70ivXdMTsjpnIiA2hiJwoiJLQRPUvRyAyYkMoIicKoiQ0Ufn+4+P0mP8/kxzs
Xg13U7za9Dir2iAI4f32gMF09dHoEsVJtRgKBPJLQzC+vA+3dzgMt1Nnd7q0PYZutCZz63xx
NjYX/rEOzbgvfW/fe8tbmc/Bt+Tso8kfXW4TFZehx26Hk36ShU3y+olfId2UNDMyMm3KRkJa
3Q+tQbT1/nh/ATengnecBgAA
$ < test.cpp.gz.base64 base64-decode | gunzip - > test.cpp
使い方
unsigned char uc (BIT1 (b1111, b1111));
unsigned short us (BIT2 (b1111, b1111, b1111, b1111));
俺は絶対使わんがw
829デフォルトの名無しさん:04/11/07 19:49:45
それよりprintfで2進表示がしたい
830デフォルトの名無しさん:04/11/07 20:01:54
>>829
C++だけど改造して
#include <iostream>
#include <bitset>
template <class T> std::ostream & output_as_bits (std::ostream &p_os, const T &p, bool ascending_order = true) {
std::bitset <sizeof (T) * 8> p_bit; const char *pp (reinterpret_cast <const char *> (&p)); char byte_digit (1);
for (size_t i (0); i < p_bit.size (); ++ i) {
p_bit.set (i, static_cast <bool> (*pp & byte_digit));
if ((i + 1) % 8) byte_digit <<= 1;
else {byte_digit = 1; ++ pp;}
}
if (ascending_order) {
p_os << "L"; size_t i (0);
while (i != p_bit.size ()) {p_os << p_bit.test (i); ++ i;} p_os << "H";
} else {
p_os << "H"; size_t i (p_bit.size ());
do {-- i; p_os << p_bit.test (i);} while (i != 0); p_os << "L";
}
return p_os;
}
int main () {
int i0 (10); float f0 (10);
output_as_bits (std::cout, i0) << std::endl;
output_as_bits (std::cout, f0) << std::endl;
return 0;
}
831デフォルトの名無しさん:04/11/07 20:52:02
>>830 「printfで」
832デフォルトの名無しさん:04/11/07 21:01:55
>>831
頑張って
833デフォルトの名無しさん:04/11/07 21:41:29
>>829
printf("%b\n",a);
じゃだめだっけ?Cあんまりつかわないかんな
834828:04/11/07 22:11:57
余計なものが入ってたので除いた
$ cat test.cpp.gz.base64
H4sICPIdjkEAA3Rlc3QuY3BwAKWUXWvCMBSG7/srDutNC7toatWKMth2NfDS+9EmqRZqWvoB
wth/39s4Nalih1Mew6PnvCcNQTdXvOiEpFVeNm0tk/2L0zW52pJK9rKpEi6pacXScYXMciUp
DfCiwHJGzHQWUGg5o4nhDP2R5YympqN/Zjmj+cVZPz+2nNHCdPQnljNKDe/nc8sZCdPRLy1n
lJ39/XXDPr0qeKaK+RQcXLcKwOUA3j427Py7rqaTmiHhKQSEYGKGgRBMzNDwql6n0PBrc0g0
HAIiMAUzML81FERgCmZgbm4iGs3TU4ebuiozNxmPbRLEYAESkAIOBJAg+8tDgBgsQAJSwIEA
EmSuu16bDxr/e0/6ycYOYjTGyVVL+yRX5PnkfDlEnWryrZKC+C6pqePk9TeOPH1Rn4/31feX
ZmWzK+uWukaXhnapvQwaixJ/BF2h+6J7ffeWW5m/wcfk+NHkR5fjjnjZtbRa0U4e+gUnic8n
vHtpTCks0SaVKPqQWrZdrShYOt/ODxvctoxMBQAA
$ < test.cpp.gz.base64 base64-decode | gunzip - > test.cpp
835デフォルトの名無しさん:04/11/07 22:22:15
>>821
スレ違いだが……。詳しくは Intel のサイトに行って

 IA-32インテルアーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル

ってタイトルの PDF ファイル探して読んでくれ。
836デフォルトの名無しさん:04/11/07 22:36:48
>>830
どうせならマニピュレータにしようよ。
837デフォルトの名無しさん:04/11/07 22:38:49
ていうか標準じゃないものはイラネ
838デフォルトの名無しさん:04/11/07 22:51:43
>>836
マニピュレータ作ったこと無いんだけど
面倒じゃなかったら830を改造してちょ

>>837
コンパイラにパッチ当てるよりはいいんじゃない?
839デフォルトの名無しさん:04/11/08 00:13:20
´ー`)ノ ⌒ ttp://www.coara.or.jp/~tkuri/SRC/mint/mint.hpp

#define BIN( bin ) MultiInteger<1>( #bin ).uint_value()
std::cout << BIN( 0b1000_1000_1000_1000 ) << std::endl;
char* int2bin(int arg)
{
 const int digit = 32;
 static char ret[digit+1];
 for(int i=0; i<digit; i++){
  if((1<<i)&arg){
   ret[digit-i-1]='1';
  }else{
   ret[digit-i-1]='0';
  }
 }
 ret[digit]='\0';
 return ret;
}

int bin2int(char* arg)
{
 int ret = 0;
 int digit = strlen(arg);
 for(int i=0; i<digit; i++){
  if(arg[i]=='0'){continue;}
  ret|=(1<<(digit-i-1));
 }
 return ret;
}
841デフォルトの名無しさん:04/11/08 01:01:09
gcc拡張のhexadecimal floating-point constantsってどうよ?
`1.55e1'=`0x1.fp3'っていうんだけど。
842デフォルトの名無しさん:04/11/08 01:20:32
>>841
浮動小数点数の内部表現を意識したいとき(計算の精度を気にするときとか)に使えそう。
だがぱっと見は読みづらい。
843デフォルトの名無しさん:04/11/08 01:21:57
>>841
C99にあるのとどう違うの?
ttp://seclan.dll.jp/c99d/c99d03.htm#dt19991206
844デフォルトの名無しさん:04/11/08 07:17:13
GCC 3.4.3 release age
845デフォルトの名無しさん:04/11/08 07:27:29
既出さげ
846デフォルトの名無しさん:04/11/08 07:38:10
あれ?出てたか?
847デフォルトの名無しさん:04/11/08 08:18:25
848デフォルトの名無しさん:04/11/08 15:13:33
C で bit の rotate って出来ますか?
あと rotate with carry とか shift with carry とか
したいときってありません?
849デフォルトの名無しさん:04/11/08 16:16:21
unsigned long _lrotl(unsigned long value, int shift) 符号なし long 型整数の各ビットを左にローテートします。
unsigned long _lrotr(unsigned long value, int shift) 符号なし long 型整数の各ビットを右にローテートします。
unsigned int __rotl(unsigned int value, int shift) 符号なし整数の各ビットを左にローテートします。
unsigned int __rotr(unsigned int value, int shift) 符号なし整数の各ビットを右にローテートします。
850デフォルトの名無しさん:04/11/08 16:21:35
>>849
_GCCの_バージョンはいくつですか。
851デフォルトの名無しさん:04/11/08 17:24:16
>>839,840
実行時評価だね
852デフォルトの名無しさん:04/11/09 17:25:56
gccをバージョンアップしたいのですが、ダウンロードした後どうすればよいのでしょうか?
853デフォルトの名無しさん:04/11/09 17:53:36
>>852
バージョンアップすればよいと思います。
854デフォルトの名無しさん:04/11/09 18:15:32
>>853
ご回答、ありがとうございます。
バージョンアップとは具体的にはどのようにやればよいのでしょうか。
OSはsuse linux9.1です。
855デフォルトの名無しさん:04/11/09 18:39:02
コンパイルしてインストールすればいいです。
コンパイル方法は環境に強く依存するので自分で調べてください。
ここから先の質問は環境に強く依存するのでここにはしないでください。
856デフォルトの名無しさん:04/11/09 18:45:26
>>854 OSを9.2にアップグレードすれば、自動的にgccのバージョンも上がりますよ。
以下>>855と同文。 Linux板へgo! http://pc5.2ch.net/linux/
857デフォルトの名無しさん:04/11/09 19:52:32
( ) , をマクロで文字列化したいのですが、
エラーが出ます。回避する方法はあるのでしょうか?(GCC3.4.3 cygwin)

#include<iostream>
#define COMMA ,
#define LPAREN (
#define RPAREN )
#define STRINGIZE(x) STRINGIZE_I(x)
#define STRINGIZE_I(x) #x

int main()
{
std::cout << STRINGIZE(COMMA) << std::endl;//error
std::cout << STRINGIZE(LPAREN) << std::endl;//error
std::cout << STRINGIZE(RPAREN) << std::endl;//error
}
858デフォルトの名無しさん:04/11/09 19:57:27
>>857
Boost の preprocessor ライブラリを使うとよろし。どういう仕組みで実現してるかは
ソース見れば一目瞭然だが。
859857:04/11/09 20:09:07
>>858
実はもう試していたのですが、
やはりエラーがでるので質問している次第です。
(boost/preprocessor/config/config.hみてもGCCの記述がなかった...)
//boost1.32draft(11/2)

#include<iostream>
#include<boost/preprocessor/library.hpp>
int main()
{
std::cout << BOOST_PP_STRINGIZE(BOOST_PP_COMMA()) << std::endl;
std::cout << BOOST_PP_STRINGIZE(BOOST_PP_LPAREN()) << std::endl;
std::cout << BOOST_PP_STRINGIZE(BOOST_PP_RPAREN()) << std::endl;
}
860デフォルトの名無し:04/11/09 20:16:50
CygwinでGCCを使うとエラーメッセージが文字化けを起こします。
GCCがSJISでメッセージを履いているためと思いますが
回避する方法をご存知ですか?
861デフォルトの名無しさん:04/11/09 20:40:15
LANG=C
862デフォルトの名無しさん:04/11/12 03:06:12
gcc ガン( ゚д゚)ガレ
863デフォルトの名無しさん:04/11/12 03:10:06
( ゚д゚) gccガンガレ、超ガンガレ
864デフォルトの名無しさん:04/11/13 03:43:54
gccで、-lで複数の ライブラリをリンクする際、
内部のシンボルのリンクされる順番は ld 依存なのでしょうか?
その場合、どういう順番でリンクされるかといった「詳細仕様?」は
どこを見れば良いのでしょうか?
865デフォルトの名無しさん:04/11/13 17:24:07
866デフォルトの名無しさん:04/11/13 20:46:49
>>865
ありがとうございます。逝ってきます。
867デフォルトの名無しさん:04/11/15 17:21:36
gccって他の商用コンパイラと比べて最適化のほどはどうなのでしょうか?
868デフォルトの名無しさん:04/11/15 17:37:35
icc>vc>>>>>>>>>>>>>>>>gcc
869デフォルトの名無しさん:04/11/15 17:42:50
icc>>>>>>>>>vc>>>>>>>>>>gcc>>>>>>>>>>>>>∞>>>>>>>>>>>>>>bcc
870デフォルトの名無しさん:04/11/16 00:11:40
iccが最強なのはPentium4のみ?
871デフォルトの名無しさん:04/11/16 00:12:25
Intel系のCPUなら大抵最強。
872デフォルトの名無しさん:04/11/16 01:30:09
distccでクライアントのLANGをサーバーで起動するgccに
反映させたいのですが、どうすればいいのでしょうか?

現状はサーバーでdistccdの起動時に固定のLANGを設定しています。
873デフォルトの名無しさん:04/11/16 01:46:27
コマンドに、
env
オプションに
LANG=XXX distccd ...
を指定すれば?

つまりサーバで、
env LANG=XXX distccd ...
する。
874デフォルトの名無しさん:04/11/16 01:54:46
>>873
それは「現状」と同じじゃないか?
875873:04/11/16 02:05:26
>>874
XXXを$LANGとかにすれば、

>>872
> distccでクライアントのLANGをサーバーで起動するgccに
> 反映させたい

となるじゃない。

$LANG設定してない場合は、XXXの代りに、
`locale | awk -F= '$1 ~ /LANG/ { print $2 }'`
を。

DISTCC_SSHをwrapperにしたり。
876デフォルトの名無しさん:04/11/16 02:21:04
達人にお聞きします。
XScale用のGCC 3.3.1で、char *を構造体のポインタにキャストすると、
そのポインタが2バイト境界または4バイト境界に整列していると
仮定されたコードが生成されてしまいます。
一時領域にコピーしてから扱う、という方法しかないのでしょうか?
877デフォルトの名無しさん:04/11/16 02:29:16
そうですね。
offsetof()とかで頑張って分解してからアクセスしても、
int *なんかも境界に合わせられちゃうんじゃないですか?
878デフォルトの名無しさん:04/11/16 02:33:10
>>875
もしかして、クライアントで実行するコマンドを
distcc env LANG=$LANG gcc ...
にするってこと?
879デフォルトの名無しさん:04/11/16 02:35:41
>>876
attribute packed で逃げることもできるだろうけど、
データのほうをいじれるなら、パディングして
データのアライメントを合わせたほうがいいんじゃないかと思う・
880876:04/11/16 13:21:11
>>877
うーん、分解してからでも一緒っぽいです。
>>879
背景説明が不十分でしたね。
状況は、通信データをメモリに展開したもので、
struct {
int type;
char data[1];
} common;
のように共通のヘッダがあり、データは可変長です。
なので、struct commonの先頭はalignされていませんし
メンバの位置の変更も不可です。
x86では普通にキャストすると思いますが、そういうコードを
ARMにポーティングしてくるときにはどうするのか、というのが
質問の趣旨です。
881デフォルトの名無しさん:04/11/16 13:37:23
>>880
その構造体ならば構造体自体をアラインして確保しておけば良いですが、
そうもいかない場合には char* で1バイトずつアクセスするコードを書く
必要があります(int 領域へ memcpy とかでも良い)。

Alpha AXP なんかと違って実行時例外も発生しないので、大きなコードの
ポーティングの際には苦労しそうですね・・・
ARM用のディストリから引っ張ってくるのが楽か。
882デフォルトの名無しさん:04/11/16 13:51:11
-mstructure_size_boundaryで8を指定しても駄目かね。
883デフォルトの名無しさん:04/11/16 14:15:33
>>880
普通、バイトオーダの問題もあるから、x86 でもキャストで済ますコー
ドなんて書きませんてば。int でも1バイトずつ読んで組み立てるのが普通。

884876:04/11/16 14:26:23
>>881
データが可変長なので、dataが奇数バイトのケースがあり
元のデータについてはアラインされていません。
1バイトずつ、というのはソースを書き換えればOKですね。
実際にはntohs(p->type)のようにアクセスしているので、
バイトアクセスするmy_ntohsを定義するという感じですかね。
(エンディアンの判定が必要になりますが)
アラインエラーは実行時例外を発生させてOSかライブラリが
何とかしてくれると思ってたんですが。
memcpyも困ったもので、4バイトや8バイトだとbuilt-in memcpyに
置き換わってしまうケースがあるみたいです。
>>882
それは構造体のサイズを8バイト境界に揃えるオプションでは?
885876:04/11/16 14:29:54
>>883
すいません。説明が足りませんでした。
ntohxでアクセスしてますが、通信系のXScaleはdefaultが
big endianなので、変換系マクロで何もしないため、問題が
起きているようです。
886デフォルトの名無しさん:04/11/16 15:19:29
>>885
gcc でいいのなら、>>879 の言うように packed アトリビュートで済ますのが良いのでは?
移植性考えるならバイトアクセスして値を取ってくるようにするべきかも知れないけど。
887デフォルトの名無しさん:04/11/17 08:33:16
まあ言語仕様に違反したコーディングをしてるんだから、苦労もしかたあるまい。
888デフォルトの名無しさん:04/11/17 22:29:45
実行中のプログラムの stack trace を獲得する方法はありますでしょうか?
(Java の printStackTrace の様なコトができるとありがたいです)
debugger 上で動かして stack trace を確認するのではなくて、
プログラム内に stack trace を獲得するコードを書きたいです。


実行環境としては Linux でやっておりますが、FreeBSD や Solaris 等の 他の Unix系プラットフォームでもかまいません。
889デフォルトの名無しさん:04/11/17 22:53:50
何かアドレスが表示できる。infoみれ。

__builtin_return_address (level)
__builtin_frame_address (level)

levelは定数ね。
890デフォルトの名無しさん:04/11/17 23:26:27
>>889
どうもありがとうございます
キーワード教えていただきましたので 何とか調べられそうです。
891デフォルトの名無しさん:04/11/18 00:52:50
>>888
私の使ってるメモリデバッガーにmallocしたメモリがどこから
呼ばれたかのコールスタックを記録する機能がある。

http://www.inf.ethz.ch/personal/biere/projects/ccmalloc/

callchain.c の backtrace() を参照にすべし。 i386専用の
高速バージョンと >>889 の__builtin_return_address を
使った汎用バージョンの両方あり。

892デフォルトの名無しさん:04/11/18 23:05:00
age
893デフォルトの名無しさん:04/11/18 23:53:08
エラーメッセージをカラー表示する方法はありますか?

どれがwarningでどれがerrorなのかわかりません。
特にマイナーなエラーのとき
894デフォルトの名無しさん:04/11/19 00:20:58
>>893
"error:" "warning:" とかで区別してカラー表示するフィルタみたいなのを作る。
895デフォルトの名無しさん:04/11/19 00:21:45
>>893
gccをemacsみたいな統合環境から使ってみたらどうでしょ?
あとwarningの出ないソースを目指すとか

そのものずばりの解凍ではなくてごめんなさい
896893:04/11/19 01:26:01
>>894
せめてエラーに error: ってついてればいいんだけどなぁ
法則はあるみたいなのでフィルタ作るよ

>>895
emacsは嫌いなので使ってません
すみません
897デフォルトの名無しさん:04/11/19 02:10:48
やったことないけどメッセージカタログいじって色指定のコントロールコードを
入れるんじゃ駄目なのかな?
898デフォルトの名無しさん:04/11/19 02:13:19
エラーなんて最初の一行だけで十分
899デフォルトの名無しさん:04/11/19 02:51:33
>>898
エラーの前に警告が沢山あったらどれがエラーか分かりにくいのは同じ

>>893

-w で警告を全部出さないって言うのはだめなの? 私はmake変数でこの
オプションを簡単に切り替えられるようにしてる。 とりあえずコンパイルが
通るまで make NOWARN=1 とかしてエラー無しに通してから警告を
見るという感じかな。
900デフォルトの名無しさん:04/11/19 03:09:49
つうかみなさん警告って気にしないのかな?
おいらは-Wallでも全く出ないようにコーディングしてるんだけど
あっ-ftemplate-depth-NNは付けてる
901デフォルトの名無しさん:04/11/19 21:08:44
902デフォルトの名無しさん:04/11/19 21:20:26
>>900
それがふつー
903デフォルトの名無しさん:04/11/19 23:01:55
>>902
じゃerrorとwarningを色分けしたいひとは
ふつーじゃないと?
904デフォルトの名無しさん:04/11/19 23:07:25
ふつーerrorなんて出ない
905デフォルトの名無しさん:04/11/19 23:16:34
>>903
ふつーにもいろいろあるから一応ふつーといえなくもないがまともではないな
906デフォルトの名無しさん:04/11/20 00:30:02
>>901
ありがとう
カラーリングの参考になったよ

自分としては、gccを差し替える方式よりも
makeの後ろとかにもパイプーできるように
したいんだよね
すでに出力済みのものにもかけれるし
907デフォルトの名無しさん:04/11/20 12:14:01
win32で動くプログラムは作れますか?
908デフォルトの名無しさん:04/11/20 12:48:48
作れます
909デフォルトの名無しさん:04/11/20 13:59:53
>>906
http://www.perldoc.com/perl5.6/lib/Term/ANSIColor.html
使って自分で書け。簡単だから。続きはperlスレでな。
910デフォルトの名無しさん:04/11/20 20:35:40
>>909
なんでPerlスレに誘導するの?
911デフォルトの名無しさん:04/11/20 20:36:26
Python スレに誘導しなきゃ
912デフォルトの名無しさん:04/11/20 20:49:29
Cで書こうぜ
913デフォルトの名無しさん:04/11/20 23:58:35
unix系でテキスト処理って言ったらやっぱりperlなのかな
914デフォルトの名無しさん:04/11/21 00:06:48
今はpythonって人も多いと思われ
915デフォルトの名無しさん:04/11/21 00:40:25
いや、Rubyも追いつけ追いこせです。
916デフォルトの名無しさん:04/11/21 00:43:06
こんなスレにも沸いて出るのか・・・
917デフォルトの名無しさん:04/11/21 02:02:38
>>913
emacs lispで書いて、-batchで流します。
918デフォルトの名無しさん:04/11/21 02:22:05
ruby以外は糞言語だと何度言ったら分かるんだ?
919デフォルトの名無しさん:04/11/21 02:31:29
>>918
+Inf
920デフォルトの名無しさん:04/11/21 03:45:37
ccache入れたけど、結局本当にほんの少しの.c、.cppの変更以外
キャッシュなんて効きゃしないんだよね。
やっぱりプリコンパイルヘッダなり、よく練られた中間オブジェクト形式なりに
期待したいんだけど、現在のGCCのその辺の事情ってどうなってんのよ。
921デフォルトの名無しさん:04/11/21 07:01:38
>>913-919
すれ違い
922デフォルトの名無しさん:04/11/21 09:35:41
>>920
gcc 3.4.3でも入れてinfo見れ。
最初の目次から、keyword index → precompで検索
923デフォルトの名無しさん:04/11/21 14:46:16
Makefileの書き方を教えてください
924デフォルトの名無しさん:04/11/21 14:48:03
925デフォルトの名無しさん:04/11/21 14:48:27
>>923
スレ違い
926デフォルトの名無しさん:04/11/22 09:47:03
927デフォルトの名無しさん:04/11/22 15:10:59
GCCのプリコンパイルドヘッダの検索順って、いまいち使い勝手悪いね。
ビルドをソースと別ディレクトリでやろうと思うと難しい。
優先的に探すディレクトリを指定する-pIオプションとかつけてくれないかな。
928デフォルトの名無しさん:04/11/22 18:37:06
>>927
スレ違い
929デフォルトの名無しさん:04/11/23 00:09:29
じゃあどこでやれと
930デフォルトの名無しさん:04/11/23 01:16:50
ふう、Fedora-FC2->FC3にしたらgccが3.4.1に、
そして、今まで作ったプログラムのほとんどが、
error: ISO C++ forbids cast to non-reference type used as lvalue
これmakeのオプションで我慢させる事出来ないの?
931デフォルトの名無しさん:04/11/23 01:33:03
>>930
それってどんなケースで出てます?
 unsigned char a;
 (signed char)a = -1;
とか?
932デフォルトの名無しさん:04/11/23 02:10:42
>>930
それはソース修正した方が良いよ
933デフォルトの名無しさん:04/11/23 14:30:48
(10/3)*3 って 9 なんだね。 スゲー安心した。
10になったらどうしよう ってどきどきしてた。
934デフォルトの名無しさん:04/11/23 14:34:10
VC++にある下記のオプションは、GCCでは何になるのでしょうか?
・小さい型への変換チェック(/RTCc)、
・基本ランタイムチェック(/RTC1, /RTCsu)
935ChaosicSoul ◆/yaJbLAHGw :04/11/23 14:42:55
商だけがでる割り算。これは今後も変わらないだろう。
936デフォルトの名無しさん:04/11/23 16:23:14
GCCにCommonLispのパッケージが含まれるのはいつですか?
937デフォルトの名無しさん:04/11/23 16:58:04
コンパイラ指向のHaskellが先です。
http://www.haskell.org/
938デフォルトの名無しさん:04/11/23 17:03:26
GHCはGPLじゃないからだめでそ
939デフォルトの名無しさん:04/11/23 18:14:14
ChaosicSoul must die.
940デフォルトの名無しさん:04/11/23 20:55:01
distccのトップページに
"The (unreachable) theoretical maximum speedup is 3.0x"
って書いてあるんだけど、これってホストマシンの数によらない理論値なんでしょうか?
941ChaosicSoul ◆/yaJbLAHGw :04/11/23 21:52:56
Re:>939 Die before I die.
942デフォルトの名無しさん:04/11/23 22:28:11
>>941
で、その「Re:」というのは何の意味があるのか答えろ
943デフォルトの名無しさん:04/11/23 22:35:27
Chaosicってなんだよ。Chaoticだろ。
944デフォルトの名無しさん:04/11/23 22:51:55
>>942
Re:Re:Re: のおじさんか
fjには馬鹿が多かったよな
945ChaosicSoul ◆/yaJbLAHGw :04/11/23 22:54:07
Re:>943 そうか、どうりで…。
946デフォルトの名無しさん:04/11/23 22:58:33
>fjには馬鹿が多かったよな
2chのほうがマシだとでも言いたいのか?
947デフォルトの名無しさん:04/11/23 23:13:35
こわがりすぎー
948デフォルトの名無しさん:04/11/23 23:42:34
>>942
>
949デフォルトの名無しさん:04/11/23 23:48:30
>>942
マジレスすると「正規表現で表すと〜」ってこと。
950デフォルトの名無しさん:04/11/24 00:44:01
>>946
2chにはアホが多い
fjよりはある意味マシかな
951デフォルトの名無しさん:04/11/30 21:16:16
おい、書き込みがないぞ。
952デフォルトの名無しさん:04/11/30 21:58:43
しかしfjの廃墟っぷりはすごいな
953デフォルトの名無しさん:04/11/30 22:56:53
fjって何?
954デフォルトの名無しさん:04/11/30 23:09:45
Free Java
955デフォルトの名無しさん:04/11/30 23:23:28
fjは議論する能力を試される。
2ちゃんは読む人の知性が試される。
956デフォルトの名無しさん:04/12/01 05:51:48
>>953
fucking jap
957デフォルトの名無しさん:04/12/01 10:15:21
へー、omit-frame-pointerって x86では遅くなることもあるのか。
知らんかった。と、昔のレスをみて感想を述べてみる。
でも MIPSとかではきくんだよな。誤解するなよ>>おれ
958デフォルトの名無しさん:04/12/01 17:14:10
ここはチラシの裏か。
959デフォルトの名無しさん:04/12/02 01:34:09
gcjとかがgccの標準パッケージになるまでの経緯ってどんな感じだったんですか?
960デフォルトの名無しさん:04/12/02 09:46:00
gcc-4.0について語り明かそう。
961デフォルトの名無しさん:04/12/02 14:24:01
gcc 4.0 もうすぐっぽいですね。新しもの好きなので、もう使い始めています。
962デフォルトの名無しさん:04/12/02 14:35:33
4の売りは何?
963デフォルトの名無しさん:04/12/02 15:03:23
とっととpentium4にちゃんと対応しろよ
これx86的にはクソコンパイラだからね
964デフォルトの名無しさん:04/12/02 19:07:45
>>963
ヘタクソなコード書くやつ発見
965デフォルトの名無しさん:04/12/02 21:39:26
p4はintelにも見捨てられたクソcpuだからこれからやる意味がなぁ…
966デフォルトの名無しさん:04/12/02 22:09:22
アムド64最強
967デフォルトの名無しさん:04/12/03 03:12:07
>>957
-momit-leaf-frame-pointerはどうなんだろうね
968デフォルトの名無しさん:04/12/03 12:34:10
なんで、上は警告が出て下は出ないのですか?
test.c:4: 警告: スカラー初期化子がブレースで囲まれています
test.c:4: 警告: (`a.a' の初期化は不完全です)

     1struct hoge {
     2    int a;
     3} a = {
     4    {0}
     5};
     6
     7int b = {0};
969デフォルトの名無しさん:04/12/04 14:22:42
OpenMPは使えますか?
970本田:04/12/04 16:57:39
>>963
ほんとに、そうお考えなら、ご自分で、コードをコントリビュートすれば?
971デフォルトの名無しさん:04/12/04 17:04:10
970 名前:あぼーん[あぼーん] :あぼーん
あぼーん
972本口:04/12/05 06:04:09
>>963
ほんとに、そうお考えなら、ご自分で、コードをコントリビュートすれば?
973本匚:04/12/05 10:26:26
>>963
ほんとに、そうお考えなら、ご自分で、コードをコントリビュートすれば?
974木田:04/12/05 12:07:23
>>963
ほんとに、そうお考えなら、ご自分で、コードをコントリビュートすれば?
975木口:04/12/05 13:46:54
>>963
ほんとに、ほんとに、ほんとに、ごくろーさん
976デフォルトの名無しさん:04/12/05 13:50:36
下らない発言でスレを潰すな!
977デフォルトの名無しさん:04/12/05 14:01:34
ほんとにほんとにライオンだー

埋め。
978デフォルトの名無しさん:04/12/05 14:29:49
PGIとgccでは最適化にどのくらい差が出ますか?
979デフォルトの名無しさん:04/12/05 14:30:16
980デフォルトの名無しさん:04/12/05 14:48:34
981デフォルトの名無しさん:04/12/06 00:19:23
982デフォルトの名無しさん:04/12/06 00:25:20
983デフォルトの名無しさん:04/12/07 00:19:57
G
C
C

この頭文字を使って何か面白い話を
984BlackLightOfStar ◆ifsBJ/KedU :04/12/07 11:15:43
GNU
Compiler
Correction.
GNUコンパイラの修正。
985デフォルトの名無しさん:04/12/07 15:44:47
Gates
Causes
Confusion
986デフォルトの名無しさん:04/12/07 17:01:58
>>983
最近この板こういう下らないレス多すぎ。
987デフォルトの名無しさん:04/12/07 17:04:53
上昇傾向にあるってことだな
988デフォルトの名無しさん:04/12/08 00:40:48
横ばいかも
989デフォルトの名無しさん:04/12/08 10:20:50
Gimme
Correct
Code.
990デフォルトの名無しさん:04/12/08 11:29:45
>>989
Go
Check your
Code first
991BlackLightOfStar ◆ifsBJ/KedU :04/12/08 16:58:02
それで次スレはどうするの?
992デフォルトの名無しさん:04/12/08 17:27:34
993デフォルトの名無しさん:04/12/08 17:28:44
>>991
閑散としてるので
cygwin + mingwn + gcc 相談室
http://pc5.2ch.net/test/read.cgi/tech/1058134693/
に統合の方向でどう?
994デフォルトの名無しさん:04/12/08 18:40:32
MinGWを使おう
http://pc5.2ch.net/test/read.cgi/tech/1042611308/

こっちのほうがレス数が多いので早く使い切りたい。
995デフォルトの名無しさん:04/12/08 19:13:37
>>994
>使い切りたい
気持は分かるけど
ここのスレの後継としてはgccの文字が入ってる必要があると思う
「MinGWを使おう」は使い切った時点で「cygwin + mingwn + gcc 相談室」に合流ってのがいいのでは?
スレタイはシンプルでありながら
かつ乱立を防ぐよう必要なキーワードが入ってる方がいいと思う
996デフォルトの名無しさん:04/12/08 19:17:29
使い切りを加速
997デフォルトの名無しさん:04/12/08 19:17:52
いろんなスレがあるもんだ
998デフォルトの名無しさん:04/12/08 19:18:10
しかしこのスレはどうなるのだろう
999デフォルトの名無しさん:04/12/08 19:18:22
まあいいや
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。