2010-11-12 95 views

回答

4

有一個在目前的基礎LLVM沒有很好的VLIW支持。/2010-11

一些有用的帖子: http://old.nabble.com/VLIW-Scheduling-td857833.html

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

UPDATE/2012-01

LLVM加入(似乎after 3.0 release;可以通過Anshuman Dasgupta)初始支持一個 「VLIW打包器」 又名的DFApacketizer目標無關的codegenerator支持基礎設施: http://llvm.org/docs/CodeGenerator.html#vliw_packetizer

要生成一個VLIW目標表,在目標目錄添加目標 GenDFAPacketizer.inc作爲目標的生成文件。導出的API提供三個功能:

  • DFAPacketizer :: clearResources(),
  • DFAPacketizer :: reserveResources(MachineInstr * MI)和
  • DFAPacketizer :: canReserveResources(MachineInstr * MI)。

這些功能允許一個目標分組化到的指令添加到現有的數據包,並檢查指令是否可以被添加到分組。有關更多信息,請參見llvm/CodeGen/DFAPacketizer.h

Machine Instruction Bundle in LLVM線程埃文程在郵件列表com.googlegroups.llvm-dev的,從2011年12月2日,描述基本LLVM VLIW(束)的支持。他們是planned在LLVM 3.1,並且是documented here

此外,在3.1「新TableGen基礎設施,以支持捆綁的超長指令字(VLIW)架構。」被添加。

目前有一些基於LLVM的VLIW編譯器;但與目標無關的(通用)VLIW支持正處於漫長髮展的一個開始階段。

UPDATE十二分之二千零一十二

有一些幻燈片從高通創新中心:http://llvm.org/devmtg/2012-11/Larin-Trick-Scheduling.pdf

+0

有在LLVM的Triple.h列出了一些VLIW目標:http://llvm.org/docs/doxygen/html/Triple_8h_source .html ... – osgx 2017-06-11 00:30:42