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とかの中間言語に相当するのかもしれない。 真偽は定かではないけれども。