トップページ > プログラム > 2014年08月22日 > 95GXkqiK

書き込み順位&時間帯一覧

37 位/181 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000002002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【最速へ】LowLevelVirtualMachine【LLVM】

書き込みレス一覧

【最速へ】LowLevelVirtualMachine【LLVM】
838 :デフォルトの名無しさん[sage]:2014/08/22(金) 21:38:55.76 ID:95GXkqiK
CrossBridge(FlassCC)のSDKを試してみてる。
付属のgccでビルド途中に llc.exe の実行をトラップして引数を見てみて
たところ、

コマンド名:/xxx/Crossbrigde_1.0.1/sdk/usr/bin/llc.exe
第1引数: jvm=C:\Windows\system32\java
第2引数: -filetype=obj
第3引数: /xxx/Crossbrigde_1.0.1/cygwin/tmp/ccYoCst5.o
第4引数: -o
第5引数: /xxx/Crossbrigde_1.0.1/cygwin/tmp/ccYoCst5.o
第6引数: -jvmopt
第7引数: -Xmx1500M

となっていて、第3引数と第5引数が同じ。つまり、入力ファイルと出力ファイルの
名称が同じになっている。このこと自体も不思議であったので、この段階で永久停止
させて調査してみると、
ccYoCst5.o の中身は先頭が BC というマジックナンバーで、LLVM bitcode の
*.bcファイルと同じになっていた。ところがCrossBridgeに同梱ではない本家cygwin標準
の llvm-nm で覗いてみると

$ llvm-nm ccYoCst5.o
llvm-nm: ccYoCst5.o: Invalid record.

と表示される。

ccYoCst5.o のファイル名を aaa.bc に変えてみても結果は同じだった。
【最速へ】LowLevelVirtualMachine【LLVM】
839 :デフォルトの名無しさん[sage]:2014/08/22(金) 21:40:50.58 ID:95GXkqiK
そこで、CrossBridge 付属の llvm-nm で試してみると:

$ /xxx/Crossbridge_1.0.1/sdk/usr/bin/llvm-nm.exe ccYoCst5.o
     T main
     U puts

となった。

これは不思議なことで、推定されるのは CrossBridge では、llvm の言語仕様を変えて
しまっているという事。(標準の)LLVM から ActionScript のコードに変えるプロ
グラムがあるなら使おうかと思っていたら、これだと使えない。なぜならもはや正式な
LLVM が使われておらず、使われているのは Adobe 独自の LLVM コードなのだ。
ライセンス上は問題ないんだろうが、してやられた感じがする。
せっかくの共通コード環境だったはずなのに・・・。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。