[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 18:42 / Filesize : 91 KB / Number-of Response : 457
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

GCCについて part9



1 名前:デフォルトの名無しさん [2009/06/27(土) 08:34:50 ]
史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。

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

Binutils - Collection of binary utilities ←これも必要だぞ。
www.gnu.org/directory/GNU/binutils.html

GNU Binutils
sources.redhat.com/binutils/

GCC online documentation
gcc.gnu.org/onlinedocs/

Installing GCC
gcc.gnu.org/install/

GCC Timeline
gcc.gnu.org/releases.html#timeline

Calendar
gcc.gnu.org/develop.html#timeline

前スレ
GCCについて part8
pc12.2ch.net/test/read.cgi/tech/1192201659/l50

237 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 20:15:07 ]
strcmpiじゃなかったっけ
まあ今となっては良い思い出

238 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:40:15 ]
>>234,236,237
コンパイラとライブラリは切れば切れる関係。

例えば同じ Windows 上の gcc でも、Cygwin と MinGW で使える関数が
違うでしょ。



239 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:17:07 ]
ところでnewlibって何なの?
こういうネーミングはやめてほしいんだが
このセンスはさすがに引く
古くなったらどうすんだよ

240 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:09:27 ]
最近は年末にリリースされてるから

241 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:00:11 ]
それならclibだと。

242 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 17:56:29 ]
clubt.jp/product/92651_3621255.html

243 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:55:25 ]
>>234
STRing Ignore Compareってw
センスの悪い命名…

244 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:11:16 ]
i は Ignore なのか?
case Insensitive の i だと思った
悪い命名なのは疑いようがないけど

245 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 23:46:25 ]
sprintfおせーぞ
gccだけおせーんじゃ
なんとかしろ



246 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 23:53:27 ]
文句言う前に、自分で早いsprintfを書けばいいのに

247 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 00:29:39 ]
std::sprintfとかsprintfと紛らわしい
関数作るんじゃねーよ

248 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 03:13:31 ]
>>231=>>234=>>245=>>247だとすると、
何のプラットフォームでどんなものを作ってるのか、大体予想つくな

249 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:20:29 ]
>>248
こういう発言ってついったの方が楽しいのにね

250 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 07:09:00 ]
笑われてるだけでしょ

251 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:34:01 ]
>>250
笑うなよ

252 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:55:54 ]
gccスレでぐっちてる時点で...

253 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 16:26:44 ]
>233
ARM固有の最適化部分のメインコミッターのほとんどはARM社からお金もらっている人々だよ
最適化で、いつまでたってもARM純正に勝てないのはARM社がコントロールしてるから

ARMのプラットホーム使わないといけない人のほとんどは、gccの中身なんて弄ってる余裕が無いよ
ARMを使ったPCが普及すれば、変わると思うけど



254 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:12:55 ]
昔、玄箱スレでgccはARMよりPPCのが効率よいコード吐くって話があったけど、
状況変わらず?
ARMの命令セットがやや特殊なせいなのかな

255 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:21:04 ]
>>254
自社のコンパイラより効率的なバイナリを
生成するコンパイラは、排除するって明言しているから
どうにもならないよ。





256 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 07:57:43 ]
gccの文字列処理おせーんだよ

なんでgcc3.4でSSE4.2に対応してねーんだよバカ

257 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 08:01:10 ]
おそい書き方したお前が悪い

258 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 12:45:50 ]
>>256
gcc4使えばいいじゃん。

259 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 02:57:51 ]
pc1:
2.95.3
3.3.6

pc2:
4.3.4
4.4.3

二つずつ入れてて計4つ

>>256
使い分けりゃいいじゃん。

260 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 14:06:45 ]
gccの文字列処理ってどこを指すの?

261 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 16:41:37 ]
さあ、ビルトイン関数のことかも

262 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 10:12:29 ]
>>260
printfの警告とか。

263 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 13:27:36 ]
ストリーミング命令使ったstr系関数の変態最適化ってやってるんだっけ

264 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:17:34 ]
gccは
char buf[256] = {0};って記述しても
0に初期化されることはない

腐ってやがる

265 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:31:09 ]
>264
バージョンはいくつですか



266 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 03:05:21 ]
>>264 んなこたーない

267 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 04:30:31 ]
起動時にbssをクリアしてないとか

268 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:19:47 ]
>>264
いつの時代のgcc?

269 名前:デフォルトの名無しさん [2010/03/10(水) 18:20:46 ]
char buf[256] = {0};
で、後ろの255バイトも自動的にゼロクリアされるのは
Cの仕様?それともgccのやさしさ?

270 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:20:51 ]
>>269
Cの仕様

271 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:41:05 ]
>>269
{1}のケースもどうなるか理解しといた方がいいよ。

> the remainder of the aggregate shall be initialized implicitly
> the same as objects that have static storage duration.


272 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 05:07:16 ]
binutils 2.20.1

273 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:47:11 ]
binutils-2.16.1

274 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:40:41 ]
mallocだと0フィルされる保証はない?

275 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:53:06 ]
普通、確保されるだけじゃないの?
callocなら0フィルされると思うけど



276 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:53:09 ]
今時gcc使ってるやつは莫迦

277 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:21:50 ]
>276
は、何を使ってるのよ


278 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:00:29 ]
sourceforge.jp/projects/freshmeat_ack/
かな?

279 名前:デフォルトの名無しさん [2010/03/15(月) 00:17:30 ]
codesourceryのg++ってdo_global_ctorsとかstartup関連がないみたいなんですけど、
自分で実装するとき、.init_arrのグローバルコンストラクタを呼び出す以外にやることありますかね?

あと、libc(newlib)の初期化とかもやらないといけなさそうですが、方法がわからない。

codesourceryでstl使ったプログラムかけた人いたら教えてください。

280 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 10:56:04 ]
>>274
無い。
セキュリティホールになるってんでゼロ梅してた時期もあったけど。

281 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:08:15 ]
セキュリティホールってより、暴走の原因とか

282 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:37:41 ]
>>281
それはない。
それはただのバグだ。

283 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:31:56 ]
不定値前提で安定したプログラム作れないほうがよっぽど

284 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:48:52 ]
0クリアするくらいならdeadbeefで埋めたほうがまし

285 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:00:57 ]
新規割り当てメモリを初期化しない場合のセキュリティーホールというのは
上位権限のプロセスが開放したメモリにある情報を読めるかもしれないとい問題



286 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:01:25 ]
フフフフフフフフフフフフフフフ

287 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:06:26 ]
oppai

288 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:09:27 ]
>>285
そりゃライブラリ側の仕事でなくOSの仕事だろう

289 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:14:24 ]
malloc(3)の話だから、OSの仕事も含むのは普通。

290 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:23:13 ]
char buf[256] = {0};
ってやるとgccだとmemset関数を呼び出す
糞実装になってるw

アホだろw


291 名前:デフォルトの名無しさん [2010/03/17(水) 00:24:54 ]
そこでmemsetを呼び出さない処理系を教えてくれ

292 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:29:33 ]
gcc糞だからなぁ

293 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:22:05 ]
>>291
gcc-4.3は呼び出さない

294 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:33:32 ]
-minline-all-stringopsって使っていいの?


295 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:51:04 ]
>>290
どうしてほしいの?rep stosdにでもしてほしいとか?



296 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 03:38:41 ]
>>289
含まねーよ。物事を区別して考えられないバカっているんだねえ。


297 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 07:31:27 ]
>>284
いい悪いってか、用途によるでしょ。
バイナリはでかくなるよ

298 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 07:33:10 ]
ちょっとタンマ
>>297の答えに自信ない

299 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:11:14 ]
1kbも増えんだろ

300 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:57:20 ]
>>296
あるライブラリ関数について、
C標準では定義されてないことを、
OSの方で定義していることは良くあること。
たとえばスレッドセーフかどうか。

301 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 09:48:55 ]
それはそのライブラリ関数を使う側にとっての関心事項。
>>285のは他プロセスないしカーネルにとっての関心事項。
別の話だね。

302 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:28:13 ]
他プロセスがmallocおよびその下請システムコールを呼ぶ場合の話でしょ?

303 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 07:04:48 ]
>>300
OSじゃなく処理系だろ

304 名前:デフォルトの名無しさん [2010/03/20(土) 09:55:19 ]
CPU Frequencyをリアルタイムで取得するgoodな方法を教えてくれ

305 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 10:10:30 ]
RDTSC



306 名前:デフォルトの名無しさん [2010/03/23(火) 22:46:45 ]
プリプロセッサの処理中にメッセージを表示したいのですが、
gccでも可能でしょうか?
Visual C++ では #pragma message("msg") などと書けばできたのですが。

307 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:12:02 ]
>>306
gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
によると、
#pragma message "Compiling " __FILE__ "..."
とか出来るっぽいぜ

308 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 17:22:22 ]
>>305
今はだめだろ。CPUいっぱいあるから。

309 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:57:17 ]
ついでにいうとCPU, OSの組み合わせによってはRDTSCがエミュになってしまい
数百クロックを要する。
だがそのような環境では逆に全コアでタイマカウンタが一貫してたりする。

310 名前:306 mailto:sage [2010/03/25(木) 21:44:47 ]
>>307
ありがとうございます。しかし試してみたところダメでした。
-Wunknown-pragmasでコンパイルしたら「無視しました」みたいなメッセージが出ました。
gccのバージョンによるんですかね。4.3.2でした。


311 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:23:57 ]
>>307
#warningで出来るかなと思ったら引数のマクロ展開はしないとか
ふざけた事を抜かしているのであまり使えないな。 この程度は
出来るけど。

#warning Message

$ gcc -c source.c
source.c:1:2: warning: #warning Message

waring:#warning が冗長で醜いなあw



312 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:37:53 ]
俺もそれは浮かんだが、-Werrorを入れてる環境だと止まるので完全ではないわな

313 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:33:33 ]
Xeon 5500って、最適化オプションの名前って何ですか?

nocona?
core2?


314 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 07:35:10 ]
>>313
たしか〜

nehalem-exかNorthwood

315 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 10:42:05 ]
最適化してもあまり変わらないんだけどな
SSE2を使うだけで十分だと思う



316 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 21:31:49 ]
nativeでいいよ

317 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 10:20:40 ]
4.5.0-RC-20100406

318 名前:デフォルトの名無しさん [2010/04/14(水) 15:49:00 ]
GCC4.4.1は-msse・最大最適化でコンパイルすると、float演算はSSE命令により
自動ベクトル化されるが、整数演算はベクトル化されない。整数移動はベクトル化
されるが、float用SSE命令が使われていた。GCCはMMXや3DNOWコードを吐かないの?

319 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:08:15 ]
GCC 4.5.0 release

320 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 21:43:24 ]
MMXは基本的にshort以下の整数に使うもんだし
飽和演算とか利用してこそだし
あまり自動最適化には向かないんじゃない

321 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 01:44:02 ]
MMXは切替えなくちゃ使えないから使わないみたいなのを読んだような気がする

322 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 07:15:21 ]
SSEの整数命令使えばいいんじゃない

323 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 12:53:50 ]
整数はベクタ化の恩恵を受けにくいからじゃないかな。
単なるコピーならfloat32でも同じことだし。

324 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:23:12 ]
-mmmxとか-m3dnowじゃないと使わないんじゃない
SSEで全部まかなえるわけだし

325 名前:デフォルトの名無しさん [2010/04/15(木) 23:35:38 ]
>>324
普通のSSEには整数命令入っていないよ
-mmmxや-m3dnowでもMMXレジスタは使っていなかった。



326 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 23:52:09 ]
alignmentしてないと速くなんないからじゃね?

327 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 00:02:00 ]
普通のSSEじゃないだろ最初のSSEだろ

328 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 20:29:37 ]
Pen4あたりから入り始めたんだっけ?

329 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 19:38:11 ]
何が? 最初のSSEはPenIIIだよ。

330 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 01:19:50 ]
pen3のsseは整数演算できない

331 名前:デフォルトの名無しさん [2010/04/18(日) 02:33:27 ]
GCC4が登場した頃には整数SIMDができるSSE2の登場から数年経過しており、MMXに
よる整数SIMDの需要が少なかったからか?さらに、GCC4登場初期はスマートフォンや
PDAにiwmmxtが搭載されていたが、そもそも当時はスマートフォンが普及しておらず
MMX系の需要は少なかったからか。で、今ではスマートフォンが普及しgccに
armの128bit自動ベクトル化が搭載されたが、既に時代遅れのiwmmxtは対象外
という事か。

332 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 14:05:30 ]
gccは商用コンパイラにどれくらい負けますか?

333 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 14:06:59 ]
MMXはintに大体適用できないから
一生懸命対応するメリットが少ないんじゃないの

334 名前:デフォルトの名無しさん [2010/04/19(月) 03:58:34 ]
>>332
あらゆるCPUに同じコアで対応しているから、乗算結果の上位の取り出しや飽和演算で
最適コードを吐かない、MMXのように切り替えが必要な処理は実装されないんじゃね?
>>333
iwmmxtならそもそもfpu搭載していないので切り替え不要だし、加減算やshort乗算には効果あるよ

335 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 17:17:45 ]
gcc4って最初かなりすごかったのに、後からどんどん遅くbuggyになってるよね
プロプライエタリの工作員が本気出し始めたのかな



336 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 17:19:45 ]
4.5からbackendをplugin化出来るようになったからいつでもllvmに逃げられるようになったけどね

337 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 21:03:17 ]
Benchmarks Of GCC 4.5.0 Compiler Performance
www.phoronix.com/scan.php?page=article&item=gcc_45_benchmarks






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<91KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef