llvmをいじる

当方mac使いですが、
ふとアセンブリを実行しようと思って()

gcc -Sでhoge.sを出力し 
as -o hoge.o hoge.s

とやりましたら、Unknown pseudo-opというエラーが。


そういえば今ってgccじゃなくてclangのなんかよくわからないやつがgccとしてエイリアスされてるんだっけ、と思ったので

他のでやろう!と思い


brew install llvm

でllvmをインストールして、そのコマンド群でいじってみました。

中を見てみるとこんな感じ。




objdumpも入ってる!(そりゃそうですね)


llvm-gcc -> hoge.llファイル出力
llvm-as hoge.ll -> hoge.bcファイル出力
lli hoge.bc Just in timeコンパイラで実行できる
llc hoge.bc ネイティブなコードに変換できる (hoge.s)

hoge.sを作ってしまえばgccでコンパイルできます。


うーん、大体わかりましたがllファイルはgccだと何に対応するのかな。

追記:
もしかしたらRTLとかの中間言語に相当するのかもしれない。
真偽は定かではないけれども。

コメント

このブログの人気の投稿

再現性なんてないさ(?)

旧姓を失った研究者が海外でも活躍するためには

WLSのssh