10

VLIWアーキテクチャ (またはItanium のようなEPIC ) の強力なサポートが LLVM コンパイラ インフラストラクチャに存在することをご存知ですか?

これに関する適切なドキュメント/スライド資料はありますか?

4

1 に答える 1

5

現在、ベースLLVMには適切なVLIWサポートがありません。/ 2010-11

いくつかの有用な投稿:http: //old.nabble.com/VLIW-Scheduling-td857833.html

http://old.nabble.com/vliw-compatability-td27935919.html

更新/2012-01

LLVMは、ターゲットに依存しないコードジェネレーターサポートインフラストラクチャに「VLIWパケタイザー」(別名DFApacketizer)の初期サポートを 追加しました( 3.0リリース以降のようです; Anshuman Dasguptaによる):http: //llvm.org/docs/CodeGenerator.html#vliw_packetizer

VLIWターゲットのテーブルを生成するには、ターゲットとしてTargetGenDFAPacketizer.incをターゲットディレクトリのMakefileに追加します。エクスポートされたAPIは、次の3つの機能を提供します。

  • DFAPacketizer :: clearResources()、
  • DFAPacketizer :: reservedResources(MachineInstr * MI)、および
  • DFAPacketizer :: canReserveResources(MachineInstr * MI)。

これらの関数を使用すると、ターゲットのパケタイザーは既存のパケットに命令を追加し、その命令をパケットに追加できるかどうかを確認できます。詳細については、を参照llvm/CodeGen/DFAPacketizer.hしてください。

2011年12月2日からのメーリングリストcom.googlegroups.llvm-devのEvanChengによるLLVMスレッドのMachineInstructionBundleは、基本的なLLVM VLIW(バンドル)サポートについて説明しています。それらはLLVM3.1に含まれる予定であり、ここに文書化されています

また、3.1では「VeryLong Instruction Word(VLIW)アーキテクチャのバンドルをサポートする新しいTableGenインフラストラクチャ」。が追加されます。

現在、LLVMに基づくVLIWコンパイラがいくつかあります。しかし、ターゲットに依存しない(一般的な)VLIWサポートは、その長い道のりの始まりにあります。

更新2012/12

Quicからいくつかのスライドがあります:http://llvm.org/devmtg/2012-11/Larin-Trick-Scheduling.pdf

于 2010-11-21T01:25:03.513 に答える