用于VLIW体系结构的LLVM编译器基础结构

时间:2010-11-12 15:31:43

标签: cross-platform llvm epic vliw

您是否知道LLVM编译器基础结构中存在强大的VLIW体系结构(或EPIC,如Itanium)支持?

这是否有好的文件/幻灯片材料?

1 个答案:

答案 0 :(得分:5)

目前基础LLVM中没有良好的VLIW支持。 / 2010-11

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

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

更新/ 2012-01

LLVM添加(似乎after 3.0 release;由Anshuman Dasgupta)“VLIW打包器”(即DFApacketizer)对目标独立的代码生成器支持基础架构的初始支持: http://llvm.org/docs/CodeGenerator.html#vliw_packetizer

  

要为VLIW目标生成表,请将目标 GenDFAPacketizer.inc作为目标添加到目标目录中的Makefile。导出的API提供三个功能:

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

这些函数允许目标打包器向现有数据包添加指令并检查是否可以将指令添加到数据包。有关详细信息,请参阅llvm/CodeGen/DFAPacketizer.h

2011年12月2日,Evan Cheng在邮件列表com.googlegroups.llvm-dev中发表了

Machine Instruction Bundle in LLVM帖子,描述了基本的LLVM VLIW(Bundle)支持。它们是planned在LLVM 3.1中,并且是documented here

此外,在3.1“新的TableGen基础设施中,支持超长指令字(VLIW)架构的捆绑。”已添加。

今天有一些基于LLVM的VLIW编译器;但目标无关(通用)VLIW支持正处于其漫长道路的最开始阶段。

更新2012/12

Quic有一些幻灯片:http://llvm.org/devmtg/2012-11/Larin-Trick-Scheduling.pdf