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

osg*_*sgx 9 cross-platform llvm epic vliw

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

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

osg*_*sgx 5

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

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

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

更新/ 2012-01

LLVM添加(似乎在3.0版本之后 ;由Anshuman Dasgupta提供)"VLIW打包器"(即DFApacketizer)对目标独立的代码生成器支持基础架构的初始支持:http://llvm.org/docs/CodeGenerator.html#vliw_packetizer

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

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

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

LLVM线程中的机器指令包由Evan Cheng在2011年12月2日的邮件列表com.googlegroups.llvm-dev中描述,描述了基本的LLVM VLIW(Bundle)支持.它们计划在LLVM 3.1中,并在此处记录.

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

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

更新2012/12

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