2012-12-06 9 views
5

中間表現(IR)コードを変更するLLVMパスを作成しました。移植性を高めるために、私はgccコンパイラでも動作させたいと思っています。そこで、gccの中間表現(IR)をLLVM IRに変換できるツールがあるかどうか疑問に思っていました。GCC IRをLLVMに変換するIR

+0

+1は、おそらくLLVM APIが引き起こした痛みを補うためのものです。 –

答えて

5

おそらくdragonegg(これはGCCフロントエンドを使ってLLVM IRを構築します)が必要です。

そして、GCCの内部表現で作業したい場合は、MELT(GCCを拡張するための高水準ドメイン固有言語)がおそらく適切なツールです。

+0

お寄せいただきありがとうございます。しかし、GCC IRをLLVM IRに変換し、GCC IRに戻す方法もありますか?だから私はフロントエンドとバックエンドのどちらかを変更する必要はありません。 – pythonic

+0

私はLLVM IRとGCC IRが同形であるとは確信していません(そして、彼らはそうではないと確信しています - 悪は常に細部にあります)。しかし、正確に何を達成したいのですか、なぜあなたは尋ねますか?なぜGCCとLLVMの間で前後に行くのか? –

+0

GCC IRをLLVM IRに変換し、パスを適用してIRを変更し、結果のLLVM IRをGCC IRに変換して、gccバックエンドをそこから再開できるようにしたいと考えています。私はコンパイラとしてgccを持っているプラ​​ットフォームで作業しているので、そこにはLLVMを持つことはできません。 – pythonic

2

おそらくmuch gcc IRで動作するコードの別のバージョンを書くのは簡単でしょう。あなたがしたいことはおそらく不可能であり、可能であれば、おそらく非常に難しいでしょう。 (最初の場所にLLVMパスを書くよりも)

+1

私は間違いなく同意します。 GCC IRからLLVM IRへのやりとりは意味がありません! (もしあなたがそれをしたら、それは悪夢になるだろう)。 –

関連する問題