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


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

【最速へ】LowLevelVirtualMachine【LLVM】



1 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:00:55 ]
Native用言語向け仮想機械、LLVM(低水準仮想機械)について語りませう。
いくら探しても無いので立てました。

本家: ttp://llvm.org/
参照: ttp://ja.wikipedia.org/wiki/Low_Level_Virtual_Machine



2 名前:デフォルトの名無しさん [2008/05/23(金) 22:08:39 ]
まだ早い
終了

3 名前:1 mailto:sage [2008/05/23(金) 22:15:09 ]
とりあえずLinuxにて素数計算を書いてコンパイルした感想。
現時点ではまだ通常のバイナリと同じか寧ろ遅いようです。
しかも、一つの生成した実行ファイルにVMと本体が同居している
せいかファイルサイズが異様にデカい…。
しばらくは様子見と言った感じですかね。生ぬるく見守っていきましょう。

4 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:40:23 ]
これって何ができるの?
汎用的なjvm?

5 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:41:09 ]
LLVM インタープリタは別にはやくないべ
llvm-gcc で普通に native code にコンパイルしたら?
OS X 上で 32 bit モードだと llvm-gcc のほうが普通の gcc より全然早かったけど。
accc.riken.jp/HPC/HimenoBMT/index.html
でやりました。

6 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:47:38 ]
CやC++やらFortranとか、もともとNative向けに作られている言語向けのVMで、
JavaVMと同じく実行時の最適化を行う。おまけに実行時に条件分岐が
どちらに飛びやすいか、どの命令が使われやすいかなどProfileを取ってバイナリ
自身を書き換え、使えば使うほど勝手に速度を増すらしい。

7 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:34:03 ]
LLVMの実用例ってどんなのあるんだろうな

AppleがLeopardでグラフィックス層に採用したが、
GMA950なMacではBlenderが意味不明なほど重くなってる
(Tiger起動時は無問題)
利点がさっぱりわからん

8 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:43:01 ]
>>7
episteme.arstechnica.com/eve/forums/a/tpc/f/8300945231/m/771003390931

Apple はこれの為にわざわざ LLVM の ARM バックエンドを作ったらしいね

lists.cs.uiuc.edu/pipermail/llvmdev/2007-January/007813.html

こういう感じで開発機と本番機のアーキテクチャが違う場合は恩恵が大きい
というか、ナイスアイデアだと思った

9 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:56:48 ]
あー、仮想化としての意味合いが強いのか。なるほどthx

10 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:27:36 ]
OpenGLのJITをLLVMのJITに置き換えただけでは?



11 名前:1 mailto:sage [2008/05/24(土) 01:27:32 ]
とりあえず50万までの素数計算したときの計測値を貼ってみる。それぞれ10回。
比較対象はLLVM-GCC(ver 2.1)とGCC(ver 4.3)。
対象言語はC++、基本比較回数41,539回。
一応、中枢処理はinline関数版とマクロ版のを用意。
check:41539,score:755 clock/ms

LLVM-GCC版
inline関数 :マクロ
 4240  :1315
 4280  :1265
 4190  :1245
 4200  :1235
 4150  :1255
 4210  :1355
 4280  :1255
 4220  :1305
 5    :1275//恐らく何らかのミス
 4190  :1185

通常GCC版
inline関数..:マクロ
 755  .:1255
 825  .:1165
 705  .:1125
 695  .:1145
 695  .:1095
 675  .:1135
 635  .:1145
 855  .:1285
 995  .:1255
 845  .:1175
Clock関数で測定したんで、値が低いほど早いです。ソースはやや長いので書き込み不可。

12 名前:1 [2008/05/24(土) 01:42:09 ]
>>11
>check:41539,score:755 clock/ms
はゴミなんで気にしないでください。

13 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:49:25 ]
(llvm-)gcc の最適化オプションは?

14 名前:1 mailto:sage [2008/05/24(土) 08:10:25 ]
>>13
共に-O3です。
inline版はtemplateを多用して
いたんですが、コンパイラ的に
inline展開した中間コードを
吐くのは苦手なのかな?



15 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 08:34:39 ]
う〜ん、姫野ベンチでは LLVM のほうがはやかったので、1さんがどんなソースなのか興味ありますね。どっかのアプロダに置いてくれませんか?

16 名前:1 [2008/05/24(土) 12:12:19 ]
>>15
元々ベンチ用コードじゃないんで
読みづらいかもしれませんが、
時間があれば夜上げておきますよ。
あまりアップローダ使わないんで、
よろしければ、良さげなところを
教えて下さいな。

17 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:56:49 ]
ttp://codepad.org/ とかじゃダメ?


18 名前:1 mailto:sage [2008/05/24(土) 22:43:54 ]
codepad.org/aLVS4Jld
こんなんでいいのかな?

いくつか、自作ヘッダincludeしてあるけど、
処理その物とは直接関係なかったから上げてはないよ。

あと、正直ベンチ計測したのは2週間くらい前でLinux用のコードを
どこにやったか見当たらなかったんだ。ゴメン。

だから代わりに、その後、VCの比較用にWindows向けに弄ったやつを
載せさせてもらうよ。基本的には変わらないはずだから許してね。
(もしかしたら、バグ取りの途中のヤツかも…)

それとコードはかなり汚いし、アホだけど、一応処理系毎の最適化を
調べる目的で書いたんだ。その辺に関してはスルーしてね。

19 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:54:14 ]
そのコードで inline 版とマクロ版がそんなに違うのはやっぱり何かが変なんではないかと思うな ... というか inline/マクロのちがいというより std::vector<int> と int[] の違いなのか。

20 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:26:55 ]
過去スレ
pc11.2ch.net/test/read.cgi/tech/1166508605/



21 名前:1 [2008/05/25(日) 19:27:01 ]
>>19
今回は、配列版だけしか使ってないよ。
そういえば、VCでVectorと配列で測ったら
Vector版の方が早かったよ。スレ違いでは有るけど
何でだろうね。

(以降は名無しに戻ります)

22 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:02:56 ]
>>21
あげてくれたソースコードではコマンドラインオプションで「マクロ」を選ぶと int[] になってて、「インライン」だと vector<int> になってたけど ???

23 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:55:49 ]
>>22
ホント?コード上はoptionの3bit目を基準に書いてたんだけど、
optionの指定も分岐も問題なさそうだよ?
環境依存か何か書いたかなぁ。

24 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 03:35:11 ]
あ、なるほど、読み間違ってました、失礼。

25 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 08:18:39 ]
#include <stdio.h>
#define TARGET 1000000
int primes[TARGET];

int main(){
int n=0;
int i;
primes[n++]=2;
for(i=3;i<TARGET;i++){
int k;
for(k=0;k<n;k++){
if((i%primes[k])==0) break;
}
if(k==n){
primes[n++]=i;
}
}
printf("total: %d primes¥n",n);
return 0;
}
だけでやってみました。Core Duo 2GHz です。
llvm-gcc-4.2 , gcc-4.2 で -O4 でコンパイルして time ./a.out で計っただけです。結果は llvm-gcc が 21.5 秒、gcc が 23.3 秒、まああんまり変わらないですが。

やっぱ 1 さんのは inline 展開がされてないんではないかと気になりますね。

26 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:59:04 ]
なるほどね。もしかして、GCCだと__attribute__でinline指定しないと
ダメなのかな?あとで、>>25さんのコードも含めてやってみるよ。
ところで、面白い記事があったから貼っとくね。
lucille.atso-net.jp/blog/?p=430
どうやら、物によっては30%も加速するんだって。どんなコードだろ?

27 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:48:53 ]
>>26
僕はその記事をまえにみたときに自分で姫野ベンチやってみたんですが、
x86 ではたしかにかなり加速しましたよ。なぜか x86-64 ではあまり加速しなかったんですが。1 さんの Linux box は もしかして 64 bit ?

28 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:17:03 ]
>>27
 いや、PenMなんだ。もしかしたら、アーキティクチャが影響したのかも
とも思ってたんだけどね。
浮動少数より整数演算が強いってことはSSEとか最適化かかると
逆に弱いかもしれないし。(ASMまで考えて無いからいい加減…。
今は、時間が無いから時間が空いたら色々試して報告してみるよ。

29 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:35:56 ]
あれ、Linux(Fedora)の標準リポジトリにもう入ってる?

30 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:32:38 ]
MacのOpenCLもLLVM使うらしいね。
lucille.atso-net.jp/blog/?p=526



31 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:19:02 ]
ttp://www.ottimo.co.jp/koike/
>OpneCLは大学や研究所関係者が泣いて喜ぶかも(笑)そしてリンク時のオプティマイズとは恐れ入りました!

32 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:24:24 ]
注目しているのはむしろ Grand Central だと思うけどな

33 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:42:39 ]
Xlibとか、Win32APIとか、埋め込みSQLなんかの
決まりきった設定系処理なんかにも効き目あるんだろうか?

34 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 15:21:11 ]
ttp://clang.llvm.org/StaticAnalysis.html
objcスレ向きか?

35 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 23:57:06 ]
しばらく前だけど、LLVM2.3のベンチマークが載っていた。

journal.mycom.co.jp/news/2008/07/07/016/index.html
www.stefankrause.net/wp/?p=9

この結果はlliを使っているようなので、
llcを使ってネイティブコンパイルした場合の結果が
気になるところだ。

LLVM2.2のベンチマークはこちら。
lucille.atso-net.jp/blog/?p=430

それから、LLVMの勉強会が開かれるらしい。
場所は恵比寿なので、東京近郊の人は行ってみれ。

groups.google.co.jp/group/llvm_study/web/%E7%AC%AC%E4%B8%80%E5%9B%9E+llvm+%E5%8B%89%E5%BC%B7%E4%BC%9A



36 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:08:11 ]
ttp://llvm.org/devmtg/2008-08/

37 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 11:05:57 ]
ttp://www.cups.org/articles.php?L562+TNews+P1+Qlpd+ipp
>Removed unused variables and assignments found by the LLVM "clang" tool.
>Added NULL checks recommended by the LLVM "clang" tool.

ttp://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-August/002670.html
>this is a basic idea of Blocks: it is closures for C.
>It lets you pass around units of computation that can be executed later.

38 名前:デフォルトの名無しさん mailto:age [2008/10/05(日) 02:11:25 ]
なんだか過疎ってるね
なんかネタない?

39 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:14:38 ]
ttp://llvm.org/devmtg/2008-08-23/

40 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:35:16 ]
寝る前にベンチでも取ってみようかと、Mingw32/x86のllvm-gccとllvm-ldでgzipコンパイルしたんですけど、
lliで実行すると

ERROR: Program used external function 'close' which could not be resolved!

というエラーが出ます。
ビルドがうまくいってないのかと思い、

#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
fp = fopen("out.txt", "w");
if(fp == NULL) { fprintf(stderr, "error: fopen"); exit(1);}
fprintf(fp, "hello world\n");
close(fp);
return 0;
}

みたいなコードで試してみたんですが同じエラーが出ました。
close()をコメントアウトすると動いているようです。
mingw版は外部のライブラリとのリンクはまだうまくできないんですかね?



41 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:50:29 ]
fclose

42 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:27:27 ]
>>41
ですね・・・失礼しました;;

念のため
int main() { close(0); return 0;}
というコードでも試してみたんですが、やはりリンクはできないようでした。
gzipをfopen(), fclose()を使うように書き換えてみる or gzipはあきらめるなど
また今度試してみようかと思います。

43 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:43:02 ]
MinGWはmsvcrt.dllを使っていて、そこではcloseがANSI C標準に入っていないという理由で
_open/_closeという名前になっているのが原因か?
MinGWはろくに使ったことがないけど。

44 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 08:34:03 ]
>>39
第1回勉強会か。英語で紹介されるとカッコいいなw
第2回ってないの?あるなら行きたいんだけど

45 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 17:28:24 ]
>>42
>>43の言うとおり、Win32 CRTでは、ANSI C標準に入っていない関数(UNIXで言うところの
システムコールも含む)は先頭に_をつけた関数名になる。
だから、MinGWでビルドするならすべて名前を変更しなければならない。
たぶんストリーム関数を使うように書き換えるより、open, close, read, writeあたりを
_つきに置き換える方が楽だと思う。

46 名前:40 mailto:sage [2008/10/08(水) 02:35:22 ]
>>43 >>45
ありがとうございます。一部関数を'_'つきに変えたら何とかコンパイルはできました。
ただ挙動がかなりあやしげですが・・・。たとえば引数無しで実行すると反応がなかったり。
一応解凍はできるようになったみたいなんでベンチとってみました。
計測はtimeコマンドでやりました。
結果見るとllvmでいい結果がでてますが、gccでのコンパイル、llvm-gccでのコンパイルともに
完全ではないなので参考までということで。
ちなみに
llvm-2.3(gzip-1.2.4) はgzip-1.2.4をllvm-gccでコンパイルし、lliで実行したものです。
llcでのネイティブへの変換はうまくいきませんでした。
gcc-3.4.4(gzip-1.2.4) はgzip-1.2.4をcygwinのgcc-3.4.4でネイティブバイナリにコンパイルしたものです。
cygwin(gzip-1.3.12) は配布されているcygwinのバイナリです。
==== llvm-2.3(gzip-1.2.4)
user 0m0.031s
user 0m0.031s
user 0m0.015s
user 0m0.000s
user 0m0.015s
==== gcc-3.4.4(gzip-1.2.4)
user 0m5.085s
user 0m5.054s
user 0m5.054s
user 0m5.163s
user 0m4.897s
==== cygwin(gzip-1.3.12)
user 0m4.914s
user 0m5.413s
user 0m5.038s
user 0m5.163s
user 0m5.085s
正しく計測ができていなそうですが、せっかく測ったので。

47 名前:40 mailto:sage [2008/10/08(水) 02:36:36 ]
あと、
gzip-1.2.4をllvmでコンパイルするパッチを
codepad.org/doeKoAQi
に、(パッチ当てた後 BUILD.sh を実行すればコンパイルできるはずです)
テストに使用したスクリプトを
codepad.org/T4LSsUpK
に、このスクリプトの実行結果を
codepad.org/RZyAm3Tb
にはりました。


48 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 09:38:16 ]
gcc も -O3 だけじゃなくて最適化オプションいろいろ調整すれば
もうちょっとはやくなったりするので、何を持って llvm-gcc の速度というか疑問だったりするんですが。

49 名前:デフォルトの名無しさん [2008/10/10(金) 07:19:30 ]
mingwのllvm-gccとcygwinのgccで比較しちゃダメでしょ。
cygwin gccのバイナリの方がが遅いのは当たり前。

50 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 21:50:25 ]
うお、よく見たらCygwinと比較してるのか。ダメすぎるぞ。
確かにCygwin版ならopen(2)とかclose(2)とかがそのまま使えたかも知れないが、
それはCygwinでそのあたりの関数群をエミュレーションしてるからだ。だからむちゃくちゃ
遅くなる。
llvm-gcc版と全く同一のコードでビルドできるから、MinGW-gccでもう一度やり直し。



51 名前:デフォルトの名無しさん [2008/12/02(火) 23:03:18 ]
オレ言語コンパイラをllvm対応させるとどんなよいことがありますか?

52 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:10:51 ]
Alchemy使ってFlash化できるかもしれない。
いや、俺まだ触ってもいないけど。

53 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 01:27:06 ]
最適化とかを自分でやらなくて済むくらいかな
でもこれはgccでも一緒か。作業的にはC++で書かれてる分LLVMのが楽そうだけど

54 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 07:33:37 ]
いやgccは魔境らしいからLLVMやろうぜ

55 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 02:54:18 ]
一応書いておくと、LLVMの開発系MLは以下で読めるよ。

ttp://lists.cs.uiuc.edu/pipermail/llvmdev/

今月分
ttp://lists.cs.uiuc.edu/pipermail/llvmdev/2008-December/date.html

56 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 18:05:00 ]
clangとLLVMをベースにしたOpenCLの実装が開発中らしい。

lists.cs.uiuc.edu/pipermail/llvmdev/2008-December/018913.html

57 名前:デフォルトの名無しさん mailto:age [2008/12/27(土) 19:51:36 ]
これWindowsだとどう処理されるの?
一応実行中のバイナリは書き換えできないよね?

58 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 19:57:26 ]
>>57
実際のところ、実行時最適化は Windows 以外でも使われてない。

59 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 09:28:27 ]
やったとしても"バイナリ"を書き換える必要はないだろうけどね

60 名前:デフォルトの名無しさん [2009/01/13(火) 08:16:38 ]
>>56
clangもLLVMもOpenCLも、Appleが主導してるようなものだからなぁ。
結局は積極的に利用するのはAppleくらいなものじゃないのかね。
LLVM-GCCもiPhoneくらいだろ?実際に使ってるの。



61 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 10:56:42 ]
その実装はAAPLとは全く別でしょ。
最近VMMに買収されたらしいよ。

62 名前:デフォルトの名無しさん [2009/01/13(火) 14:49:29 ]
>>59
if(a<5&&b<10)break;
ってな条件があって成功しない
確率の方が多い時(ループ中のbreakとか)
実際の利用状況としてa<5は頻繁に成立しまう場合は
if(b<10&&a<5)break;
と書き換えてしまった方が早くならない?
とくにファイルに保存したデータの状況によって
b<10とa<5の成立頻度が変わる場合は便利な気がする。

63 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:52:15 ]
それならどのみち分岐予測が効くから違わんのでない?

64 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 08:59:57 ]
>>62
(直前のレスを読んだなら)>>59が言ってる"バイナリ"は、オンメモリの実行コードのことじゃないことはわかっていると思うが…
結局の所、実行ファイルを書き換える必要は無いよな

65 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 13:49:10 ]
そう?実行時に書き換える手間が減るからある程度は効果ありそうに思うけど

66 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 09:33:51 ]
実行ファイルとngenのキャッシュ的なものがごっちゃになってる気がする
独自のJITキャッシュデータの話なら、書き換えできるできないの話にはならないし
実行ファイルそのものを書き換えるという話なら、USBに入れて使えない

67 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:39:06 ]
llvm-gcc -emit-llvm -S で吐き出したコードの中に

%val = load i32* getelementptr (%struct.S* @b, i32 0, i32 0)

のような、load 命令の中で getelementptr 命令を使っている行がありました。

LLVM IR にこのような文法があるのでしょうか?
リファレンスマニュアルを見ましたがこの文法が見当たりませんでした。

68 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:23:53 ]
llvmを使って新しいカーネル作れないかな?

69 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 18:20:42 ]
LLVM の最適化は自動ベクトル化に対応しているでしょうか?

2つの4次ベクトルの要素をすべて取り出して、対応する要素を加算して、
加算の結果をまたベクトルに戻す処理を書いたのですが、opt -std-compile-opts
で最適化しても1つのベクトル加算に変換されていませんでした。

70 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:08:49 ]
>>67
亀レスだけど、ConstantExprのことかな?
マニュアルには載っていないので、ソースコードを読まないと分からない。
ExpressionをConstantとして扱う機能だから、
この場合はgetelementptr命令の返却値をload命令の引数にするという意味。
(ConstantExprの場合は括弧が追加される)

「include/llvm/Constants.h」と「lib/VMCore/Constants.cpp」にある
定義を読み「lib/VMCore/AsmWriter.cpp」でLLVM IRとしては
どんな文字列が出力されるのか確認すれば、分かるようになるかもね。

分からなければ、自分ではConstantExprを使わずに、
別のInstructionに分けて書けばいいと思ふ。
(この場合はgetelementptr命令の返却値を一度変数に代入する)





71 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:10:14 ]
第2回勉強会をやるみたいだね。
興味のある人は参加してみては。

atnd.org/events/381



72 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:56:22 ]
>>71
もう申し込んだよ。楽しみだー。

73 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 19:22:48 ]
HLVMのアルファ版が出たようだ。
コンパイラや言語を自作したい人は、これをベースにすると楽ができるのかも。

lists.cs.uiuc.edu/pipermail/llvmdev/2009-March/020729.html



74 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:26:46 ]
教えてもらいたいんだけど、
LLVMのJITって
lli + *.bcのビットコードの状態じゃないと有効じゃないの?
llcでネイティブなコードした実行ファイルの状態だと
普通のコンパイラがはいたバイナリと同じ?

75 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 20:51:40 ]
そう。
それにデフォルトの状態では特にJITであること生かした動作してない気がする。

76 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:27:06 ]
>>75
ありがとう。
llvm-ldで実行ファイルできるじゃん
って思ったら.bcをlliに渡すラッパーだったw

ところで、mingw用のインポートライブラリを
変換する方法ってないんですかね?


77 名前:デフォルトの名無しさん mailto:age [2009/03/21(土) 00:11:46 ]
勉強会age
このスレまだ100も行ってないのかyo

78 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:45:56 ]
>>73
軽く読んでみた限り思ったよりHighLevelじゃないしあんまりメリットが見えない。
OCamlはかじった程度なんで間違ってたら解説よろしく。

>>77
ユーザーの絶対数少なそうだし。
勉強会の懇親会で食中毒でも起こったら日本のLLVM関係者の1割ぐらい減るんじゃなかろうか。

79 名前:会場の人 mailto:sage [2009/03/21(土) 12:37:18 ]
>>77
もう明日か。
思いのほか人数増えちゃってgkbrしてます。入りきるかなー・・・。
色々不手際あるかと思いますがゴメンナサイ。と、今から誤っておくます。ヒー

電源タップの数がまずもって全然足りてないので、
ノートPC持ってくる人は満充電にしてきてね!

80 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 13:55:22 ]
>>79
電源タップもって行けば会場の電源の容量は足りますか?



81 名前:会場の人 mailto:sage [2009/03/21(土) 15:01:47 ]
電源容量は・・・調べてませんがノートくらいならまかなえると思います。さすがに。
もし火を吹いたら、消火のご協力をお願い致します。w

というか電源タップ持ってきて頂けると非常に有難い!ありがたやー!

82 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 23:33:28 ]
>>主催者&発表者各位
お疲れさまでした。なかなか楽しめました。ありがとう。
自分で触っている人あんまりいなかったのかなー。
>>81
おれ電源タップひそかに持っていったんだけど、いらなかったみたいねorz

83 名前:会場の人 mailto:sage [2009/03/22(日) 23:52:12 ]
>>82
ご協力頂き有難うございました!
思ってたより、ノートPC持ってきた人少なかったですねw


新しく買ったノートにLLVM入れたいんだけど、MinGWのインストーラが
ネットにつながってくれない・・・。('A`)

84 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 01:42:48 ]
海外出張と重なって勉強会に行けませんでした (泣
次回は参加するぞ〜。

85 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 19:04:04 ]
LLVM IRを書きだせる言語は現状、C++、C、Haskell、Ruby、Pythonの5つかな?

86 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 20:38:18 ]
デフォルトで入ってるOCamlが入ってないのはなんかのいじめですか

87 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:52:43 ]
LLVM IRとbitcodeの関係性って、どう理解すればよいの?

88 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 21:14:42 ]
LLVM IRのバイナリ表現がbitcode

89 名前:85 mailto:sage [2009/05/04(月) 17:19:36 ]
>>86
m(_ _)m
C++、C、OCaml、Haskell、Ruby、Pythonの6つですね。



90 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:28:00 ]
nVidiaのOpenCL実装にもLLVMとclangが使われているっぽい。

lists.cs.uiuc.edu/pipermail/llvmdev/2009-May/022320.html





91 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:53:59 ]
gihyo.jp/admin/clip/01/fdt/200905/12
FreeBSDはclang使えないか模索中

92 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 08:52:19 ]
MacRubyもLLVM採用、とまらないLLVM人気
ttp://journal.mycom.co.jp/news/2009/04/03/051/index.html

93 名前:デフォルトの名無しさん [2009/07/22(水) 00:12:02 ]
今更ネタだがホイ。

Adobe Alchemy登場、C/C++アプリをFlashで動作させる研究にLLVM技術採用
journal.mycom.co.jp/news/2008/11/21/005/index.html

>Alchemyで変換されたコードはActionScript 3.0よりもかなり高速に動作し、
>ネイティブC/C++コードよりは2倍から10倍遅く動作するとみられる。

94 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 01:22:12 ]
unladen swallow で Python も LLVMで動くようになったな。
最適化はこれからだけど。

95 名前:デフォルトの名無しさん [2009/07/24(金) 20:42:06 ]
The Computer Language Benchmarks Gameに早く登場しないかな。
Java -serverがやたら速いから、比較できると良い競争になる。

96 名前:デフォルトの名無しさん [2009/09/19(土) 06:59:29 ]
今更だけど、clangとllvmでFreeBSDとDragonflyBSDのカーネルコンパイルできたそうです。
・FreeBSD
wiki.freebsd.org/BuildingFreeBSDWithClang
・DragonflyBSD
leaf.dragonflybsd.org/~alexh/clang/clang.html

OpenBSDが好きでデスクトップで使ってるんだけど、FreeBSDコミュニティと違って、OpenBSDコミュニティは安定性を最重視して昔のpccに注目してるみたい。
OpenBSDカーネルのコンパイル、今度やってみようかな。

97 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 09:01:01 ]
>>93
今更だけど
LLVM本体のおかげで速いわけじゃないんだからその引用はどうなんだろう

98 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 10:53:19 ]
>>97
たしかLLVMが最適化されたAS3コードを生成するから、同機能の手書きAS3コードよりも速いとか言う話しだったと思う。
どっかでそんな速度比較記事を読んだ覚えがあるんだけどどこだったかな。

99 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 01:30:40 ]
それは初耳。
LLのイベントでは仮想関数の少なさ、dynamic型がない、Bytearrayによるポインタの模倣等の結果みたいな話だった。
むしろその言語の特性ではなくバックエンドのアドバンテージによるものならadobeは成果をmxmlcに取り込んでいると思うのだが…

100 名前:デフォルトの名無しさん [2009/10/22(木) 23:19:11 ]
LLVM 2.6が23日に正式リリース - マルチスレッド環境により最適化
journal.mycom.co.jp/news/2009/10/22/049/index.html



101 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 08:21:47 ]
>>99
・オブジェクトだけ持ってきて利用できる
・バックエンド作るのは比較的簡単
ってことで、現状は自然なのでは?

ActionScript本体の方はいつもバタバタしてるしね。
コードも汚いし。そう簡単にLLVM化出来ない。

102 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 08:03:06 ]
LLVMをclang+llcでセルフビルドできる?


以前書いたややこしいCモジュールをllvmでやってみたら、gccにくらべ10%程度速くなった。
llvm-gcc -O0 -O6, clang いずれでも同様の結果になった。
llvmいい仕事してるな。

103 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 11:25:41 ]
llcでBitCodeからアセンブリファイル(*.s)は作れたけど、exeファイルの作り方がわからない・・・

もしかして、gccが無いとexeファイルって作れない?

104 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 13:19:11 ]
より厳密にはtarget向けに作られたbinutils(asとld)が必要かな

105 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:32:07 ]
mingwを導入するとよろし

106 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:25:55 ]
sourceforge.jp/magazine/10/02/08/0254222
LLVMのコンパイラ「Clang」、セルフホスティングに成功

journal.mycom.co.jp/news/2010/02/09/030/
あるコンパイラが重要なマイルストーンに到達、LLVM Clang


107 名前:デフォルトの名無しさん [2010/02/10(水) 15:49:51 ]
これは凄いと思う。LLVM,SCONS、FreeBSDで
X11まで行くと、あとはGnomeだけになる。
その間に、GNUコンパイルチェーンのBSDライセンス化希望。

108 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:49:18 ]
何で全角…

109 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:52:49 ]
大事なことなので全角で書きましたが何か?

110 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:15:35 ]
GNUがわざわざコピーレフトでないライセンス使うなんて
Gnuzillaとかncursesみたいな事情があるものだけだろ
チェーンツールをBSDにする理由が無い



111 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:02:53 ]
MPLはコピーレフトだよ

112 名前:デフォルトの名無しさん [2010/02/11(木) 11:57:07 ]
>>110
llvmに関しては君みたいな何かを勘違いしてる人が多くて、
嘘解説が半分くらいあるのが、日本で知らない人が多い理由だよな。
仮想マシン基盤とか言ってるサイトがトップ近くにヒットしたりするし。

113 名前:煽り文 mailto:sage [2010/02/11(木) 13:09:42 ]
ライセンスがどうとかそんなことより
俺が知りたいのは

W I N D O W $ で動くかどうかということだ!!!

114 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 13:12:48 ]
>>112
>>110だけど何で絡まれたのか分からん。
勘違いってMPLが非コピーレフトだと思ってたこと?
なんかこじつけくせえレスだな

115 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 13:32:19 ]
ごめん上げたから馬鹿に勢いを付かせてしまった。

116 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 13:42:50 ]
>>114
>何で絡まれたのか分からん。

「何かを勘違い」とか書いてるくらいだから、
>>112 自身も分かってないのかもよw
スルーするがよろし。

117 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:19:22 ]
>>116
スルーされてるのにスルーすればよろしって(w
なんで絡まれてるのか分からないほど馬鹿相手にしちゃったなと。
その理由は>>112君ほど酷い勘違いをしてる人間が存在してることが
llvmの悲劇だと言うことを、君に伝えてるわけではない。
と言うことくらい読解せよ。ウザイからもうレスするなお前。

118 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 16:17:28 ]
日本語でおk

119 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:40:25 ]
やべぇ読解できねえ

120 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 02:33:27 ]
>>117みたいに日本語も使えない人間が存在していることが
LLVMを日本で知らない人が多い理由だよな(キリッ



121 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 03:13:49 ]
clangが実用になるのが待ち遠しい

122 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 06:09:18 ]
>>121
セルフビルドに成功したのだから、もう実用化αというレベルだと思う。
使っていくべきかも知れない。


123 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:05:47 ]
ただしmac,linuxに限るというのもまた一面の真理。

124 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 15:02:41 ]
*BSDでも使えるだろw

125 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 20:05:44 ]
FreeBSD/CLANG ready for testing!
ttp://ivoras.sharanet.org/blog/tree/2010-04-16.freebsdclang-ready-for-testing!.html

126 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 14:59:54 ]
[Phoronix] Benchmarking LLVM & Clang Against GCC 4.5
www.phoronix.com/scan.php?page=article&item=gcc_llvm_clang&num=1

127 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 05:49:17 ]
iPhone 用のアプリ作ってるんだけど、
LLVM gcc でも clang でも普通に動くバイナリできるな。

128 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 22:47:00 ]
LLVMでWindows用のバイナリ作成ってできるのでしょうか?
たとえばWindows用の実行ファイルが作れるオレオレ言語の作成って可能ですか?

129 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 23:06:42 ]
可能

ただし、>>103-104

130 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 23:17:07 ]
>>129
可能なんですね!

binutilsとか全然わかりませんがキーワードを教えてもらえたんで色々勉強してみます。
ありがとうございました。




131 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 00:27:36 ]
>>128
PECOFFを始めとするバイナリファイルを直接生成するプラットフォームが
現在進行中(だと思う)ので、近い将来、直接 *.o *.exe を吐けるようになるだろう。
(*.bcでないライブラリのリンクがどうなってるかはシラン)
(DLLのインポートはきっとやってくれるハズ)

まずは、tools/lli で完動する *.bc オブジェクトを吐けるようになるまでがんがれ。
あとは、Mingw の msys を拾ってきてひたすらほげれ。

つか、コンセプト作りとか実験は OSX の方が楽かもな。ちょっと回り道になるけど。

132 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:54:19 ]
mingw gcc-4.5 dragonegg のバイナリ呉

133 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:40:39 ]
まーたffmpeg or x264厨か

134 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:51:03 ]
興味本位で訊くが、その厨ってdragoneggを欲してるのか?
単にベターなコードを吐いてくれそうな処理系でコンパイルしたがってるだけか?
単にベターなコードを吐いてくれそうな処理系を持ってる奴にコンパイルさせたがってるだけか?

135 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:16:34 ]
LLVM、GCC libstdc++をBSDライセンスのlibc++へ置き換え
ttp://journal.mycom.co.jp/news/2010/05/18/045/index.html

136 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:23:23 ]
ホント、Apple 様々じゃのう…

137 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 00:45:02 ]
LLVMはじまってきたな

138 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 01:34:11 ]
LLVMというかClangでは?

139 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 06:22:32 ]
肝心の Code Generator がいまいちだよな。x86 では変なコードをよく吐く。

140 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 12:16:44 ]
日本の研究機関ではCOINS一択なのか? この分野では。



141 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 05:57:40 ]
COINSを使って、この分野の権威の人たちの歓心を買わうと
科研費とか得られやすいからね
COINSプロジェクトは日本のコンパイラ分野の大物がたくさんはいってるから

142 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 06:03:26 ]
ちゅーか、一択どころか選択肢が皆無だったからこそ
COINSなんてものが作られたわけで
別に国産に縛られずとも良いとは思うけども、
国産だったら便利なこともあったりするわけで

143 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 07:44:41 ]
で、COINSの成果を製品に活かしてるところがどこかあるのかね。
LLVMのほうがプロジェクトとしてはむしろ古いはずなんだが。

144 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 12:54:44 ]
CONIS スレは即死した。
 COINSについて語ろう
 pc12.2ch.net/test/read.cgi/tech/1232545653/l50

このスレはまだ生きてる。

145 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 18:39:18 ]
>>143
少なくとも今のところ、COINSが流行るとも思えないのは確か
GCCとかと比較して、とりたてて性能が良いとかのメリットがない
でもプロジェクトは古い方が有利では

146 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 19:05:00 ]
>>145
>でもプロジェクトは古い方が有利では

だからGCCが優勢なのか。


追伸 libjit でいろいろ情報を漁ると厨臭がモロ。

147 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 01:14:27 ]
>>146
既にclangはかなり良い性能だと思うけど、こいつでできるのは
(ネイティブコンパイルの場合)x86のアセンブラ出力まで。

こいつをCOFFやELFなどの各種OS向けの実行プログラムとしてビルド/リンクする機能がまだ揃ってない。
(GCCツールチェインの場合はbinutilsが担当している)

148 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 06:50:25 ]
>>147
MCが進行中だね。2.8では .ll .bc .s .o (もしかするとexecutableも) 直接吐けるようになるだろう。
asを介さずバイナリが吐けるのは結構いいかも。

clang++ が boost 作れるようになったから C++ 部が落ち着くのももうじきだな。
という俺は未だにclangを試したことがなく llvm-gcc ばかり使ってる。

つか日本語の情報が少なすぎる…

149 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 07:49:48 ]
>>148
clangは手元のWindows環境でHello worldが動くことは確認したよ。
最適化を掛けたらちゃんとprintfがputsに置き換えられた。

150 名前:デフォルトの名無しさん [2010/05/24(月) 18:03:48 ]
>>144
COINSのセンスの無さ。
1、JAVAで書いてる
2、JAVAで書いてるのにオブジェクトの内臓を弄るような使い方
3、中間形式が2形式もある
4、中間形式が2形式もあるのに読みにくい
5、これだけ抽象化してるんだから新言語開発に使える?
  とか思っても、案外型情報とか決め撃ちしてて使いづらい。
6、CPUの新命令セットを言語からサポートさせようとすると
  当然だけど、全部に手を加えなきゃ駄目、それがまためんどくさそう。
7、多言語対応って言ってるけどもCOBOL C →ひとつの中間形式というより
  COBOL→COBOL中間形式、C→C中間形式 COBOL中間形式とC中間形式の
  文法が似てるだけって感じが色濃すぎて何がなんだか。

結局マルチCPU、マルチ言語対応のコンパイラ基盤というより、
C言語コンパイラとCOBOLコンパイラと、x86コンパイラとPowerコンパイラを
全部リンクしましたって感じ。



151 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 18:15:02 ]
>>150
結局文字列を高度に解析するようなシステムって、動的言語で書いた方が圧倒的に簡単なんだよね。
ハッシュやリストで済むようなことが、静的型付け言語だといちいちクラス書いてやらないといけない。
テキストパーサやコンパイラの分野のプログラムを書くと特にそう感じる。

まあ、スレ違いだがな。
10年かけてC++でシステムを構築してきたLLVMマンセーってことで。

152 名前:デフォルトの名無しさん [2010/05/24(月) 18:33:17 ]
一番最悪なのが、I32やI64が決まるのが、Lowレベル中間形式に落ちてから
ここが最低最悪センス無さ杉。基本型の大きさはHiレベルで決めて、
例えば32ビット対象コードでも、Lowレベルで8ビットコンピューターに還元できるような
そういう設計が必要なんだと思う。LLVMはこれを一番気にしてる所が偉い。
そりゃ簡単には出来ないだろうけども、これを実現可能な枠組みがあれば2段階中間形式も
許されるけど、単に字句解析(これすら他者開発)を分けただけぽい2段階って何の
意味があるのか訳がわからない。

153 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 20:01:36 ]
LLVMも Machine**** とか後段に出てくるんだよな。
ほとんどの最適化パスでは無視できるところだが。

貴様ら llvmdev をヲチしてるか?

154 名前:デフォルトの名無しさん [2010/05/24(月) 20:02:17 ]
やっぱGNUは害悪でしかないな

155 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 20:27:45 ]
>>153
Machine****は後段で良いんだよ、このセンスの違いが本気度の違い。


156 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 05:41:12 ]
[INFO]: import of clang/LLVM to happen on June 9th
permalink.gmane.org/gmane.os.freebsd.current/125675
"On June 9th, we are importing clang/LLVM into FreeBSD HEAD."


157 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:12:02 ]
JITが全然速くないんだけど
がっかりだ

158 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 19:21:05 ]
JIT 速くないの?
じゃあ、じっと待つしかないな

159 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 12:46:37 ]
ttp://lldb.llvm.org/
LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler.
LLDB is in early development, but is mature enough to support basic debugging scenarios on Mac OS X in C, Objective-C and C++.
All of the code in the LLDB project is available under the standard LLVM License, an open source "BSD-style" license.

これも Apple が主導してるのかな

160 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 12:48:04 ]
Copyright見た?



161 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 12:58:03 ]
見てなかった
Apple Inc. って書いてあるな

162 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 18:35:16 ]
CLang関係に山ほど居るからな、Appleの中の人。

163 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 19:43:34 ]
AppleはGNU憎しでLLVMにテコ入れしてる側面もあるみたいだ。
Apple従業員はGPLv3コードに触れられないので今やDragoneggはDuncan Sandsの双腕にかかっている。

164 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 20:40:46 ]
GPL 自体というより GPLv3 を徹底的に避けようとしてる節はあるな
GPLv3 が無ければ CUPS の買収もしなかった気がする

後はまあ BSD 系の開発者も社内に多そうだし

165 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 12:06:44 ]
CUPSのデュアルライセンス化ってGPLv3以降か?

166 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 12:48:00 ]
買収が公表されたのは GPLv3 の正式発表後だと思う
デュアルライセンス化もこのタイミングなのかな
買収成立は公表の半年前らしいから GPLv3 の初稿からは1年経ってる

167 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 14:49:39 ]
2002年だからずっと前だと思うけどな。
www.cups.org/articles.php?L68+TNews+Q
この頃からMac OS X独自拡張がソースツリーに突っ込まれた。

168 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 16:17:53 ]
C++で分岐予測が外れた時どれ位のオーバーヘッドが生じるかテストしてみました
私の所の環境では乱数によるCALLでは交代CALLの約10倍のコストが生じました
(Athlon X2 5600Mhz)

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

struct foo {
__int64 start, end, freq;

HANDLE hprocess;
DWORD oldclass;

foo() : hprocess(GetCurrentProcess()), oldclass(GetPriorityClass(hprocess)) {
Sleep(10);
// SetPriorityClass(hprocess, REALTIME_PRIORITY_CLASS);
QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
QueryPerformanceCounter((LARGE_INTEGER*)&start);
}
~foo() {
QueryPerformanceCounter((LARGE_INTEGER*)&end);
// SetPriorityClass(hprocess, oldclass);
printf("%d\n", (int)(end - start));
}
};}

169 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 16:18:36 ]
void func1() {}
void func2() {}
void func3() {}
void func4() {}
void func5() {}
void func6() {}
void func7() {}
void func8() {}
void func9() {}
void func10() {}

#define MAXITER 10000000

int main()
{
void (*func[])() = {func1, func2, func3, func4, func5, func6, func7, func8, func9, func10};

{
printf("Alternative Call : "); // 分岐予測が効きやすい
foo f;
for (int i = 0; i < MAXITER; i++)
func[i % 2]();
}

{
printf("Ranom Call : "); // 分岐予測が効きにくい
foo f;
for (int i = 0; i < MAXITER; i++)
func[(std::rand() >> 4) % 10]();
}
}

170 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 17:21:22 ]
rand()に時間がかかるって落ちじゃないだろうな?



171 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 17:26:14 ]
>>168-169
これだと rand 関数がオーバーヘッドに効いてこないか?
(分岐予測にとって) 大きめの配列を作ってその配列を参照したほうがよさそうだけど。
適当だけどこんな感じか?

#define NUMSEQ 256
void (*func[])() = /* 省略 */
int callseq[NUMSEQ];

{
for (int i = 0; i < NUMSEQ; i++) callseq[i] = i % 2;
printf("Alternative Call : "); // 分岐予測が効きやすい
foo f;
for (int i = 0; i < MAXITER; i++)
func[callseq[i%NUMSEQ]]();
}


172 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:32:48 ]
つーかそれLLVMと関係あるのか?

173 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:37:35 ]
分岐予測を誤解釈してない?

174 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 17:03:02 ]
WWDC Video 面白いぞ。Session 312、313、316とかがLLVMネタ。

AppleはいよいよLLVMをデフォルトコンパイラにするのか。

GPLv3がイヤなのは間違いないな。


175 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 12:23:48 ]
いや前からLLVM大好きだし。
PowerPCとx86の橋渡しから、
モバイルデバイスとx86の橋渡しに変っただけでしょう。

176 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 19:28:04 ]
それでもGPLとくにV3が怖いのは間違いないな。

177 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 21:55:50 ]
こわがりすぎー。

178 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:05:14 ]
怖いっつーか、使い辛いからな…

179 名前:デフォルトの名無しさん [2010/07/15(木) 20:00:53 ]
MSがソフトを販売しだしてから、
プロ(代表MS)vsノンプロ(代表Gnu)の関係が築かれていったけど
これからは
フリーライド(代表Apple)と下僕(オープンソース)という関係に
なるようだ。
前者はノンプロがやりたいようにヤルで、プロは金を取って品質やサービスを
プラスアルファで提供するという関係であり、ある意味自然な関係であったと
思われるが、これからは同じ事を一緒にやって、ライドした方だけがお金を
もらうという関係なのだから、下僕は仕様すら決められない、もしくは独自仕様は
過疎仕様としてFDUによりつぶされるようになるだろう。

さよならMatz Ruby

180 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 20:08:21 ]
>>179
すげー勘違い過ぎてワロス



181 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 15:11:24 ]
(´・ω・)とーしろーな質問ですいません
LLVMとClangをビルドして、試しに作ったソースを実行してみたんだけど、include<stdio.h>を読みに行かない・・・
-IでMingWのCインクルードパス指定してやると出来るんだけど、いちいち書くの('A`)マンドクセなのです
LLVMのconfigure実行時に--with-c-include-dirs?で指定しておけば良いのでしょうか?

ソース
#include <stdio.h>

int main(int argc, char *argv[])
{
printf("hello, world\n");
return 0;
}

実行結果
C:\Temp\llvm-clang-gcc-x86>clang t.c
t.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.

182 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 15:47:36 ]
>>181
manpage見れ。
manpages.ubuntu.com/manpages/lucid/man1/clang.1.html

183 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 17:03:08 ]
ありお
今から読んでみます

184 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 17:51:45 ]
(´・ω・)InitHeaderSearch.cpp修正してビルドし直すことにしたっす
>>182さん、親切にどうもでした

185 名前:デフォルトの名無しさん mailto:sage [2010/07/30(金) 00:06:41 ]
(´・ω・)出来た、けどGCCで通る環境をそのままClangに置き換えてやろうとするとエラー(゚∀゚)
まだまだ先はながい・・・orz

(´・ω・)すんません、またとうしろーな質問なんですが
gcc -v ってやると
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/i686-pc-mingw32/4.5.1/lto-wrapper.exe
Target: i686-pc-mingw32
中略・・・
Thread model: win32
gcc version 4.5.1 20100717 (prerelease) (x86.generic.Komisar) (GCC)

clang -v ってやると
clang version 2.8 (trunk)
Target: i686-pc-mingw32
Thread model: posix

今使ってるGCCと作成したClangのThread modelの所が違うんだけど、WinXP上でビルドするにあたって何か問題ってありますかね?
ちょと漠然とした質問ですいませんです

186 名前:デフォルトの名無しさん mailto:sage [2010/07/31(土) 17:08:58 ]
ClangプロジェクトのMLってcfe-devでいいの?

187 名前:デフォルトの名無しさん mailto:sage [2010/07/31(土) 22:56:27 ]
>>186
いえす

188 名前:デフォルトの名無しさん mailto:sage [2010/08/02(月) 00:31:37 ]
>>187
thanks a lot

189 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 01:19:32 ]
(´・ω・)まだかな 2.8 は

190 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 07:43:26 ]
ホムペにスケジュールが出てる。9末。見るよろし。
まあ予定通りになんて逝かないだろうがな!!!



191 名前:デフォルトの名無しさん mailto:sage [2010/09/01(水) 12:20:08 ]
ttp://www.llvm.org/devmtg/2010-11/

誰か行かないか?

192 名前:デフォルトの名無しさん mailto:sage [2010/09/03(金) 03:35:31 ]
分岐地点突入(`・ω・´)?

193 名前:デフォルトの名無しさん mailto:sage [2010/09/03(金) 21:51:39 ]
いつものごとくgdgdが待ってるよ!!!

194 名前:デフォルトの名無しさん mailto:sage [2010/09/13(月) 01:20:25 ]
順調にいっているのかな+(0゚・∀・) + ワクテカ +

195 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 20:24:57 ]
mingw での clang ビルドが失敗してるぞ!!実行するとntdll.dllエラーヽ(`Д´#)ノ ムキー!!
前はビルド&実行共に出来ていたのに何故・゚・(つД`)・゚・ ウェ―ン

196 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 07:01:26 ]
きみのmingwは俺のmingwと違うようだな。


マジレスすると、俺がつかってるのはmsysgit.

197 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 22:46:00 ]
やい llvm!!
libdir とか includedir で dir 指定してもインストール先指定が無視されるジャマイカヽ(`Д´#)ノ ムキー!!

198 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 06:35:19 ]
バグレポしろ。どうせ放置されるか瞬間で却下されるかだろうがな!!!

199 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 21:04:44 ]
もうすぐ2.8出ちゃうから早くしたほうがいいぞ。

200 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 21:29:46 ]
2.8には反映されないからマタリしていいぞ。



201 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 21:53:47 ]
9/20 Pre-release 2 testing begins か。
LLVMってリビジョンでのアップデート無いってことは
リリース前に試してバグレポ出すべきたぐいのもの?

202 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 22:13:44 ]
ToT を使うべし。リリースなんて飾り。ToT

203 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 04:22:10 ]
>>197 続き
win 上で llvm とかやろうとするのがそもそも間違いなのか
llvm は mingw+msys で build しているんだけど、公式だと msvc2008 での説明だしな
まぁ mingw+msys だと環境の縛り(tool の version とか)が厳しいせいかもだけど・・・

あ、後バグレポは・・・無理・・・
英語ダメポな人間なんで・・・orz

204 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 05:18:43 ]
FILENAME : t.c
#include <stdio.h>

int main(int argc, char *argv[])
{
printf("hello, world\n");
return 0;
}

なるものを、以下の HP を参照して llvm で build しようとしたら・・・
ttp://blog.kmckk.com/archives/2435798.html
1. llvm-gcc -emit-llvm -S t.c
2. llvm-as t.s
3. lli t.s.bc

D:\My Developments>lli t.s.bc
hello, world
Stack dump:
0. Program arguments: lli t.s.bc
7C95B21A (0x00B6AD24 0x008F094B 0x00B6AD24 0x00000086), RtlpWaitForCriticalSection()+0091 bytes(s)
7C941046 (0x7C809C2B 0x003E7530 0x0022FB78 0x003E5230), RtlEnterCriticalSection()+0070 bytes(s)
008F19B6 (0x7C95005D 0x77BDC2DE 0x003E0000 0x00000000)
008F1BBD (0x0022FB4C 0x7C94E920 0x7C950060 0x00B667E8)
008F2037 (0x003E74F0 0x00AAEDD7 0x0022FFE0 0x00000000)
008E2606 (0x00000000 0x00000000 0x00D24410 0x0022FF0C)
77BE9E90 (0x00000000 0x00D38308 0x00000038 0x00000000), exit()+0018 bytes(s)
005D5567 (0x00D24428 0x003E6894 0x0022FFE0 0x00D10B3C)
00D24428 (0x00000020 0xFE020000 0x00000000 0x00000000) <unknown module>

一応、結果は表示されてはいるのだけど・・・あれ?何で dump が・・・
lli に何か bug があるのか、それとも表示するのが仕様なのか・・・orz
ちなみにこの表示がされたと同時に >>195 でもカキコした ntdll.dll エラーが発生\(^o^)/オワタ

205 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 05:52:08 ]
連投すまそ

--with-llvmgccdir
Specify location of llvm-gcc install dir (default searches PATH)

これ、default searches PATH ってなってるから他の win 側で設定した path も見に行くものだと思っていたら、此処にしか見に行かないのか・・・ヽ(`Д´)ノウワァァァン

206 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 11:14:35 ]
Cygwin にかまけてる間に Mingw で動かなくなった糞。

ちなみに連中が持ってる buildbot に Mingw の動作テストはない!!!

>>203
MSVCベースじゃないWin32も, Cygwin も、需要はあるでしょ。
最近MLじゃMSVCビルドに固執してる連中が増えてるがな!

207 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 11:56:26 ]
>203
じゃああきらめてCygwinでやれ、拍子抜けするぐらいあっさりmakeできる。

バグレポなんてmingw+msysのこれこれのバージョンでやったとか
コマンドラインでどういうconfigure オプションつけたとか、
makeが成功してるけどインスコdir指定が利いてないということがわかる程度のログとか
そういうのつけてあれば、カタコトでwhy is it wrong? くらいの文章あればイケる。
いけると信じて出せ。おれは保証しないけど。

208 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 12:12:53 ]
llvmいじるのが目的ならもうCygwin(ただし1.7に限る)の方がよい。
FedoraとかのLinuxの方がもっとやりやすいが。

ところで Cygwin 上で作ったバイナリ(特に clang.exe)の起動が糞遅い。
どうにかしてくれよ。つかいまどうにかしようとしてる。

209 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 13:43:29 ]
何もいうことねえけど頑張れとだけいっておく。

210 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 18:26:07 ]
>>206 は単純なミスだった。Mingw で clang hello.c 程度は問題ない。ヘタすりゃ selfhost だってできらぁ。


FAQ とは思うが gcc -MM で吐いた *.d ファイルを理解できない make が存在する!




211 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 18:45:11 ]
まじで29日にリリース出来るのかしら(´・ω・`)?

212 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 22:11:06 ]
LLVMは何でこうも絶対パス命ばっかなんだ?相対パス&環境変数も参照するようにしろよ!!
いろいろ使いにくいだらが(# ゚Д゚)プンスコ!!

213 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:10:14 ]
理由があって絶対パスじゃないような気がするんだが、ためしに相対パス化しようとしておもいっきりハマって以来手をつけてない。
つかWindowsでなければ相対パスとか使わんだろ?

214 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:17:51 ]
まさにその Windows なんだよヽ(`Д´)ノウワァァァン

215 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:20:28 ]
相対パスで動いてるのは clang.dll と、あとは bugpoint くらいだ。

困ったことがあったらどしどしここに書き捨てるよろし。

216 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:36:54 ]
ハードリンク?出来るようにするソフトもあるにはあるけど、なるべく開発ツール側で対応して欲しいんだよね
贅沢な悩みなのか・・・

>>215
レス、ありお

217 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 00:52:22 ]
cmakeも絶対パスなんだよな

218 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 00:59:35 ]
2.8リリースマネージャはかなり頼りない。やっぱターニャだよな!?

219 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 04:27:01 ]
意表をついて三日後くらいに3.0とか5.0とかがリリースされて欲しい。

220 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 17:17:34 ]
(´・ω・)さて、Xデーが近いわけだが・・・リリースは大丈夫かね?



221 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 20:41:25 ]
OSSで意表ついて別の完成バージョン出すのは駄目だろ。Appleはたまにやるが。

222 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 10:16:35 ]
んで2.8出たの?

223 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 12:54:30 ]
(´・ω・`)まだ

224 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:34:22 ]
月曜日まで引き延ばすと誰かが言ってたな。

ところで公式Gitリポジトリはまだかよ!

225 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 15:20:45 ]
(´・ω・)Buildbot の結果が酷いお・・・

9/20 ? Pre-release 2 testing begins
が太文字状態なんだけど、まだこのレベルという事なのか(゚∀゚)?

226 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 10:52:00 ]
落ち着く気配がしないお(゚∀゚)

227 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 18:49:43 ]
さっき見てみたら
10/4 ― Release!
(太字)になってたけど、サイトはまだ2.7が最新になってるな。
どの標準時で考えての10/4かわからんけど、とりあえずそろそろってとこか。

228 名前:デフォルトの名無しさん [2010/10/04(月) 18:51:51 ]
ひとまずageとこう

229 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 21:13:36 ]
いま Chris とかがいっしょうけんめい release notes 埋めてるし!

230 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 00:01:07 ]
(´・ω・)リリースが出来ていないのにリリースとはこれ如何に
何時になったら出るんだヽ(`Д´)ノウワァァァン



231 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 00:01:55 ]
リリース・・・
(ノ・∀・)ノ =====┻━┻))゚Д゚)・∵.
ってこと(゚∀゚)?

232 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 16:08:45 ]
やっとリリースがキタ――(゚∀゚)――!!

233 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 16:32:51 ]
が、win 版は・・・不遇だお(´・ω・`)

234 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 21:44:26 ]
あえて言うが clang/windows はまだオモチャだ。

235 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 22:06:51 ]
まだ自分で試さずカキコするが、Cygwin Mingw で --enable-shared が効くようになってるハズ!

236 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 15:40:59 ]
(´・ω・)llc バージョンを見ようとしただけで dump 吐くお・・・ヽ(`Д´)ノウワァァァン
直ったかなぁと淡い期待をしていたんだけど、やっぱり libdir, includedir の指定も効果が無いし・・・

バージョン 3.0 位までには、動くようになって欲しいお(´・ω・`)

237 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 15:42:43 ]
>>236
まるでソースコードが悪いせいみたいに書いてるけど、
すでに方々で実用化されてるモジュールなわけで。
自分の書き方や作り方が悪いせい、という考えはないんかね。

238 名前:デフォルトの名無しさん [2010/10/07(木) 15:49:07 ]
>>236
過去ログでdir指定きかないっていってた人なら、バグレポ出しとけよ。
バグレポも出さずに勝手に期待して、裏切られたみたいなことを呟くのは
あんまりいい気持ちしないよ。

違ったら酢慢湖。

239 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 18:02:50 ]
>>236
どの環境でどの配布物を使ったか書いてくれ。エスパーまんどくせい。

まだまだデベロッパ都合が多いのは仕方がないと割り切ってくれ。

240 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 22:39:22 ]
(´・ω・)そうだよなぁ、バグレポ出さないのに要望だけは言いまくるってのはあれだよなぁ・・・
だが、それが 2ch クオリティー(゚∀゚)・・・すいません、ごめんなさい、石は投げないで・・・orz

llc 何とかとか libdir 何とかは、以下の configure で build して出来たもの
色々間違ってるかもだけど・・・

llvm rev-115770 (SVN 2.9)
../llvm-2.x/configure --prefix=/llvm_new --build=i686-pc-mingw32 --target=i686-pc-mingw32
--libdir=/llvm_new/i686-pc-mingw32/lib --includedir=/llvm_new/i686-pc-mingw32/include
--enable-optimized --enable-assertions --enable-jit --enable-threads --enable-pic --disable-shared
--enable-targets=x86,x86_64 --with-built-clang=no --with-optimize-option=-O2 --with-llvmcc=none



241 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 22:57:54 ]
エスパーしてみせるが ATI とか NVIDA 配布の llc が起動してたりしないよな?

llc -help を試せ。それ以外のツールも試せ。
それでわかんなかったらビルドログを make VERBOSE=1 で取得して bugs へ池

あと、make install する前に Release+Asserts/bin ができあがってることを確認し
その配下に生成されている実行形式を片っ端から試せこんちくしょう。

242 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 23:31:13 ]
(´・ω・)llc じゃなかった・・・lli だった・・・すまそ
取りあえずもう一回 build して確かめてみるお

243 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 00:52:51 ]
lli だけなのか起動しないのは?

244 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 01:24:16 ]
bugpoint.exe
llc.exe
lli.exe
llvm-ar.exe
llvm-as.exe
llvm-bcanalyzer.exe
llvmc.exe
llvm-diff.exe
llvm-dis.exe
llvm-extract.exe
llvm-ld.exe
llvm-link.exe
llvm-mc.exe
llvm-nm.exe
llvm-prof.exe
llvm-ranlib.exe
llvm-stub.exe
opt.exe
tblgen.exe

のファイルの内 llc.exe と llvm-stub.exe だけ

245 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 01:25:30 ]
チガッタ lli.exe と llvm-stub.exe ですヽ(`Д´)ノウワァァァン

246 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 01:30:28 ]
lli.exe を実行すると ntdll.dll で不具合発生しましたと windows がダイアログ表示してくる
以下、実行時プロンプトに表示された llvm 側が吐きだした dump 結果・・・なのかな

C:\llvm\bin>lli --version
Low Level Virtual Machine (llvm.org/):
llvm version 2.9svn
Optimized build with assertions.
Built Oct 7 2010 (23:52:37).
Host: i686-pc-mingw32
Host CPU: core2

Registered Targets:
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
Stack dump:
0. Program arguments: lli --version
7C95B21A (0x00B70C64 0x008F966B 0x00B70C64 0x003E3C40), RtlpWaitForCriticalSection()+0091 bytes(s)
7C941046 (0x7C809C2B 0x003E3C48 0x0022FA28 0x003E53B8), RtlEnterCriticalSection()+0070 bytes(s)
008FA6D6 (0x7C95005D 0x77BDC2DE 0x003E0000 0x00000000)
008FA8DD (0x0022F9FC 0x7C94E920 0x7C950060 0x00B6C7C8)
008FAD57 (0x003E74C0 0x00AB4A83 0x0022FFE0 0x00000000)
008EB326 (0x00000001 0x00000000 0x00B6FC00 0x00000000)
77BE9E90 (0x00000001 0x00B6FC00 0x003E2C4C 0x00000007), exit()+0018 bytes(s)

247 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 01:32:42 ]
llvm-stub.exe のはこれ

C:\llvm\bin>llvm-stub --version

C:\llvm\bin>lli: error loading program 'llvm-stub.exe.bc': No such file or directory
pure virtual method called
terminate called without an active exception

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

248 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 01:53:18 ]
どのmingwだ? どの msys だ? gcc のバージョンは?

lli.cpp の atexit() 呼んでるところを頃してみそ

249 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 01:56:15 ]
あ、後 config.log の後半に libdir とかの部分があったんだけど

部分抜き出しで掲載
## ----------------- ##
## Output variables. ##
## ----------------- ##
LLVM_INCLUDEDIR='/llvm_new/include'
LLVM_LIBDIR='/llvm_new/lib'
includedir='/llvm_new/i686-pc-mingw32/include'
libdir='/llvm_new/i686-pc-mingw32/lib'

## ----------- ##
## confdefs.h. ##
## ----------- ##
#define LLVM_LIBDIR "/llvm_new/lib"
#define LLVM_INCLUDEDIR "/llvm_new/include"

(´・ω・)どゆこと?libdir で指定するのは llvm の lib のインスコ&参照先ではなく、違うやつのってこと?
つか、もれが大いなる間違いをしているだけなのか・・・orz

250 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 02:00:51 ]
バグレポできないとかなんとか言ってる割に
ぜんぜん再現性情報もださないとなると、
誰も追試できないから調べようにも調べられない。
つまり、こいつは別に誰の助けも必要としてない、ということだ。



251 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 02:02:25 ]
GCC は自前 gcc version 4.5.2 20100930 (prerelease) (GCC)
MSYS は MinGW-w64 の所にある MSYS-20100911.zip を使ってるです

252 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 02:18:22 ]
>>251 の GCC
mingw_new_gcc-4.5.2_sjlj_x86_dist_full_pack.7z
www.mediafire.com/?7rh2znqqyao0d

(´・ω・)長々とすんませんでしたお
今日は、寝ますです

253 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 09:01:15 ]
>>251
自前じゃなあ。配布物で出直してこい。貴様ビルドの話はそれからだ。

254 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 14:59:15 ]
(´・ω・)お騒がせしました、MingW 公式のだと問題無かったDEATH
llvm-stub は、何か error が出るけど、対象物が見つからない
もれの自前 GCC がタコなだけだったのか(゚∀゚)・・・(´;ω;`)ブワッ

gcc version 4.5.0 (GCC) - llvm rev-115770 (SVN 2.9)
-----------
C:\llvm\bin>lli --version
Low Level Virtual Machine (llvm.org/):
llvm version 2.9svn
Optimized build with assertions.
Built Oct 8 2010 (13:46:06).
Host: i686-pc-mingw32
Host CPU: core2

Registered Targets:
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
-----------
C:\llvm\bin>llvm-stub --version

C:\llvm\bin>lli: error loading program 'llvm-stub.exe.bc': No such file or directory

255 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 15:59:12 ]
>>254
> C:\llvm\bin>llvm-stub --version
>
> C:\llvm\bin>lli: error loading program 'llvm-stub.exe.bc': No such file or directory

llvm-stub.exe は、ほげ.exe にリネームし、ほげ.exe.bc を配置しておくような
使い方を想定してんじゃネーノ? つか Win32 でこれを活用してるヤツなんているのか?

で、あらためて貴様ビルドの gcc を調査するとよい。誰も喜ばないような気がするが。
念のため言うがLLVMと関係のない質問をここでするなよ?

256 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 20:16:01 ]
で、 clang は Windows で使い物になるの?

257 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 20:33:01 ]
>>255
(´・ω・)ありお〜取りあえず自前のGCC見直してくる

258 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 02:21:08 ]
JITコンパイルも実行時最適化も無い世の中じゃ

259 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 13:04:04 ]
(´・ω・)舞い戻って来た・・・
どうも自前 build した pthreads-w32 2.9.0 GC-static が原因だったみたい・・・
komisar 氏の GCC version 4.4.5 では問題無く build 出来るのに、何故(´・ω・`)?

260 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 14:04:20 ]
pthreads-static って小細工ナシにリンクして動かせるの?



261 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 15:35:00 ]
(´・ω・)これで解消されるんでなかった?
ttp://sourceware.org/ml/pthreads-win32/2010/msg00006.html

262 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 18:13:57 ]
>>(´・ω・)
もうLLVM関係ないんやから、↓あたりに移住してね

Cygwin + MinGW + GCC 相談室 Part 5
hibari.2ch.net/test/read.cgi/tech/1269400706/

263 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 18:22:02 ]
じつはべみょーにLLVMと関係あるがあっちのスレもヲチしている俺に死角はなかった。

264 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 14:35:09 ]
(´・ω・)すまん、スレチだが最後に書かせてくれ

>>259
pthreads-w32 2.9.0 GC-static が原因っていえば原因だったのだが、libpthreadGC2.a が悪かったのではなく
もれが libpthread.a なるコピーを作って、一緒のディレクトリに置いたまま llvm を build したのが悪かったみたい
libpthreadGC2.a のみにして build したら問題無く出来た(自前GCCでも問題無かった)
後、build した後だったら libpthread.a が同じディレクトリにあっても問題無かったです

今まで、こんなもれに付き合ってくれてアリガトウでした(´・ω:;.:...

265 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 18:23:02 ]
FAQ
ネイティブなのに仮想機械とはこれ如何に?

266 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 19:03:19 ]
端的に言えば「実行用の仮想機械」ではなく「最適化用の仮想機械」ってことで。
もともとはJITもふんだんにすることになってたんだがいつのまにかそれは脇役に。

267 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 20:33:22 ]
え、JIT脇役になっちゃったの?

268 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 21:46:12 ]
実行時のプロファイル使った最適化ってまだスタブだけある状態?

269 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 18:16:00 ]
>>265
昔から中間言語に仮想機械マシン語を採用する実装はある。

270 名前:デフォルトの名無しさん [2010/10/15(金) 08:20:12 ]
中間言語の仕様、まだ決まって無いの?
まだ拡張してたりする?



271 名前:デフォルトの名無しさん mailto:sage [2010/10/15(金) 09:49:09 ]
コア部分はとっくに。拡張はされてる。

272 名前:デフォルトの名無しさん mailto:sage [2010/10/15(金) 11:32:56 ]
>>269
gccが典型例。
一旦仮想的なマシン語に変換してから再度ネイティブなアセンブリ言語に変換する。

273 名前:デフォルトの名無しさん mailto:sage [2010/10/15(金) 11:37:59 ]
RTLもGIMPLEもアセンブリのままなんじゃない?
バイナリコードになるわけじゃない。
仮想機械というにはやはりバイナリ。

274 名前:デフォルトの名無しさん mailto:sage [2010/10/15(金) 11:53:13 ]
中間コードをarch毎に最適な命令になるようにしてるみたいっだった

275 名前:デフォルトの名無しさん mailto:sage [2010/10/28(木) 13:08:27 ]
LLVM Clang、Linuxカーネルビルドに成功
journal.mycom.co.jp/news/2010/10/28/005/index.html



276 名前:デフォルトの名無しさん mailto:sage [2010/10/28(木) 16:10:28 ]
LLVM CLangへの意向を表明しているFreeBSDのケースじゃ報道されないのに…

277 名前:デフォルトの名無しさん mailto:sage [2010/10/28(木) 17:23:02 ]
FreeBSDはおわコン

278 名前:デフォルトの名無しさん mailto:sage [2010/10/28(木) 20:23:07 ]
FreeBSDではニュースにならんからな。

279 名前:デフォルトの名無しさん mailto:sage [2010/10/29(金) 01:03:56 ]
おい devmtg 2010 に逝く奴レポよろ

280 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 17:32:50 ]
ここか。
誇大広告かよ



281 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 20:51:11 ]
LLVM自体は面白いし将来性抜群なんだけど、周りの無理解っぷりが…
みんな最初、配布物ビルドして走らせて、がっかり来るよな?

282 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 20:59:12 ]
以前アセンブラコード吐かせて、インライン展開や構造体をばらしたり不要コードを除去したりと
プログラム変換は頑張ってるけど、x86自体を利用した最適化が最悪に近いのを見てげんなりしたな……。
インライン展開なんかはフロントエンドでもできるんだから、バックエンドでしかできない
レジスタ割付などをがんばれって思った。

今はどうなんだろう。

283 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 00:54:41 ]
実行時の最適化が売りじゃなかったんか

284 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 01:08:10 ]
>>283
実行時の最適化はできるけど、
そこからどういうCPU向け機械語を
吐き出すかはまた別の話なわけよ。

285 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 11:41:20 ]
>>283
JVMと同じJITですよ。
JVMと違って、中間機械語がかなり低レベルで、
特定のプログラミング言語向きじゃないってだけ。
ターゲット上の最適化なんてもっと先の話。
gccをCLangで置き換えるのはかなり先になるよ。

286 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 03:23:45 ]
>>285
>>275でのLinuxカーネルなんかもJITコンパイルされてるの?

287 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 10:12:37 ]
いや現状-O4とか--emit-llvmとか指定しないとふつーのネイティブコード吐くだけでJITとか全く関係ない。
関係ないけどOSのカーネルをJITコンパイルとかすげー遅そう。

288 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 10:20:54 ]
bcを配布しといてインストール時にCPUに合わせてコンパイルならいいかも。

289 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 11:59:36 ]
>>287
Transmeta Crusoeがやったよー。> カーネルのJIT
「この速度、消費電力ならx86のままでいいじゃん」くらいのレベルには達していた。

290 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 12:01:06 ]
>>288
というか、一旦JITしたら、ファイルで保存しとけばいいんだよね。
書き込みが発生すると最初の実行が遅くなって印象悪くなるだろうけど、
最初から全部やらずに少しずつサボりながらやれば…



291 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 19:10:23 ]
>>289 >>290
へーもうあるのか。
遅延JITコンパイル(仮称)なんかしたらモジュール?のJITの順番とかでまた最適化の泥沼が発生しそうだな…

292 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 19:13:09 ]
JITじゃないけど…
Mac OS Xは、ダイナミックリンクのアドレス解決をインストール時にやってるよね。
ライブラリのアップデイトをすると、芋蔓式に全部計算し直す。
実行時にも再計算する必要があるか確認して、必要ならやる。

293 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 19:30:13 ]
prelinkはASLRに良くない

294 名前:デフォルトの名無しさん mailto:sage [2010/12/10(金) 00:03:09 ]
clang で Win32 x64 に挑戦してるのだけど困難がいっぱいです。
お前ら助けてくだちい。

295 名前:デフォルトの名無しさん mailto:sage [2010/12/10(金) 01:11:56 ]
僕は「x64なのにwin32とはこれいかに」ってレベルの人なので…

296 名前:デフォルトの名無しさん mailto:sage [2010/12/10(金) 15:51:10 ]
(´;ω;`)ブワッ

297 名前:デフォルトの名無しさん mailto:sage [2010/12/10(金) 16:08:19 ]
>>232
Windowsでもbindやrebaseをインストール時に行っているソフトはあるよ

298 名前:デフォルトの名無しさん mailto:sage [2011/01/26(水) 01:05:23 ]
LLVMて思ったより流行ってないな

299 名前:デフォルトの名無しさん mailto:sage [2011/01/26(水) 11:48:31 ]
はやるのはあと10年かかるとおもうね。
MS当たりが.NETとかにしれっと組み込んでくるかもしれないけど。

300 名前:デフォルトの名無しさん mailto:sage [2011/01/26(水) 22:17:12 ]
一般的に流行らんでもアポがclangともどもGCC代替目指してるうちは安泰だしな
FreeBSDみたいな大御所も積極的だし、MSも価値ありと踏めば実装するだろうねぇ

てかそもそも一般のプログラマに流行る必要あるんだろか
10年後に、いつのまにかGCCのない世界で同じ仕事続けてるっていう未来は有るかもしんないけど
LLVM自体を活発に弄くり倒す人達はいつまでも少数派な気が



301 名前:デフォルトの名無しさん mailto:sage [2011/01/26(水) 22:49:41 ]
いみふ

302 名前:デフォルトの名無しさん mailto:sage [2011/01/26(水) 22:57:49 ]
誰か翻訳頼むわ

303 名前:デフォルトの名無しさん mailto:sage [2011/01/26(水) 23:58:05 ]
『Apple や FreeBSD がリソースを割いている間は、流行っていなくとも心配無用。

>>300 の住んでいる世界では、普通のプログラマは自分が使うコンパイラが
何であるかに無関心で、使用するコンパイラを能動的に選択する事は無い。
コンパイラの選択はごく少数の人達が考えれば良い話で、一般のプログラマの
間で LLVM に対する関心が高まる事は必要ない。』

って事じゃないの?
>>300 が何故そう思ったのかは謎だけど。

MS の下りは俺も理解出来なかった。

304 名前:デフォルトの名無しさん mailto:sage [2011/01/27(木) 00:05:20 ]
「だろうねぇ」「だろか」「しんないけど」「気が」
結局何を言いたかったんだろうな

305 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 05:00:56 ]
>普通のプログラマは自分が使うコンパイラが何であるか

こんな意訳が出るようじゃ>>300の言う事どころか
LLVM自体が今現在どのような使われ方をしているのか分かってない証拠だな

306 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 05:17:49 ]
>>300=305

307 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 19:39:36 ]
これはひどい

308 名前:デフォルトの名無しさん [2011/02/27(日) 12:33:43.69 ]
google NaCLで採用されるってな。
しかも、クロスプラットフォームだってさ。
これで、低速なFlashともおさらばだ。やったね。

309 名前:デフォルトの名無しさん [2011/02/28(月) 23:51:39.03 ]
msilでよくね?

310 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 23:59:04.93 ]
それはイラネ



311 名前:デフォルトの名無しさん mailto:sage [2011/03/02(水) 10:27:30.92 ]
まぁ、MSILとLLVMはちょっとした変換でできるんだけどね。

312 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 19:26:36.68 ]
まじで!?

313 名前:デフォルトの名無しさん [2011/03/03(木) 23:41:44.19 ]
>>312
https://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSIL/?sortby=file&pathrev=107482

314 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 11:43:52.25 ]
ん?
MSILバックエンドはバグだらけで、2.8からはリリースからも外されたんじゃなかったっけ?

315 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 22:56:40.75 ]
Monoもやってるよね。

316 名前:デフォルトの名無しさん [2011/04/07(木) 23:11:26.95 ]
April 6, 2011: LLVM 2.9 is now available for download!

317 名前:デフォルトの名無しさん [2011/04/07(木) 23:23:30.27 ]
2.9リリースage

318 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 23:52:26.28 ]
で、2.9 の何が嬉しいの?
あえてきいてみる。

Win32向けのサポートはかなりよくなってるハズだから。

319 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 00:03:59.75 ]
いちいち二度もageるような朗報ではないということだけは言える。

320 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 10:01:05.16 ]
個人的にはC++0xの対応が進んだ(2.8比)のが嬉しい。
gccと比べるとまだまだではあるけど。



321 名前:デフォルトの名無しさん [2011/05/23(月) 21:46:48.38 ]
age

322 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 02:03:22.04 ]
インクルードパスを環境変数も見に行くように早くなってくれお…

323 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 02:47:34.61 ]
www.aosabook.org/en/llvm.html

324 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 22:09:36.18 ]
https://github.com/kripken/emscripten

325 名前:デフォルトの名無しさん mailto:sage [2011/05/31(火) 22:57:14.52 ]
とりあえず日本語にしてくれ

326 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 14:46:42.45 ]
うーん…
iPhoneアプリ、llvmをコンパイラに指定すると起動した瞬間に落ちる。
規模の小さいテストアプリはllvmでも動くんだけど。

327 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 15:09:18.84 ]
つまりllvm以外だと落ちないの?

328 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 15:27:14.71 ]
>>327
llvm compiler1.5
llvm gcc 4.2
どっちもだめ

ただのgcc 4.2でずっと開発して来て、
こちらなら何十時間も安定動作してる。

xcodeは3.2.4

329 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 15:06:46.00 ]
iPhoneアプリのコンパイラをGCCじゃなくてLLVMにすることのメリット、デメリットって何?

330 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 13:35:36.45 ]
デメリット
ひとつ上のレス

メリット
無し



331 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 14:45:15.71 ]
デメリット
変なコンパイルエラーが出る
 {standard input}:unknown:Undefined local symbol LBB46_-1 とか、なにこれ?
 最適化レベルが上がると出やすい
実行速度がちょっと遅い?

メリット
若干実行ファイルサイズが小さい




過疎ってるな。面白そうなのに、語りたいやつ居ないのか…

332 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 17:27:07.02 ]
>>331
俺は興味があったから先週読み始めたが、まだ理解が進んでないからスレに書くこともない

何かがおかしいと思うのなら、最新安定版かtrunkで再現するか確かめてから
llvm-devかBugzillaに小さいテストケース送った方がいいぞ
OSSでもプロプラでも、開発者が知らない問題は滅多に解決しないし
作者が目を通していると公言しているのでもない限り
2chやブログに書くのは開発者に伝える手段にはならないと考えた方がいい

あと、LBBはBasicBlockのことのような気がするが自信がない
LLVMとClangをgrepしてもそのメッセージは見つからなかったし

333 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 19:12:15.46 ]
こっちに張った方が良かったな

chris.wailes.name/?page_id=97

334 名前:デフォルトの名無しさん [2011/07/21(木) 20:14:28.56 ]
Linuxのrpmで手に入るllvmの使い方がいまいち解からん。
llvm-g++はどこへ行ったんだ?

335 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 20:29:29.70 ]
どのディストロだ?

ところでとうとうChrisが「Gitも悪くない、Gitへ移行する障壁は?」とか訊き出したぞ。

336 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 20:34:20.89 ]
>>335
Fedora13

Gitってなんかマズイの?


337 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 20:55:06.00 ]
>>334
llvm-g++は消えた。CLangに注力。
FreeBSDがgccからCLangにメインコンパイラを移行する計画らしい。

338 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 21:41:03.89 ]
マジか・・・。C++まともに使えないじゃん。

339 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 21:58:48.32 ]
llvm-gccの後継はdragoneggらしいよ、GCCプラグインの。

340 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 22:26:14.95 ]
龍の卵か、プラグイン化されてんのがおもしろいね。

関係ないけど、LLVMのブルーアイズなマスコットがオサレ。



341 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 23:50:12.08 ]
>>338
Clangはboostをコンパイルできる状態だぜ。
clang.llvm.org/cxx_status.html

342 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 00:42:26.42 ]
>>341
まじか。boost spirit行けるならgccから移るわ。

343 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 00:51:15.24 ]
>>341
特殊化バリバリのメタプログラミングでlispの一部を
実装したコードをコンパイル出来た。準拠度がパネェわ。

typedef ES
<
Quote,
ES< Quote,int,Key<0> >,
ES< Quote,int,Key<1> >,
ES< Quote,long,Key<2> >
>
structure;

typedef Nelsp<ES< Cond,ES<T,ES<Quote,int> > > >::cell ret;

Structure< structure > value;



344 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 06:52:35.61 ]
なんという地獄コード。

345 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 07:28:08.82 ]
何をやってるのか読み取ることさえできんw

346 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 10:54:52.71 ]
>>341
このページ"Projects Building with Clang"の段落が昨晩なくなってる。
古い情報だけどキャッシュから貼っとく。テーブルは見にくいから箇条書きに治す。

Projects Building with Clang

Clang is now capable of compiling large C++ projects, and the following table describes various projects that we have attempted to compile with Clang++.

Project
Status
Last Tested
Tracking Bug
Clang and LLVM
Successful self-hosting achieved
Continually
CMake
Compiles, passes regression tests (debug build)
February 9, 2010
Boost
Compiles and passes regression tests on Darwin/X86-64.
May 20, 2010
PR6023
Qt
Partially compiles; miscompilation of uic prevents complete compilation, qmake works, some small examples also.
February 9, 2010
PR5881


347 名前:343 mailto:sage [2011/07/22(金) 22:42:56.48 ]
中途半端なトコで送信してる。まぁ、いいか。

348 名前:デフォルトの名無しさん [2011/07/23(土) 00:31:58.43 ]
ヘッダファイルをコンパイル対象にしても
エラー吐かなかったから、本当に動くコード吐いてんのか動作も確認してみた。
ちゃんと1が戻ってくる。いいねぇ。

typedef short Sample;
typedef Nelsp
<
 ES
 <
  Eval,
  ES
  <
   Quote,
   ES
   <
    Cond,
    ES< ES< Eq,char,Sample >,ES< Quote,Key<0> > >,
    ES< ES< Eq,short,Sample >,ES< Quote,Key<1> > >,
    ES< ES< Eq,long,Sample >,ES< Quote,Key<2> > >,
    ES< ES< Eq,float,Sample >,ES< Quote,Key<3> > >,
    ES< T,ES<Quote,ES< Quote,Key<5> > > >
   >
  >
 >
>
::cell ret;

std::cout<< Nelsp< ES< Car,ret > >::cell::value << std::endl;
.//一応説明。CondのEqでSampleの型を判定して条件に一致するKeyを返し、
//そのKeyからenumのvalueをとりだしてんのね。

349 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 10:33:20.24 ]
Cygwinでビルドした clang.exe が起動激遅。clang --helpですら1秒くらい時間を要する。
(もちろん最適化ビルドだよ)

Cygwinスレできくべきか? だれか原因を知ってたら教授と助教授と准教授をください。

350 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 12:29:21.61 ]
真面目に答えようかと思ったが
最後の一言が余計だったな



351 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 11:31:17.44 ]
Cygwinだから遅いんじゃない?
>>350 参考までに教えてくれ

352 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 14:08:43.01 ]
>>350
知らないなら黙っとけポス毒

353 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 01:13:41.67 ]
>>349
間違う人、職場でも多いけど、
「教授」じゃなくて「教示」な。

354 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 15:21:54.14 ]
そこは文字掛けだったのか

355 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 17:00:33.81 ]
>>353
間違いではない。
元々「教授」というのは「習い」と同じ意味。
だから与えるのではなく授かるになってる。
それが転じて「教授」してくれる先生も指すようになった。

必携類語実用辞典より
#(自分側に) お教えいただく お導きくださる お示しくださる お教導賜わる ご教示を煩わせる ご高示に接する ご指導を仰ぐ 

356 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 17:21:41.12 ]
>>355
「教授をください」が正しいと。

357 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:01:05.58 ]
父「お前にうちの教授はやらんぞ!!」

358 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:06:54.75 ]
つまり准教授は不要と。

359 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:59:24.99 ]
LLVMとJavaVMのバイトコードのトランスポーターって出来無いかねぇ。

360 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 21:47:37.38 ]
LLVM IRは(各アーキ用の)汎用アセンブラみたいなものなので困難。
つかいろいろセマンティクス違うだろ?
LLVM IR は、生アセンブラをプロシージャ単位にして型厳格にしたようなもの。

勇者の挑戦を止めはしない。目が出そうだったら俺もプッシュしてやる!



361 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 23:19:40.18 ]
両方ともチューリング完全だと思うから
理論上は出来るんじゃないかな。
あとは、llvm to javascriptのようなことをやってのける気力だけ

362 名前:デフォルトの名無しさん mailto:はげ [2011/07/25(月) 23:24:05.55 ]
$ clang -emit-llvm main.cpp
clang: error: 'x86_64-redhat-linux-gnu': unable to pass LLVM bit-code files to linker

あん?
なんか設定の不備?
それとも、x64じゃJITはまだ対応してないって事?
それとも、JIT自体未だ未実装って事なんか?

363 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 06:46:16.07 ]
clang -emit-llvm -S
clang -emit-llvm -c
は動くだろう。

364 名前:デフォルトの名無しさん [2011/07/26(火) 17:36:38.74 ]
動くっちゃ動くけど、実行ファイルつくるのはどうすんの?

365 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 20:39:58.81 ]
$ clang -O3 main.cpp -o a.out

366 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 20:43:56.36 ]
>>365
いやそれは動くよ。
問題はJIT用の実行ファイルをどうやって作るかってとこ。

367 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 20:47:20.22 ]
$ clang -O3 main.cpp -emit-llvm -c -o main.bc
$ lli main.bc blah blah

368 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 21:04:26.26 ]
ひとつ付け加えておくが lli つーか LLVM JIT は JIT 最適化とかそういうものを実装しているワケではない。
単に JIT コンパイルするだけ。
"JIT最適化やりたいヤツは llvm::ExecutionEngine および Transforms でがんばれや" ってことでひとつ。

369 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 21:21:35.42 ]
>>368
あんがと。てかLLVMのVMを実行ファイルに埋め込める訳じゃないんだね。
3年前llvm-gccでコンパイルしたとき実行ファイルが数十MBと異常なサイズだったから
実行ファイルに処理系内蔵して、データとしてbitcode実行してたのかと思ってたけど。

370 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 21:29:20.74 ]
elfとかpecoffへのbitcode埋め込みは、方針が固まったら提案してみる、つか実装してみる。
type system rewrite がひといきついて

…ついてない。dragoneggがいまだヌッ壊れたままだ。



371 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 22:00:51.60 ]
>>368
clang からbitcodeのオブジェクトファイル吐かせて、
llvm-linkでリンクしたbitcodeを作成、
作成したbitcodeをlliで実行ってのができるようになったよ。

でもclangからllvm-linkに渡さなきゃいけないのがメンドイ。
clangだけでリンクしたbitcode吐く方法しらない?

372 名前:デフォルトの名無しさん [2011/07/26(火) 23:26:01.34 ]
面倒でも何でもない

373 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 23:46:53.83 ]
そもそも clang driver が bitcode に無知のような気がする…
clang 連中にとっては LLVM は単なる Code Generator なので
BitcodeをClangでどうこうしようとしてる奴がいなさそうな。

実際、 -O4 は -O3 -emit-llvm とほぼ等価だったはずだが、
clang は何も考えずに *.o (中身は*.bc)をldに渡している。
gold llvm lto plugin (もしくは apple ld)がそれらをうまく扱うことを期待している。


llvm-link で生成したBCはちゃんとopt -std-link-opts で最適化するんだぞ。
llvm-ld はあまり信用してないので知らん。

374 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 00:04:14.62 ]
というかclangの中の人はAppleの人

375 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 00:07:13.02 ]
optなんてコマンドあったんだ。
llvmとか接頭辞がないからわかりづらずぎる。

376 名前:デフォルトの名無しさん [2011/07/27(水) 00:36:07.21 ]
NaClで採用されたっていうけど、bitcodeの状態だとAPIに依存しなけりゃクロスプラットフォームなのか?
まぁ、エンディアンとかレジスタのビット幅もあるかもしれないけど。

377 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 00:41:48.37 ]
LLVM 3.0 いつ?

378 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 00:44:56.87 ]
>>376
「VM」の意味をよく考えろ。

379 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 01:06:46.57 ]
>>378
JavaVMみたいなクロスプラットフォーム前提の設計ならともかく、
最適化目的なら機種依存もありうると思ったんだけど。
現存するVMだって機種依存するものはあるし。

380 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 01:31:43.60 ]
Mac OS XでPowerPCとx86の差を吸収するために使われてた。



381 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 06:07:11.36 ]
レジスタサイズ整数とかアドレスサイズ整数とかが無いからクロスプラットフォームにしてもいまいち使い辛いんでないかい

382 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 10:27:17.80 ]
llvm ってオレオレ VM を作るためのフレームワークとかツールキットっていう位置づけで出てきたんでしょ。
最適化は「将来的には夢が広がりんぐ」って形で最初からあったけど、llvmが最適化目的のプロジェクトというわけじゃないよ。


383 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 12:05:18.49 ]
>>381
クロスプラットフォームにはない方がむしろいい。

384 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 14:36:21.79 ]
>>383
sizeofってどうなんの?
あり得ないと思うけど、
bitcodeの実行先で決定?

385 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 17:38:13.98 ]
>>383
int変数一個をbitcodeにするだけで32ビットと64ビットで互換性なくなるんだぜ
iregとか書きたいよ

386 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 23:12:36.32 ]
>>384
それはfrontendが決めること。
llvmはターゲットに応じて適切な機械語に変えるだけ。

387 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 23:27:54.50 ]
じゃあbitcode上のレジスタサイズは一応決まってんだ。
少なくともintとlongが異なるのにそれぞれに割り当てたレジスタが
同じサイズになったりしたら困るもんね。

388 名前:デフォルトの名無しさん [2011/07/28(木) 00:16:28.83 ]
bitcodeのレジスタサイズ?
llvm.org/docs/LangRef.html
みながら
llvm.org/demo/index.cgi
でコンパイル結果みて
llvm.org/docs/LangRef.html#datalayout
あたり読めば疑問は解決すると思う

389 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 00:46:02.72 ]
なるほど。そもそもレジスタサイズの話は中間言語一般の話でLLVMとは関係なかったな。

390 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 01:05:25.21 ]
インラインアセンブラ使ったコードコンパイルしてみた。
call void asm sideeffect "mov %eax,%ebx", "~{dirflag},~{fpsr},~{flags}"() nounwind, !srcloc !0
カプセル化されるのか面白いな。



391 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 01:32:37.89 ]
>>386
inttoptrとかどーするのよ

392 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 01:58:32.60 ]
揚げ足だけど、整数からポインターへの変換が必要なようなアホコードは捨てろよ。
Memory Maped I/O ぐらいでしか必要ないでしょ。

393 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 08:04:09.54 ]
整数とアドレス値の境目のなさがコンピュータの醍醐味でしょ

394 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 11:58:27.05 ]
>>393
そこを設計でうまく切り分けて取り扱うのがプログラマーじゃね?

395 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 12:25:24.19 ]
LLVM CodeGen はともかく、Analysis/Transformations(いわゆるopt)は
TargetData すなわち語長とかアライメントにすごく依存している。
TargetData を取り去って最適化をかけようとしてもロクな結果が得られない。

sizeof, offsetof とかは、バックエンド的には gep NULL / ptrtoint を吐いとけば十分で
あとはInstCombineとかConstantPropあたりがTargetDataに即した数字にしてくれる。

396 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 20:31:23.87 ]
int f(int n) {
int a[n];
return sizeof(a)/sizeof(int);
}

397 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 20:51:03.14 ]
>>395
char buf[sizeof(struct t)] とかやることを考えたら、結局フロントエンドでも把握してないといけないわけで、
フロントエンドとバックエンドが別々にサイズ足してアライメント考慮して……ってやるのはバグの元だし
やっぱりクロスプラットフォーム投げ捨ててるし、もうちょい上手い方法が欲しいけどなあ……

398 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 21:17:24.22 ]
フロントエンドが決めずに誰が決めるんだよw

CやC++の仕様(intのサイズは実装任せ)と
処理系の実装の話を混同してないか?
処理系はいつもサイズを決めてる。
アラインメントも決めてる。

「決まらない」のはあるソースに対して、
処理系を変えた場合。



399 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 21:22:37.75 ]
フロントエンドがstruct {char x; int y}のサイズを計算した値と
LLVM側が{ i8, i32 }のサイズを計算した値が一致する保証はないよね、怖いね、って話だよ

400 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 21:37:48.70 ]
合うように{ i32, i32 }にしてるっしょ?



401 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 23:22:35.15 ]
春先まで {[8 x i8]} だったわけだがw

TDの扱いについては clang と llvm でコンセンサスはとれてる。

402 名前:デフォルトの名無しさん [2011/09/22(木) 23:09:40.23 ]
保守

403 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 17:56:24.45 ]
c"……" っていう文字列定数の記法がリファレンスに載ってないような

404 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 19:39:05.22 ]
>>403
llvmdev にて突っ込んでくれるとだれか若干名が修正してくれるかも。
俺は英文ドキュメントいじるのが億劫なのでパス。

405 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 11:41:18.66 ]
Windows用のフリーコンパイラってCygwinとかBCC(まだある?)とか簡単に使えるのが無いんだよね
clangが他に依存せず容易に使えるフリーコンパイラになってくれるとうれしい

406 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 11:45:14.95 ]
VCのCLがダメな理由ってなんだろう・・・。

407 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 12:42:04.72 ]
登録が必要じゃん
あとライセンスとかどうなんだか

408 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 12:44:22.24 ]
CL自体はWindowsSDKにも入ってたと思うので登録は必須ではないかも。
ライセンスは、おかしな事しなければ引っかからないと思うけど、なにしようとしてるんだろう。。。

409 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 13:05:51.81 ]
別に何もしようとしてないよ?
ただ「フリーソフトのみ無料でOKだけど商用利用は駄目」とか色々あるから
そういう面倒な事が無いのがいいだけ

410 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 13:11:02.83 ]
ライセンス読む気がないなら諦めろ



411 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 13:22:47.10 ]
禿同

412 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 13:51:47.46 ]
GCC(MinGW)でいいだろ
ClangがWindowsにきちんと対応するのはまだまだ先だろうし

413 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 13:55:58.15 ]
GPLより修正BSDライセンスのほうが良いとおもっただけです
あとMinGWとかCygwinは大掛かりというか環境を汚しそうで…
本気で作るならVSなりIntelCなり買うべきなんでしょうが気軽に試せるのがないなあと
以前は雑誌付録のBCCが良い感じだったのに最近は登録(今もやってるかは知らん)になったし
また「商用駄目」ライセンスとか不便だろうしって「新しいモノ」に期待してるだけです

414 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 14:23:14.49 ]
>MinGWが環境を汚す
アホすぎ

415 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 18:36:45.42 ]
空白入りパス(要はProgram Files)以下に配置できないから、ルートディレクトリ以下に
直接置かないといけないって意味では環境汚すよな>mingw

416 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 18:45:08.50 ]
>>413
おまえコンパイラ自体をいじる気か?

>>415
Users 配下でいいじゃん。
…ユーザ名に半角空白を含ませてるヤツは首を吊れ(実例多数)

417 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 18:46:59.97 ]
GPLでんでん言ってるアホは、M$FTの製品使ってEULAに汚染されるがよい。

418 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 19:39:12.43 ]
>>415
データドライブにでも入れとけ

419 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 00:43:57.61 ]
VCEE2008 は用途の縛りはなかった。登録も必須でないから無視したらいい。
Cygwin は滅茶苦茶簡単でしょ。llvm がこれより簡単になるとは思えない。

420 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 08:30:45.74 ]
CLつうかMS Optiomize Compilerは、LLVM使えんがな



421 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 10:22:15.85 ]
>>413
使った事もなくドキュメントも読まず想像だけでよくそこまで適当なことを書けるな……
>「新しいモノ」に期待してるだけです

お前一生「期待してるだけ」「待ってるだけ」で終わるよ
自分で結局何もしないんだから

422 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 11:17:25.10 ]
みんなわかってて黙ってるのにわざわざ教えちゃうなんて興のないことを。

423 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 20:09:34.68 ]
3.0rc2で盛り上がってるのかと思ったら全然違った

424 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 20:59:19.99 ]
ふつーリリースブランチは盛り下がるもの。

425 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 09:09:31.69 ]
16日(実質17日?)まではここも過疎だろうな

426 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 09:28:08.05 ]
>>415
リンク張ればどうにでもならないか?
いつもopt->Program Filesでリンク張って、mingwはc:\opt\mingwだけど。

427 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 11:41:31.21 ]
そういえばNTFSにはリンクがあったな

428 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 12:10:02.38 ]
clang ドライバの Linux 各種ディストロ向けクリナップに勤しんだあとRC3に突入する予定の模様。

429 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 00:36:30.31 ]
clang用にautotoolsをどう設定したらいいのか解からん。
autotoolsって実質gcc専用?

430 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 01:06:09.13 ]
CC とかを設定してあげればいいのかな。



431 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 06:04:33.68 ]
今は手を出さずに、>>425まで待ったらいい
仕様が色々と大化けするみたいだから

432 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 07:00:19.03 ]
GCCと同じ流れ(.oを出力→.oを外部ライブラリとリンク)なら、CCとCXXを変えるだけでそれなりに動く
もちろん、language compatibilityに引っかかるようなコードは修正が必要だし
Clangが対応してない特殊なGCCオプションを使っている場合は
makeの時に*FLAGSを書き換えるかMakefileにパッチを当てる必要がある

.bcを介したLLVM/Clangツールチェーンでのビルドは結構難しいと思う
tribelet.blogspot.com/
ここの「透過的なLLVM」ってタイトルのシリーズがそういう実験をしてる
少し古いから、今のLLVMだともっと簡単かもしれないが……

433 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 08:24:10.45 ]
>>432
>.bcを介したLLVM/Clangツールチェーンでのビルドは結構難しいと思う

clang -O4 は -O3 -emit-llvm と同じ意味なので、 (*.o の名前で bc を吐く)
リンカを gold とか apple linker など、llvm lto対応のものを用いることができれば難易度はぐっと下がるとオモ。

binutils とか libtool が絡んでくるととたんに難易度があがる、つかもう手作業。

434 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 20:46:23.68 ]
いいかお前ら、リリース云々とかに惑わされるなよ?
常に tip of trunk を使え。 ToT

435 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 11:21:16.41 ]
もう1ラウンドやるのか

436 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 11:24:24.26 ]
こんにちはそして30日にまた合おうノシ

437 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:18:23.54 ]
ものすごい初歩的な質問で申し訳ないんだがビルドして
make check-allした時にUnexpected Failuresが出なければビルド成功でいいんだっけ?
Scientific Linux 5のx86_64の環境で俺が出した結果がこれなんだけど…

Testing Time: 68.05s
Expected Passes : 5496
Expected Failures : 50
Unsupported Tests : 16


438 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 06:27:53.38 ]
ok. clang を含んでないなら check と check-all は同様。

failure もしくは unresolved が現れたら make check はエラー扱いするので
$ make check VERBOSE=1 && echo OKOK
でもやってみなはれ。

RHEL5 クローンだったら make check LIT_ARGS='-sv -j32' とかやってみるといい。

439 名前:デフォルトの名無しさん mailto:age [2011/12/02(金) 10:59:36.42 ]
3.0 (´∀`∩)↑age↑

440 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 13:40:59.78 ]
3.1マダァ-? (・∀・ )っ/凵⌒☆チンチン



441 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 02:21:03.37 ]
3.1 (´∀`∩)↑age↑

442 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 15:56:44.97 ]
下げてるじゃねーかw

443 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 19:32:54.39 ]
LLVMの構文についての質問なんだけど、
あるLLVM-IRのファイルから、
他のLLVM-IRのファイルを読み込む方法ってある?

C言語でいう
#include "foo.h";
みたいなの。

初心者の質問ですまん。

444 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:04:20.76 ]
ない。

ぶっちゃげ言うと IR の .ll (表示形式)はあくまでもダンプ用。ついでにいうと Bitcode もダンプ用。
LLVM API であれこれいじりまわすのが本来の使い方。

445 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 07:53:32.54 ]
includeはないがllvm-linkでbitcodeをくっつけることはできる

446 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:34:42.75 ]
thx

llvm-linkでくっつける方法もあるのね。
llvm-linkでくっつける際に名前が重複してた場合って、
勝手に置き換わったりしますか?

447 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:07:20.37 ]
gccで出来るような各オプティマイズレベルで有効になる最適化
オプションを出力するみたいな事をllvmで出来ますか?
Q オプションみたいなの。
例えばclang -O3 でどのようなオプティマイズオプションが効いているのか
を表示したりしたいんですが。


448 名前:デフォルトの名無しさん [2012/03/09(金) 08:58:04.51 ]
>>447
+Asserts ビルドだったら -mllvm -debug-pass=XXX とかが使える。

あとは
llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
clang/lib/CodeGen/BackendUtil.cpp
あたりを眺めてくれ。

449 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 23:09:29.72 ]
>>448
ありがとう!


450 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 16:02:06.78 ]
質問があります。
ttp://clang.llvm.org/get_started.html
ここを見て、
「../llvm/configure --enable-optimized」
「make ENABLE_OPTIMIZED=1」
まで終わらせたのですがC++の機能が正常に動作しません。

工程6の
「'gcc -v -x c++ /dev/null -fsyntax-only' to get the path.」
「Look for the comment "FIXME: temporary hack: hard-coded paths"
 in clang/lib/Frontend/InitHeaderSearch.cpp and change the lines below to include that path.」
で具体的に何をすればいいのか分かりません。
恐らく「gcc -v -x c++ /dev/null -fsyntax-only」でパスを取得して(どのパスか分からず…)
「llvm\tools\clang\lib\Frontend」を改変した後(どう改変すればいいのか分からず…)に
もう一度「../llvm/configure --enable-optimized」「make ENABLE_OPTIMIZED=1」
をすれば良いのかと思いますが、make中にエラーが発生してしまいます。

どなたかご教示ください。



451 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 18:47:31.86 ]
訳もわからずコマンドっぽいことだけそのまま実行するんじゃなくて、ちゃんと文章を読もう。

452 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 19:45:00.47 ]
>>450
MSYS Mingw か?
まずは現状ママで make して clang++ -v blahblah.cc -c とかでインクルードパスをチェックするよろし。
で、出てくるサーチパスがチミの環境に合致してなかったらはじめて InitHeaderSearch.cpp をいじるクル〜

msys もしくは mingw だったら configure じゃなく cmake 使ったほうがいいよ。
(CMAKE_BUILD_TYPE=Release を忘れぬよう)

なお、 configure で --enable-optimized を指定した場合、 make ENABLE_OPTIMIZED=1 は不要。
生成された Makefile.config を参照のこと。

453 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 20:09:37.49 ]
>>450
マルチすんな

454 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 11:50:41.53 ]
マルチポストしてすみませんでした。

455 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 20:48:01.22 ]
マルチポスト、クロスポストなんてネットニュースの時代の前世紀の遺物だ。
リソースが豊富な現代では無問題。

456 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 22:51:10.60 ]
それはひょっとしてギャグでry

457 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 23:46:31.69 ]
対応する人間のリソースは無限じゃねーよボケ

458 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 07:53:14.63 ]
まぁ実際たいして害もないし、ただの慣習だとは思うが

459 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 17:07:00.90 ]
clang 3.1 mingw32 セルフホスティングできた
toolchainあたりはそこまで複雑ではない感じ
リンク時にgccじゃなくてldを呼ぶのは難しくないような気がする

460 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 20:54:04.36 ]
実行ファイルにせずlliで実行したらどんな感じだろ
まだ遅いかな



461 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 15:07:25.80 ]
Java VMとLLVMって具体的に何が違うの?

462 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 15:35:02.65 ]
LLVMはRISCライクの命令セットで既存CPUのネイティブコードに近く
各CPUのネイティブコードに変換しやすくなってる
開発者の環境で、中間コードからネイティブコードを作るのが主なお仕事

JavaVMはLLVMより抽象度が高めでGCも持ってる
高速化のためJITを持ってるけど
ユーザーの環境で、中間コードを動かすのが主なお仕事

463 名前:462 mailto:sage [2012/06/29(金) 15:42:25.12 ]
文の区切りがあれなので句点を補足
>変換しやすくなってる。
>GCも持ってる。

464 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 06:27:36.55 ]
LLVM はもはや Low Level Virtual Machine の略でもなにかの略語でもないって Chris が言ってた。
ていうかもはや Clang のバックエンドに成り下がってるし。

465 名前:uy [2012/06/30(土) 08:14:34.42 ]
そしてldcのバックエンドでもある、と

466 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 10:59:44.16 ]
ghcのバックエンドでもある

467 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 12:49:30.43 ]
LLVMはClangの都合に振り回されてるってば

468 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 13:03:50.06 ]
もうclangでいいんじゃね?w


469 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 14:32:29.82 ]
LLVMが注目されだしたのclangのおかげ

470 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 18:06:42.01 ]
pythonでも使えたろ



471 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 20:59:01.22 ]
pypyだっけ

472 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 21:01:16.05 ]
llvm-pyだな

473 名前:デフォルトの名無しさん mailto:sage [2012/07/01(日) 00:17:22.59 ]
Clang (C family)
Lightspark (ActionScript)
PyPy (Python subset)
Rubinius (Ruby)
Emscripten (C++ to JavaScript translator)
GNU lightning (Multi-plutform assembly)

474 名前:デフォルトの名無しさん mailto:sage [2012/07/05(木) 12:27:11.76 ]
GHC

475 名前:デフォルトの名無しさん mailto:sage [2012/07/05(木) 12:32:36.42 ]
DHC

476 名前:デフォルトの名無しさん mailto:sage [2012/07/05(木) 12:33:43.78 ]
DHA

477 名前:デフォルトの名無しさん [2012/07/05(木) 12:37:12.78 ]
DNA

478 名前:デフォルトの名無しさん mailto:sage [2012/07/08(日) 22:10:32.87 ]
New package: llvm/clang-3.1-1
cygwin.com/ml/cygwin-announce/2012-07/msg00007.html

479 名前:デフォルトの名無しさん mailto:sage [2012/07/08(日) 22:15:15.26 ]
「AIR for iOS」はLLVMの技術で実現している
www.atmarkit.co.jp/fsmart/articles/air_int/01.html

AdobeはLLVMにベッタリやなぁ
対.net Framework包囲網としてApple/Google/Adobeが
結託してくれりゃいいのに。


480 名前:デフォルトの名無しさん mailto:sage [2012/07/08(日) 23:00:31.74 ]
DelphiのバックエンドもLLVMになるようだな



481 名前:デフォルトの名無しさん mailto:sage [2012/07/08(日) 23:24:28.01 ]
エンバカデロってC++は既存のコンパイラー捨ててclang使う気らしいとか聞いたな

482 名前:デフォルトの名無しさん mailto:sage [2012/07/09(月) 01:10:04.90 ]
俺の肛門様もLLVMに(違

>>478
Cygwin のって、なんか特異なパッチ当ててたっけ?
俺的には、おまじない LDFLAGS=-static くらいか。

483 名前:デフォルトの名無しさん mailto:sage [2012/07/09(月) 10:46:42.88 ]
>>481
ボーランドのコンパイラもついに消滅か

484 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 22:32:16.00 ]
>>479
そもそも、gccにベッタリした企業なんてあるのか?

485 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 22:59:03.62 ]
llvmはclangがgccの対抗ってことになってるけどね

486 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 23:02:52.29 ]
もともとFSFかLinux周辺のGPL推進してるところだとあるのかな?
BSD陣営はもともとコピーレフトじゃないツール求めてるし。
そういえば、GCCの高速化や新命令セット対応はRHの人たちがやってるのだろうか?それともCPUメーカーやハードメーカーでやってるのか、その他の有志なのか。

487 名前:デフォルトの名無しさん mailto:sage [2012/08/29(水) 23:25:49.23 ]
>>486
gccのmlのlog漁ってみりゃいいじゃん

488 名前:デフォルトの名無しさん [2012/08/30(木) 00:06:48.50 ]
Linux、gccだったらIBMの貢献も大きいイメージあるな

489 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 00:27:37.08 ]
clang/llvm の予算つぎ込み度合い sylvestre.ledru.info/blog/sylvestre/2012/07/22/who_is_in_control_of_llvm_clang
AAPL さすがですね。 GOOG もなかなかなもんです。

Apple, Google, ARM, Intel, Nvidia, AMD, MIPS, ついでに Qualcomm(QUIC, CAF) が
それなりに協調してやってるあたり、ある意味感心する。
MLをヲチしてる限り、Microsoft とか Samsung を見かける頻度は稀。Redhat もなかなか見ない。
SCEAはちょくちょく見かけるが、一見貢献ナシ。

注目は PathScale ですw

490 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 01:23:45.98 ]
llvmはgccと違う最適化をやろうとしてるからね



491 名前:デフォルトの名無しさん [2012/10/11(木) 22:51:58.37 ]
からあげ

492 名前:デフォルトの名無しさん mailto:sage [2012/10/11(木) 23:50:44.31 ]
チュートリアルやろうとして、とりあえずコピペでコンパイルしたらエラーになる。
llvm.org/releases/3.1/docs/tutorial/LangImpl3.html

$ clang++ -g -O3 toy.cpp `llvm-config --cppflags --ldflags --libs core` -o toy
toy.cpp:401:18: error: no matching member function for call to 'CreateCall'
return Builder.CreateCall(CalleeF, ArgsV, "calltmp");
~~~~~~~~^~~~~~~~~~
どうすりゃいいの?

493 名前:デフォルトの名無しさん [2012/10/12(金) 12:18:26.79 ]
昨日食ったからあげで腹壊した

494 名前:デフォルトの名無しさん mailto:sage [2012/10/12(金) 18:27:31.45 ]
>toy.cpp:401:18: error: no matching member function for call to 'CreateCall'
え、これが読めないとか?
clangは構文チェックが半端じゃないみたいだね
みんな、泣いてる?

495 名前:デフォルトの名無しさん mailto:sage [2012/10/12(金) 20:13:16.13 ]
>>492
3.2 では治ってる予定。

llvm/examples/Kaleidoscope/Chapter3/toy.cpp
こっちが大元。

496 名前:492 mailto:sage [2012/10/13(土) 08:46:19.52 ]
>>495
たしかにtrunkにあるファイルだと該当部分が変更されてる。
面倒なので大人しくXCodeのllvmが3.2になるの待つわw

497 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 07:12:12.58 ]
宣伝がすごいけど、実はまだ大したレベルではないみたいだな

498 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 07:13:15.81 ]
>>486
gccはAMDが結構改良してる

499 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 23:13:39.05 ]
2008年のデータ
www.sdtimes.com/link/32870
Software development tools company CodeSourcery leads the list of corporate contributors to the GCC.

Red Hat, IBM, Novell, Google, Intel and AMD rounded out the GCC corporate contributors top ten list, in that order.

500 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 23:16:33.72 ]
パッチの量とパフォーマンスの大幅な改良やクリティカルなバグ修正などとは比例しないかもしれないが。



501 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 23:27:50.48 ]
GCC git stat
www.phoronix.com/scan.php?page=news_item&px=MTE1OTg
LLVM git stat
www.phoronix.com/scan.php?page=news_item&px=MTE2MDk

502 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 07:48:30.99 ]
githubとか言われてる割に
鯖が貧弱なところが多いみたいだけど

llvmのフルビルドは昔のgcc並に時間がかかる

503 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 07:51:51.21 ]
clang+llvmフルビルドで5分

504 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 08:49:36.76 ]
どういう環境だ?
make clean
やってみたら

505 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 09:14:18.51 ]
- AMD FX 8150, 32GB RAM, Intel X25-M
- make -j8
- コンパイラは Release-Asserts でビルドした clang
- make clean どころか configure(16s) から

これで 5:33
あ、ごめん、configure まで入れると6分近いな。

506 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 12:30:28.59 ]
cmake+ninja (-j24) で 3分切るようだ。

507 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 14:00:15.81 ]
それ。llvmだけじゃあ

508 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 21:55:59.74 ]
apple主導の技術は例外なくコケる
成果はあるんだからはよgoogleなりmsなり動けよと

509 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 22:43:41.31 ]
>>508
>apple主導の技術は例外なくコケる
具体的にくわしく

510 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 22:47:55.67 ]
OpenDoc



511 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 23:16:30.52 ]
もっと新しい技術で

512 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 23:23:30.50 ]
WebKitを使ったブラウザにTrueType表示された物を読み、手前にトラッキング
デバイスが配置されたノート機からUnicodeで書き込む>>508であった。

513 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 23:31:42.15 ]
ハード規格はぱっとせんな。火縄とさんぼるが面白いくらい滑ってる
ソフトだとロジックもFCPも停滞してるが、湧かせた事があるだけマシか

LLVMは今Appleが手を引いたら寒くなるんじゃ

514 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 23:34:59.92 ]
気を取り直してハードに限定しました☆

515 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 23:41:50.75 ]
いえい

516 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 02:53:26.97 ]
りんごでしかもの見てない人たち?

517 名前:デフォルトの名無しさん mailto:sage [2012/10/23(火) 08:03:22.72 ]
>>508
GOOG の貢献率は2番手。 Sanitizer は Google Moskva の成果。

AAPL主導の云々は ObjC 周りくらいじゃないか?

518 名前:デフォルトの名無しさん mailto:sage [2012/11/14(水) 02:08:41.21 ]
ttp://lists.cs.uiuc.edu/pipermail/llvmdev/2012-November/055494.html

519 名前:デフォルトの名無しさん mailto:sage [2012/11/16(金) 19:35:46.32 ]
ttp://lists.cs.uiuc.edu/pipermail/llvmdev/2012-November/055574.html

520 名前:デフォルトの名無しさん [2012/12/28(金) 21:48:19.50 ]
LLVM 3.2 is Here.
llvm.org/docs/ReleaseNotes.html



521 名前:デフォルトの名無しさん [2013/02/15(金) 22:55:29.33 ]
cygwinのclangとフルビルドについて質問です。
現在cygwinにバンドルされているのはclang-3.1-3ですが
最新版が試したかったのでリポジトリからtrunkを取得してビルドしてみました。
しかし過去ログにあるように
>>349
>Cygwinでビルドした clang.exe が起動激遅。clang --helpですら1秒くらい時間を要する。
という同じ状況になりました。
バンドル版は高速起動です。
time clang -cc1 -version
で計測して比較してみるとかなり差があります。
特に2回目以降の起動で大きな差がでます。

522 名前:デフォルトの名無しさん [2013/02/15(金) 23:00:53.48 ]
当初はtrunkのclang-3.3が重いのかもしれないと思い
バンドル版と同じバージョンの clang-3.1
llvm.org/svn/llvm-project/llvm/tags/RELEASE_31/final
を取得して
CC=gcc CXX=g++ ../llvm/configure --enable-optimized --enable-assertions=no --enable-targets=host-only --enable-shared
でビルドしましたがやっぱり自分でビルドしたバージョンは激おそです。
ビルドしたものはmake install せずにその場で実行しています。

523 名前:デフォルトの名無しさん [2013/02/15(金) 23:02:55.30 ]
時間比較は以下でしました。
# ビルド版
time ./Release/bin/clang -cc1 -version
time ./Release/bin/clang -cc1 -version
# バンドル版
time clang -cc1 -version
time clang -cc1 -version

バンドル版を同じぐらいの実行速度を出すにはどうしたらいいんでしょうか?

524 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 23:53:13.69 ]
パッケージのソースからビルドを試さないとなんとも言えんな。俺が知ってる回避策は LIBS=-static

>>349 は俺。引き続き准教授とか待ってる。

525 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 00:09:32.90 ]
$ make VERBOSE=1 REQUIRES_RTTI=1 OPTIMIZE_OPTION="-g -O2 -fomit-frame-pointer"

526 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 18:35:53.23 ]
helpすら遅いって明らかに何かおかしい
アンチウイルスを止めてみたらどうかね?

527 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 19:13:38.87 ]
ビルドログを見て
最適化フラグが期待通りになってるか確認すれ

528 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 02:01:50.95 ]
1. 最適化についての確認
ビルドログを確認してO3であることを確認しました。
また、
time ./Release/bin/clang -cc1 -version
の実行結果が
LLVM version 3.3svn
Optimized build.
Built Feb 14 2013 (12:11:02).
Default target: i386-pc-cygwin
Host CPU: core-avx-i
となり、最適化されていることがわかります。

2. パッケージのソースからビルドを試さないとなんとも言えんな。俺が知ってる回避策は LIBS=-static
LIBSは make 引数? configure前引数のどちらでしょう?
configure の --enable-embed-stdcxx=yes と同等ではない?
ちなみに --enable-shared --enable-embed-stdcxx を同時指定して作成された makefile だと
ビルド後半でリンクエラー終了(うろおぼえ)してました。

3. $ make VERBOSE=1 REQUIRES_RTTI=1 OPTIMIZE_OPTION="-g -O2 -fomit-frame-pointer"
これも結果変わりませんでした。

4. アンチウイルスを止めてみたらどうかね?
とめました。また、アンチウィルスのせいだった場合cygwinバンドル版も遅くなるきがするのですが・・。

5. cygwinバンドル版3.1-3ソース
とりあえず落として中身を見ました。 ./llvm-3.1-3-src/llvm.cygport
内にconfigureオプションの記述がありました。
cygconf --disable-assertions --enable-optimized --enable-debug-runtime \
--enable-debug-symbols --enable-targets=all \
--enable-libffi --enable-shared --disable-embed-stdcxx \
--with-gcc-toolchain=/usr
見てる限り大体同じような感じでした。 あれ?シンボル込み??ってところ意外は。

529 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 02:02:21.96 ]
6. cygwinバンドル版のバージョン番号の意味
3.1の 1-1,1-2,1-3って何が更新されてるんだろう??
diffとってもこんな感じだし・・

diff -r llvm-3.1-2-src/llvm.cygport llvm-3.1-3-src/llvm.cygport
5c5
< RELEASE=2
---
> RELEASE=3

つーかバージョン番号進めてるだけやん。
っていうのとcygwinでの3.2リリースってどこかにアナウスされてますかね?
バンドル版3.2がリリースされて軽快な動作なら、そっち使うんですが・・・。

530 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 02:09:45.46 ]
clangがbinにあるとclangでコンパイルするみたいだけど、llvmとその一族



531 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 05:47:07.66 ]
>>529
3.1-3はCygwinのPythonが2.7系へ変更されたためのリビルド
cygwin-ports.git.sourceforge.net/git/gitweb.cgi?p=cygwin-ports/llvm;a=commit;h=7b781158fdd956e35fcdfd4057e8cb10f4259387
Cygwinの3.2はまだ出てない

532 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 09:22:54.28 ]
>>528
strace でなんか見えない?

533 名前:デフォルトの名無しさん [2013/03/06(水) 21:53:25.53 ]
見捨てられたCBackendが別の人に拾われて復活していた

534 名前:片山博文MZパンク ◆0lBZNi.Q7evd [2013/03/12(火) 17:15:49.87 ]
面白そうなので上げます

535 名前:デフォルトの名無しさん mailto:sage [2013/03/13(水) 08:19:00.90 ]
>>533
mjdk!

536 名前:デフォルトの名無しさん [2013/03/13(水) 23:13:49.71 ]
JavaScriptバックエンドを作りたい人がベースにしようとしてGitHubに入れていたが
JavaScript版は放置されていた

CBackendは一応2〜3ヶ月前のLLVMなら動く
API変更があったため
リポジトリの最新版のLLVMでは色々手直ししないとだめぽ

GitHubにあるllvm-mirrorのフォークではないらしく
ローカルリポジトリの同期先に追加しようとしたら共通コミットが無かった

537 名前:デフォルトの名無しさん mailto:sage [2013/03/13(水) 23:26:17.09 ]
>>536
>GitHubにあるllvm-mirrorのフォークではないらしく

https://github.com/earl/llvm-mirror
NOTE: The LLVM project now operates official Git mirrors as well: llvm.org/docs/GettingStarted.html#git_mirror -- An
automated mirror of llvm/trunk from LLVM's SVN. Updates hourly. Release branches and tags are tracked manually. This mirror is
*not* commit-ID compatible with the official Git mirrors.

歴史的理由がなければ earl のリポ使うんじゃない。
※earl を dis ってるのではないので念のため。

538 名前:デフォルトの名無しさん [2013/03/31(日) 16:29:26.18 ]
本家ドキュメントに書いてあるGitミラーのフォークでも
GitHubにあるミラーのフォークでもなかった
スマソ

539 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 09:14:00.68 ]
CYGWINに入ってるclangとsvnでとったclangを共存させるには、どうしたらいいですか?configure --prefix=
で設定して、PATHの先頭に置けば大丈夫ですかね。
出来れば環境変数の設定だけできりかえたいので。切り替え中は実行ファイルだけでなくLIBやincludeも新しいほうをみてほしいです。

540 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 16:17:13.95 ]
去年の夏にC++ Primer 5ed.がC++11で書き換えられていたのね。
Cは完全に排除した大幅書き換えらしい。
www.amazon.com/gp/product/0321714113/



541 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 16:17:48.64 ]
おお、>>540は誤爆です...

542 名前:デフォルトの名無しさん mailto:sage [2013/04/12(金) 16:24:32.51 ]
スレタイがラブラブバーチャルマシンに見えた
禿本も新版もうすぐ出るね

543 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 01:09:51.60 ]
>>540-541
びみょーにスレ違いじゃないとも言えなくもない。

544 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 20:01:21.04 ]
stack overflow

545 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 20:07:28.70 ]
memory exhausted

546 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 03:35:54.74 ]
exc_bad_access

547 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 02:08:11.58 ]
intelコンパイラとドッチが速い?

548 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 00:53:26.00 ]
attractivechaos.github.io/plb/
www.ospn.jp/osc2009-fukuoka/OSC2009_Fukuoka_ComputingInJava.pdf
こんなんあるよ。

549 名前:デフォルトの名無しさん [2013/05/09(木) 00:33:13.42 ]
>>548
> www.ospn.jp/osc2009-fukuoka/OSC2009_Fukuoka_ComputingInJava.pdf
この実験結果から"LLVMは、かなり速い"は無理あるような気がするが。
あと比較対象がJAVAのAOTなのもどうかと。

550 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 00:47:01.62 ]
「JavaバックエンドとしてのLLVM」と、iccを比較しても>>547への回答になってない気がするが。
clangと比較しろよ。



551 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 01:33:17.50 ]
visual studio でclang3.2と3.3ビルド成功した人いませんか?
win32,x64共に3プロジェクトだけエラーになります。
stdbool.hが無いといわれてるのが9割なんですが、これってどうやって解決していますか?

後もうひとつなんですが llvm-config.exeを作成するプロジェクトそのものが見つからないのですが・・
これってどうなってるか御存知のかたいます?

552 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 11:59:05.59 ]
>>551
llvm-config の生成はわりとくだらない理由により抑制されている。
llvm/tools/CMakeLists.txt いじって試してみてくれ。

Visual Studio, CMake, あと Python のバージョンを教えれ。

俺が知る限りビルドはふつーに行われている。
MSC16(VS2010) x64 ttp://bb.pgr.jp/builders/cmake-clang-x64-msc16-R
MSC17(VS2012) x86 ttp://bb.pgr.jp/builders/ninja-clang-i686-msc17-R

553 名前:551 mailto:sage [2013/05/23(木) 01:09:23.97 ]
>>552
> >>551
> llvm-config の生成はわりとくだらない理由により抑制されている。
> llvm/tools/CMakeLists.txt いじって試してみてくれ。
了解です。
>
> 俺が知る限りビルドはふつーに行われている。
> MSC16(VS2010) x64 ttp://bb.pgr.jp/builders/cmake-clang-x64-msc16-R
> MSC17(VS2012) x86 ttp://bb.pgr.jp/builders/ninja-clang-i686-msc17-R
こんなビルドボットサーバーあったんですね。
知らなかった・・・。

554 名前:551 mailto:sage [2013/05/23(木) 01:15:51.70 ]
> Visual Studio, CMake, あと Python のバージョンを教えれ。
>
VS 2010 Professional + VS SP1 + その他パッチ
Python 2.7.5 Windows X86-64 Installer
cmake-2.8.10.2-win32-x86.zipの cmake-gui.exe で作成。
※cygwin bundle のcmake.exeとofficial のcmakeを./configureして作ったcmake.exeは
 ジェネレーターにVS系が全然無いんですが
 cmake-2.8.10.2-win32-x86.zip添付のcmake.exeにはありました。これはなんで・・?

とりあえずclang-3.2 release finalでの報告。
llvm/lib/TableGen/TGParser.cpp
llvm/utils/TableGen/CodeGenRegisters.cpp
の2ファイルにパッチを当てないとcl.exeがインターナルエラーで落ちるのでこれはパッチを当てて回避してます。

パッチ適用後は上記書き込みのとおり3プロジェクトのエラーのみになります。
エラー内容は以下のみです。

6>c:\cygwin20121103\tmp\clang-32\llvm\projects\compiler-rt\lib\int_lib.h(37): fatal error C1083: include ファイルを開けません。'stdbool.h': No such file or directory
あとは
6>c:\cygwin20121103\tmp\clang-32\llvm\projects\compiler-rt\lib\int_util.h(27): error C2061: 構文エラー : 識別子 '__attribute__'
6>c:\cygwin20121103\tmp\clang-32\llvm\projects\compiler-rt\lib\int_util.h(27): error C2059: 構文エラー : ';'
6>c:\cygwin20121103\tmp\clang-32\llvm\projects\compiler-rt\lib\int_util.h(27): error C2182: 'noreturn' : 'void' 型が不適切に使用されています。

555 名前:デフォルトの名無しさん mailto:sage [2013/05/23(木) 01:28:33.75 ]
compiler-rt は対応してないと考えといて。

556 名前:551 mailto:sage [2013/05/23(木) 02:19:54.07 ]
>>555
> compiler-rt は対応してないと考えといて。
わかりました。

557 名前:551 mailto:sage [2013/05/23(木) 02:30:45.88 ]
いい忘れましたが上の件は3.2, trunk revision 182484で同様の結果でした。
※trunkのほうはインターナルエラーはでなかったのでパッチは当ててません。
※目的とするclang.exe,libclang.dll,libclang.libなどは得られているのでとりあえずおk。

ついでに他の環境でのビルドも聞きたいです。教えてください。
当方としては、32/64bit両方のclang.exeとlibclang.dllが欲しい状態です。

cygwinでx86に対するビルドは問題なく完了するのですが
x86_64に対しては--enable-targetsで指定してもhostと同じものしかみていないのか
完成するものはx86のみになってしまいます。

configure引数は↓のとおりです。

CC_CMD="${CCACHE_CMD}gcc"
CXX_CMD="${CCACHE_CMD}g++"
CC=${CC_CMD} CXX=${CXX_CMD} ../llvm/configure --enable-optimized --enable-assertions=no --enable-targets=x86,x86_64

CC_CMD,CXX_CMDを
x86_64-pc-cygwin-gcc
x86_64-pc-cygwin-g++
などにしてみましたがconfigureは途中までしか逝きませんでした。

また、mingwでのビルドを行う場合、mingw環境のセットアップと同環境でのビルドでないとだめでしょうか?
cygwinにmingwパッケージx86_64-w64-mingw32-gccなどがあるので、こちらでできれば、これらを使用してビルドしたいのですが・・。

558 名前:デフォルトの名無しさん mailto:sage [2013/06/16(日) 12:07:46.85 ]
3.3出すのにえらく時間かかってるね?

559 名前:デフォルトの名無しさん mailto:sage [2013/06/18(火) 22:07:25.89 ]
svnから3.3リリースとれたよ?

560 名前:デフォルトの名無しさん mailto:sage [2013/06/18(火) 22:53:51.37 ]
タグつけたのにリリース出すのに手間取ってるねということさ



561 名前:デフォルトの名無しさん mailto:sage [2013/06/19(水) 00:23:11.95 ]
3.2の時もタグついてから正式リリースアナウンスまでが長かった希ガス

562 名前:デフォルトの名無しさん mailto:sage [2013/06/19(水) 03:08:42.14 ]
3.2のときは短かった

563 名前:デフォルトの名無しさん mailto:sage [2013/06/19(水) 07:32:45.84 ]
昨日の朝の時点でここまでは用意されてた。
llvm.org/releases/download.html#3.3

564 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 19:25:23.38 ]
おっ! ついにLLVMの日本語技術解説本きたな
motipizza.com/img/eb-kitsune.jpg

565 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 19:29:43.51 ]
>>564
なんだ、ネタかよ('A`)と思ったらネタじゃなかったw
それにしても、なんだこの表紙?

566 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 19:47:47.18 ]
同人のようだな。かなり欲しいんだけど。
狐本と自称してるようだ。

567 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 19:52:28.01 ]
ごめん、勘違いだ。インプレス出版なんだな。
これはアマゾンさんにお願いするしか無いな。

568 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 19:55:15.49 ]
とらのあな委託かと思った

569 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 19:58:31.28 ]
>>568
俺も。一瞬諦めかけたぜ。

570 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 20:59:24.83 ]
それダウンロード販売もしてるよ。手許にPDFがある



571 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 21:03:25.70 ]
それって推敲途中版じゃなかったか

572 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 22:14:39.22 ]
>>570
萌えテイストは表紙だけ……だろうな?

573 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 23:10:58.16 ]
ttp://tatsu-zine.com/books/llvm

久しぶりにログインしたらver. 0.9.1だった。紙の本はここから何か進展があったんだろうか。

574 名前:デフォルトの名無しさん mailto:sage [2013/06/22(土) 23:14:35.90 ]
ttp://d.hatena.ne.jp/tatsu-zine/20130621/1371811774
「電子の方の更新も近々行う予定です。少々お待ちください。」
だそうです。

>>572
表紙だけ。>>573で中が一部読めますよ。

575 名前:デフォルトの名無しさん mailto:sage [2013/06/23(日) 13:25:26.59 ]
>>574
サンクス
ぽちった
カバーは速攻ひっぺがす

576 名前:デフォルトの名無しさん mailto:sage [2013/06/23(日) 13:35:06.64 ]
そして枕の下に敷いて寝ます

数日前本屋でも平積みにしてあった
まえがきに達人出版会についても触れていたけど
ニッチな本がこうして日の目を見るのはいいことだ

577 名前:デフォルトの名無しさん mailto:sage [2013/06/23(日) 13:40:54.70 ]
エッチな本かと思た

578 名前:デフォルトの名無しさん mailto:sage [2013/06/25(火) 19:51:56.65 ]
>>574
575だが、今日届いた
カバーの下に同じイラストがモノクロで…なんて悪夢を想像したが
全然そんなことはなかったぜ

所々にはさまってる挿絵が…

579 名前:デフォルトの名無しさん mailto:sage [2013/06/25(火) 20:10:19.12 ]
表紙にも挿絵にも作者達の想いが詰まっている。温かく迎えましょう

580 名前:デフォルトの名無しさん mailto:sage [2013/06/26(水) 20:38:35.51 ]
キツネさんをamazonで注文した。楽しみだな〜。
すでにコンビニ行ってきたぜ。



581 名前:デフォルトの名無しさん mailto:sage [2013/06/27(木) 00:30:09.77 ]
>>579
>作者達の想いが詰まっている

うげ…気持ち悪い…

582 名前:デフォルトの名無しさん mailto:sage [2013/06/27(木) 09:23:22.68 ]
あなたには読まない自由はいくらでもあるんですよ?

583 名前:デフォルトの名無しさん mailto:sage [2013/07/09(火) NY:AN:NY.AN ]
clangって速くなった?

584 名前:デフォルトの名無しさん mailto:sage [2013/07/09(火) NY:AN:NY.AN ]
何に比べて?

585 名前:デフォルトの名無しさん mailto:sage [2013/08/16(金) NY:AN:NY.AN ]
ターゲットマシンをjavavmにしてjsをjavaバイトコードにコンパイルすると速さ競える?

586 名前:デフォルトの名無しさん [2013/08/24(土) NY:AN:NY.AN ]
>>585
javavm?そのようなターゲットは無い
前はあったらしいが

587 名前:デフォルトの名無しさん mailto:sage [2013/08/24(土) NY:AN:NY.AN ]
>>564
技術書までラノベ調の流れか

588 名前:デフォルトの名無しさん mailto:sage [2013/08/24(土) NY:AN:NY.AN ]
オレ批評してやったぜ(キリッ

589 名前:デフォルトの名無しさん [2013/08/24(土) NY:AN:NY.AN ]
きつねさんでもわかるLLVM ~コンパイラを自作するためのガイドブック~:Amazon.co.jp:本
www.amazon.co.jp/gp/aw/d/4844334158/ref=redir_mdp_mobile

レビューを見る限りでは買い!とはあまり思えないが
日本語での情報がほしい人なら少しは価値があるのやもしれぬ

590 名前:デフォルトの名無しさん mailto:sage [2013/08/25(日) NY:AN:NY.AN ]
サンキュ!



591 名前:片山博文MZコスモ ◆T6xkBnTXz7B0 mailto:sage [2013/08/29(木) NY:AN:NY.AN ]
馬鹿でもインストールできるようにしてくれないかな。。。

592 名前:デフォルトの名無しさん mailto:sage [2013/08/29(木) NY:AN:NY.AN ]
ディストロのパッケージでも利用すれ。

593 名前:デフォルトの名無しさん mailto:sage [2013/08/30(金) NY:AN:NY.AN ]
FreeBSD10からCLANG(LLVM)が標準搭載になる

594 名前:デフォルトの名無しさん mailto:sage [2013/08/30(金) NY:AN:NY.AN ]
というか俺はGCCを捨てるぞォォォォォッってことだろ

595 名前:デフォルトの名無しさん [2013/08/30(金) NY:AN:NY.AN ]
GCCじゃないとコンパイル通らないものはどうする

596 名前:デフォルトの名無しさん mailto:sage [2013/08/30(金) NY:AN:NY.AN ]
焚書

597 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
ちょっと皆の知恵を貸してほしい。

OS:Windows7 Ultimate 64bit
コンパイラ:MinGW-w64 gcc 4.8.1 dwarf2 32bit

上記の環境でLLVM + Clang 3.3をビルドして、試しに

(ファイル名:1.cpp)
#include <iostream>
int main(void)
{
std::cout << "Hello,World." << std::endl;
return 0;
}

を、MSYS上から
clang -o 1.exe 1.cpp -lstdc++
でコンパイルしてみた。

コンパイルはエラー無く通って実行ファイルは生成できたんだが、
実行時に下記画像のようになる。

uploda.cc/img/img5220d57c5c73b.png

VirtualBoxに構築したWindows XP 32bitでこのファイルを実行した場合には
この症状が出ないので、十中八九開発側の環境のせいだと思うんだが、原因がわからない。
例外コードやMinGW-w64 llvm関連の検索はしてみたが、俺には見つけられなかった。
同じような症状が出て、解決した人がいたらぜひ教えて下さい。

598 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
mingw固有の関数を使っているとOSがウイルス?と判定してる感じだけど

599 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
まあ、wingw自体、動作が保証されてないけどね
ウィンドウズではcygwinだけしか動作が保証されてない
要は使えないものだってことだけど

600 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
ついでに言うと、32bitプログラムしか動作保証もされてない



601 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
単なる DLL hell なんじゃないの

602 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
>>597
例外コード
ttp://www.tenox.net/links/ntstatus.html

603 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
その画面を下にスクロールすると例外のあったアドレスが出てないか?
それでぐぐるとか。共有libに戻った所で起きてるんだろうから、どうせみんな同じアドレスでじゃないのか。知ったところで解決手段は出てこないけどね

604 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
>>597
>>601が言ってるけど
libstdc++-6.dllは同じ名前でABIが違う(非互換)なのがゴロゴロしてるから
思いっきりDLL hellだと思うぞ
libstdc++をstaticリンクしてしまうか、開発側のlibstdc++-6.dllを
exeと同じディレクトリに置いた形で配布

605 名前:597 mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
スタティックリンクでも試してみた。
コマンドラインは
clang -static -o 1.exe 1.cpp

実行結果は以前と変わらずAPPCRASHだった。

問題の署名:
問題イベント名: APPCRASH
アプリケーション名: 1.exe
アプリケーションのバージョン: 0.0.0.0
アプリケーションのタイムスタンプ: 522176ca
障害モジュールの名前: 1.exe
障害モジュールのバージョン: 0.0.0.0
障害モジュールのタイムスタンプ: 522176ca
例外コード: c0000005
例外オフセット: 00069fa5
OS バージョン: 6.1.7601.2.1.0.256.1
ロケール ID: 1041
追加情報 1: 0a9e
追加情報 2: 0a9e372d3b4ad19135b953a78882e789
追加情報 3: 0a9e
追加情報 4: 0a9e372d3b4ad19135b953a78882e789

あと、情報が後出しになってしまって申し訳なかったのだが、XPは
開発環境自体入れていない素の状態だったので、XP上で実行時には
開発環境のlibstdc++-6.dllおよびlibgcc_s_dw2-1.dllは実行ファイルと同じ
ディレクトリにコピーしていた。

ダメだ…俺にはお手上げだぁ…潔く諦めて対応されるまで待つ。
みんな協力ありがとうございました。

606 名前:デフォルトの名無しさん mailto:sage [2013/09/03(火) 21:02:25.60 ]
>>595
標準搭載なだけでgccを捨てるんじゃないんじゃね?

607 名前:デフォルトの名無しさん mailto:sage [2013/09/04(水) 18:38:23.66 ]
ライセンスが気に入らないと言ってるから
使えなくなるのは時間の問題

608 名前:デフォルトの名無しさん mailto:sage [2013/09/05(木) 05:00:27.60 ]
使いたければ自分で入れればいいだけなので実害はなかろ

609 名前:デフォルトの名無しさん mailto:sage [2013/09/27(金) 05:18:51.46 ]
今しがた1時間程かけてビルド完了したんだけど、clang++でリンク時、_Unwind_Resume
が不明とのエラーが出ちゃう
GCCのライブラリはstaticでビルド、ってのは関係ないと思うんだけど、もうさっぱり原因
が分かりませぬ、誰かぽけすて

んでもコンパイルは出来るのでいくつかやってみたけど、GCCでは問題なくビルド出来る
ヤツでもclangじゃエラーで止まるのが結構あるね。噂どおり、ビルドの速度は速いし、
出来たブツのファイルサイズは小さくなってる

610 名前:デフォルトの名無しさん mailto:sage [2013/09/27(金) 07:24:16.08 ]
事故解決しますた
-fno-exceptionsをつけるといいみたい。
参考URL
ttp://stackoverflow.com/questions/329059/what-is-gxx-personality-v0-for

野良ビルドするのにmingwって苦行だな、pythonもパッチ当てなきゃまともに動かないし



611 名前:デフォルトの名無しさん mailto:sage [2013/09/27(金) 17:36:28.78 ]
>>557
x86_64-w64-mingw32のバイナリが欲しいって事だと思うんだけど、
3.3だとbuildとhostをx86_64-w64-mingw32にしたら作れたな

mingw32-w64ビルドのチラ裏:
cxx11を有効にしてビルドしようとすると、mingw32-w64のmath.hに問題があるので修
正しないと通らない。恐らくmingw32だと通る。
面倒なので一時的に55、58、71、217、225、246、247,256行目をコメントアウトする。

検索パスはベタ書きなので、自分の環境に合わせてInitHeaderSearch.cppを書き換え

libcppはlibcxxを導入してからビルド、これもstdio.hに問題があるので修正
しかしg++が"-stdlib=libc++なんてコマンド知らん"と文句言うトコだけ解決できない。

612 名前:デフォルトの名無しさん mailto:sage [2013/09/27(金) 20:07:15.89 ]
_Unwind_Resumeは例外用のランタイム関数だぞ
-fno-exceptionsは例外を受け取れなくなるが、わかっててやってるよね?

613 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 00:47:47.33 ]
GCCをsjlj有効にしてビルドしちゃった
なのでunwind_sjlj_Resumeはあるけどunwind_Resumeなんて知らねーよってエラー
どーしよー

614 名前:デフォルトの名無しさん mailto:sage [2013/10/01(火) 01:33:31.71 ]
libclang使ってる人いませんか?

615 名前:デフォルトの名無しさん mailto:sage [2013/10/02(水) 19:17:20.70 ]
使いたいけどまだIDE側が整ってないような

616 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 17:49:46.06 ]
IDE側って?
libclang.aリンクして自分でアプリ作るって意味じゃないのかな

617 名前:デフォルトの名無しさん mailto:sage [2013/10/18(金) 10:48:11.79 ]
これwindowsというかmingw32-w64だと、sjljにしかregister_frameが無いから
sjlj有効にしたgccじゃないとコンパイル出来ないんだな。

でもclang側には_Unwind_Resumeはあっても_Unwind_sjlj_Resumeは無いから
-fno-exceptionsを付けないとc++のリンクが通らない。
現状win+mingwじゃ使い物にならん。公式で配布されてるのを使うしかないのか

618 名前:デフォルトの名無しさん mailto:sage [2013/10/18(金) 10:52:42.47 ]
あ、64bitの話ね
win64はsjlj使わなくても強制的にregister_frame使うようにされてた

619 名前:デフォルトの名無しさん mailto:sage [2013/10/18(金) 19:27:36.04 ]
違うな
clangにも_Unwind_Sjlj_Resumeはある
だけどsljlを有効にしたstdc++に_Unwind_Resumeが無いからリンクがこける

620 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 00:06:42.58 ]
winでClangするぞで、ここに来たけど、winではまともに動く最新Clangはないってことか。
お前らはどの環境でClangしている? Linuxか



621 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 00:13:31.70 ]
OSX

OpenCL コンパイラの吐いたバイトコードを llvm-dis って、それ読んでコードを最適化する作業にハマってる。

622 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 00:20:49.33 ]
MinGW 32 bitでは3.4 trunkが使えてたけど、一昨日の
「r193255 - llvm-c/lto.h: Avoid use of bool.」 でビルド通らなくなった

623 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 00:48:49.44 ]
>>621
リンゴか、りんごもバイナリ配布があるからな。

>>622
それ以前の3.4+MinGW 32 bitではまともに動いていたのか!

624 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 02:12:50.21 ]
>>623
林檎はバイナリ配布どころか標準開発環境で採用しちまってるよ
MSもなんかリクルート出してたから追従する気があるのかもしれんけど、当面期待出来なさげなのがなんともだな

FreeBSDが一番積極的に感じるけど今どうなってるのかな

625 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 02:25:55.12 ]
そもそも中心になってclangを開発してきたのはAppleなわけで
FreeBSDもそれを採用した

626 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 02:37:27.80 ]
ジョブズさんに感謝です

627 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 03:06:37.42 ]
MinGWビルドでもClangのコードコンプリート機能は使えた。
秀丸に組み込んでエセインテリセンス。
いやー捗るわコレ。

628 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 08:27:50.28 ]
>>622
参考までに、詳細教えてくれ。
stdbool.h を削った副作用?

629 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 18:37:11.94 ]
>>628
>>622は間違いだった。陳謝。
「r193233 - Add llvm-c-test tool for testing llvm-c」だった

・llvm-c-test
-std=c99 付きでコンパイルされるから off_t が未定義になってエラー
include/llvm-c/lto.h に含まれる off_t を _off_t に書き換えて回避可能
正しい直し方がわからないので偉い人にお任せ

・tools/clang/tools/c-index-test
-std=c89 で off64_t が未定義になりエラー
MinGWの io.h をアップデート↓して回避
sourceforge.net/p/mingw/mingw-org-wsl/ci/4.1-dev/tree/include/io.h?diff=38a1ac5068ce24f16e15f1e166a86d3c9cdcadfe
これもあてた方がいいのかな
sourceforge.net/p/mingw/mingw-org-wsl/ci/4.1-dev/tree/include/unistd.h?diff=088538f717bbafc5079940f3df298172a38ec4c1

630 名前:デフォルトの名無しさん [2013/10/29(火) 21:20:06.09 ]
age



631 名前:デフォルトの名無しさん mailto:sage [2013/10/30(水) 17:36:20.72 ]
libclangはようわからん・・・同じような状況なのに補完されたり、されなかったり
コマンドライン版はとちゃんと動くのになあ

632 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 23:41:57.12 ]
LLJVMっていうのがあるらしいですけど(バックエンドにJVM)
これって理屈的には、フロントエンドが存在する言語からであれば
どんな言語でもJVMで実行可能な状態にコンパイルできるってことでしょうか?

633 名前:デフォルトの名無しさん mailto:sage [2013/11/11(月) 02:28:43.17 ]
むかしLLVM C Backendがあったが、実際には使い物にならなくてメインラインから取り除かれた。
あとは分かるな? つまりそういうことだ。

634 名前:デフォルトの名無しさん mailto:sage [2013/11/11(月) 11:10:39.09 ]
llvm派生プロジェクトvmtkってレジュメや論文はいい感じでまとまってるのに、開発停滞してるのかな...
なにがダメだったんだろうか?

635 名前:デフォルトの名無しさん mailto:sage [2013/11/11(月) 11:19:43.41 ]
OpenJDKからライブラリを持ってきたりしてJavaVMとしての機能を優先させるうちに
実行速度の追求が二の次になっちゃって訴求力が薄れちゃったの?

636 名前:デフォルトの名無しさん mailto:sage [2013/12/26(木) 05:53:01.47 ]
llvmってバイナリ可用性はあるの?無いの?
システムコールとライブラリコールはどうやって実現してるの?

637 名前:デフォルトの名無しさん mailto:sage [2013/12/27(金) 00:00:49.34 ]
ないよ

638 名前:デフォルトの名無しさん mailto:sage [2014/01/06(月) 09:19:43.32 ]
3.4のタグは、切ってあるみたいだが
もう正式リリースされたの?

639 名前:デフォルトの名無しさん mailto:sage [2014/01/08(水) 13:09:11.73 ]
3.4正式リリースされた

640 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 12:22:25.57 ]
これってC言語にVM組み込んで
スクリプト言語みたいにできんの?



641 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 22:52:48.55 ]
出来るがスクリプト言語使いたいだけならLuaでも使っとけ

642 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 01:34:22.50 ]
>>595
インストーラや標準パッケージ以外に含まれることはでは排除してない。

643 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 23:04:01.88 ]
Revision 200000
> [llvm] r200000 - DWARFContext: Fix possible memory leak since r198908.
( ゚д゚ )ミタヨ

644 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 04:10:08.55 ]
Ruby/LLVM

645 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 10:09:53.22 ]
>>644
それRubinius

646 名前:デフォルトの名無しさん mailto:sage [2014/01/26(日) 19:39:25.92 ]
PlayStation4に採用されたと聞いて

647 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 09:50:36.50 ]
PlayStation 4、開発にはLLVM Clang
ttp://news.mynavi.jp/news/2013/12/25/269/index.html

リンク時間が短くなるなら良いな。

648 名前:デフォルトの名無しさん [2014/02/04(火) 11:12:01.97 ]
ああ

649 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 03:29:25.65 ]
リンク時間短くなっても俺らには関係なくね
あと出力されるコードの性能がよいって本当?gcc超えたの?

650 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 12:02:19.97 ]
出力されるコードの性能なんて
ソースコードとアーキテクチャに依存するだろ
PS3はCell、PS4はx86-64だ

x86ターゲットのGCCと比べて良いという話ではないし
そもそもマイナビの記者が言ってるのはリンカ出力のことなんじゃないか?

技術的には決定的でないと断言している
少なくともコンパイラの性能は及第点ではあるんだろう



651 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 13:42:03.81 ]
ちょっと大きなコードを開発したことあればかなり嬉しいと感じると思うんだけどなあ。
clang はコンパイルも速いし。

652 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 14:21:17.13 ]
最適化を期待するコードのところだけgccでコンパイルして残りはclangでコンパイル、リンクすればいいんじゃね?

653 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 14:29:54.01 ]
エラーメッセージがわかりやすいだけでもclangは嬉しい

654 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 20:52:41.64 ]
VCががんばっていたwindowsもClangでコンパイルが普通になり、
実質clangがデファクトスタンダードになったからね。
ほかのコンパイラ使う奴はもうほとんどいないし

655 名前:デフォルトの名無しさん [2014/02/09(日) 21:31:13.10 ]
LLVMLinuxってプロジェクトがあるが、進捗状況はどうなの?

656 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 21:32:55.16 ]
>>654
あわやMSがwinそのものをclangでビルドするところまでこぎつけたのかと誤読するところ
winでも普通にclang使えるようになってきたって意味ね?

そういや前MSが募ってたclang人材って結局なんだったのかな

657 名前:デフォルトの名無しさん [2014/02/09(日) 21:40:07.64 ]
Apple支援要員じゃないの?

658 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 23:16:18.05 ]
>>656
>clang人材
VCをClangベースにするためだろ
その成果がClang-clだろう

659 名前:片山博文MZ無能 ◆T6xkBnTXz7B0 mailto:sage [2014/02/12(水) 00:04:21.99 ]
これってC++パーサにも使えるの?

660 名前:デフォルトの名無しさん mailto:sage [2014/02/12(水) 00:57:45.83 ]
これってどれさ糞コテさん。LLVM本体にはないよ
お望みのもんかわからんが、「clang パーサ」でググり続けるよろし
とりあえず構文木を得る例なんかがヒットするんで、あとはお好きなように



661 名前:片山博文MZ無能 ◆T6xkBnTXz7B0 mailto:sage [2014/02/16(日) 19:41:53.87 ]
さんきゅ

662 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 23:43:14.53 ]
礼なら現金で

663 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 23:48:09.46 ]
いやいや女融通してくれればいいだけのこと

664 名前:片山博文MZ無能 ◆T6xkBnTXz7B0 mailto:sage [2014/02/17(月) 20:31:44.41 ]
VBScriptスレに桃白白って娘が居るよ。口説いたら堕ちるかもね。俺には無理だった

665 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 23:12:21.64 ]
鞄に入れて運ぼうとした?

666 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 23:18:17.59 ]
そんなシーンあったっけ?
木を投げて乗ったことにビックリしたことしか覚えていない
あの運動エネルギーを出せるなら、その筋力で自分で飛べよと思う暇もないほどかっこよかった

再読したくなってきた
kindleで買うかな

667 名前:デフォルトの名無しさん [2014/02/18(火) 11:01:02.43 ]
昨日Juliaを知り早速インストール
2012年からの新しい言語だからまだユーザーは少ない様ですがLLVMで超高速

668 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 19:24:49.20 ]
LLVMって日本のおかげでここまでになったらしいな
実質LLVMは日本が育てたなんだろ

669 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 19:31:53.41 ]
何情報?

670 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 19:41:16.94 ]
俺は主にアップルのおかげだと思います。



671 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 19:42:00.79 ]
>>669
宇宙からの電波に決まっているじゃないですか

672 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 19:46:09.03 ]
受信ロッド折っとけ。

673 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 20:06:11.86 ]
youtu.be/AFWm7_fE7Uw

674 名前:デフォルトの名無しさん mailto:sage [2014/02/19(水) 21:59:55.58 ]
日本ってオープンソースなんかへの貢献度すくないからね
日本はテイク、テイク、そして、ちょっとだけギブって感じだし

675 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 02:04:54.43 ]
先進国の体でいながら、いろんな意味でショボイ日本
って言うかアジア圏全般にプンソへの貢献ショボイんかな

676 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 08:14:34.08 ]
>>675
経営者がしょぼい

677 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 13:16:12.40 ]
日本語で情報発信してもきちんと受け取れない無学な夷狄が悪い

678 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 15:17:29.53 ]
バカは閉じこもってネトウヨでもやってればいいんじゃないかなw

679 名前:デフォルトの名無しさん mailto:sage [2014/02/20(木) 21:20:51.83 ]
>>675
日本は底辺職業のドカタ
欧米はエンジニア
ドカタじゃ貢献できないわな
ついでに社長に必要なのは人身売買のスキル

680 名前:片山博文MZ無能 ◆T6xkBnTXz7B0 mailto:sage [2014/03/03(月) 13:54:14.34 ]
clang++が使えねー。ビルドしたのを実行すると異常終了する。
なんでだろ。。
clang version 3.4 (198054)
Target: i686-pc-mingw32
Thread model: posix



681 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 13:56:26.09 ]
windowsでclangは使い物にならない
clang4.0くらいまで待て

682 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 14:12:58.45 ]
clang-clでもつかってみー。

683 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 21:54:08.21 ]
>>680
いまやデファクトスタンダードのClangが使えないって糞環境だな

684 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 14:33:59.55 ]
Linus Torvaldsが乗り換えたらデファクトスタンダードと認めよう

685 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 14:59:05.53 ]
誰?

686 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 17:13:02.02 ]
windowsが落ち目?

687 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 11:55:30.63 ]
まだ残ってたんですか?
皆さん移行しましたよ。

688 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 01:40:27.48 ID:4zZOK386]
ねーよ

689 名前:デフォルトの名無しさん [2014/05/02(金) 21:36:20.13 ID:IMg3w3Zx]
「C++フロントエンドとしてClangを使ってLLVM中間コード(IR)を生成したのち、
プロプライエタリなIntel製のコンパイラでその中間コードをネイティブコードにコンパイルする」

IntelがClangベースのC++コンパイラを開発 | スラッシュドット・ジャパン デベロッパー
developers.slashdot.jp/story/14/05/02/0425216/
2014年05月02日 16時03分

690 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 23:13:38.78 ID:nCnB44yY]
>>689
これすごいじゃん。
フロントエンドがなんだろうと最終的にIntelコンパイラで最速コード吐けるじゃん。



691 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 10:20:02.16 ID:dvCRlMvr]
# なんか文章変。日本語難しい...

わろた

692 名前:デフォルトの名無しさん [2014/05/10(土) 06:54:24.17 ID:TcVDiAVw]
次期LLVM 3.5新機能発表 - Linux/FreeBSD Sparc64セルフホスト成功
news.mynavi.jp/news/2014/05/09/035/

693 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 16:33:17.06 ID:ALLeavsJ]
20年くらい前のJavaみたいな、
10年くらい前の.NETみたいなことじゃん結局

694 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 00:28:30.05 ID:HpA7Xj/Q]
>>693
どゆこと?

695 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 01:16:52.69 ID:b0AYvWRj]
このスレにSparc64向けのソフト開発している奴いる?

696 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 01:23:51.17 ID:4i0nWw5y]
sparc v9 なら使っているけど?

697 名前:デフォルトの名無しさん [2014/05/11(日) 02:21:45.17 ID:pXskIuQ6]
気持ちは、いつもsparcしてる

698 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 06:29:02.27 ID:hO9vAyKo]
良く落ちるSparc

699 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 09:09:05.84 ID:LBkmCE+C]
その洗剤を買って、箱をサーバ室に置いてあるとかいうネタは「root訪問記」にあったなw

700 名前:700 [2014/05/11(日) 21:47:02.54 ID:E8GL8yG6]
700



701 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 22:05:06.68 ID:OFkZfhFe]
>>693
今度はマルチランゲージでネーティブ吐けるよ。

702 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 12:54:09.69 ID:DxNcY88h]
おっさんだらけやな……でも、SPARCはもう触ってないな……端末はあっても火が入っていない……

703 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 13:29:24.59 ID:3eCCNGKQ]
若い子はこんな地味な世界こないでしょ

704 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 17:57:29.17 ID:1n+tRYdR]
>>702
SPARCとかR3000が主役頃のRISC Workstationの力がGL付きで手のひらに乗る時代とか想像もできんかった

705 名前:デフォルトの名無しさん [2014/05/14(水) 04:21:36.89 ID:x4ZyOVaS]
LLVM/ClangはLinuxカーネルにGCC拡張多すぎて完全にコンパイル出来てないんだっけ?

706 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 04:36:30.57 ID:c0fceYMa]
GCCに依存してますね、linux kernel
同じ処理に置き換えればいいのでしょうが、clangはarch依存の。。。

707 名前:デフォルトの名無しさん [2014/05/14(水) 06:08:37.16 ID:x4ZyOVaS]
LinuxがGPLライセンスを貫くのはいいが、GCC依存は解消した方がいいな。
GCCの仕様・不具合にLinux Lernelが左右されるなんて事が起こり得る。

708 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 06:43:12.52 ID:c0fceYMa]
clangがgcc依存の部分をなんとかするほうがよくね

709 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 11:02:15.09 ID:U2Yf5tsX]
ラッパーが頑張って何とかなるならとりあえずはいいかもしれんが、気持ち悪い
FreeBSDが実現できてるのにLinuxができてないのは面倒臭いからなんだろうなぁ

710 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 11:27:39.70 ID:ye5KrUMR]
>>709
developerworksの記事に何をしてるか書いてあるから読んでみた。
ttp://www.ibm.com/developerworks/jp/linux/library/l-gcc-hacks/

これは手を付けるのイヤかも



711 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 12:07:23.17 ID:EMue53CW]
最近こんなニュースを見たが
Linux 3.15 Can Almost Be Compiled Under LLVM's Clang
ttp://www.phoronix.com/scan.php?page=news_item&px=MTY2MjY

712 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 12:22:28.27 ID:z8cZm/fT]
Can Almost

713 名前:デフォルトの名無しさん [2014/05/16(金) 23:34:14.69 ID:/Y3WeiIR]
news.mynavi.jp/news/2014/05/15/252/
WebKit開発チームは5月13日(米国時間)、「[LLVMdev] WebKit + LLVM」において
WebKitのJavaScript処理系に新しくFTL JIT(Fourth Tier LLVM Just-In-Time Compier;
第4段階目のJITコンパイラ)と呼ばれる高速化機能をデフォルトで有効化したと伝えた。
次にリリースされるMac OS XやiOSのSafariから有効になる見通しで、
JavaScriptで開発されたWebアプリケーションの実行速度がさらに高速化するものとみられる。

714 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 00:27:52.14 ID:nH18P7Nh]
chromeがforkした後でLLVM採用か
どうなるのかwktk

webkitのes6対応が出遅れてるのが気になるけど

715 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 00:51:37.60 ID:jvyFQNXj]
almostって99%ぐらいは出来るってことだよな
でも1%が何万行のソースになるんだろうな

716 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 00:59:54.54 ID:YyEzaSn4]
瑣末な部分を除いてというポジティブな意味なのか
これ以上はもう駄目というネガティブな意味なのか

717 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 03:11:41.54 ID:7sL4YsuG]
JavaとLLVMはあまり組み合わせ的に早くならなかったみたいだけど、Javascriptだとどうなんだろうね?

718 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 13:30:03.63 ID:BMv+P6U/]
量産型VMが真っ赤に塗られたVMに勝てるはずがない

719 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 14:19:07.67 ID:PkCdibOK]
プログラムで真っ赤って言うと、エラーやバグが連想されるんだが。

720 名前:デフォルトの名無しさん [2014/05/26(月) 01:29:36.49 ID:zggjVIna]
WebKitのJITについては、発表してる記事自体が、図入りで非常に詳しい。
https://www.webkit.org/blog/3362/introducing-the-webkit-ftl-jit/



721 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 01:31:26.30 ID:zggjVIna]
なので、図だけでも眺めると楽しい。

722 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 01:36:17.71 ID:zggjVIna]
>>714
Chromeはフォークする前から、というか初めからv8使ってたはずだから、WebKitのjscoreについてはchroniumチームはもともと弄ってないはず。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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