答案 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提供三个功能:
2011年12月2日,Evan Cheng在邮件列表com.googlegroups.llvm-dev中发表了这些函数允许目标打包器向现有数据包添加指令并检查是否可以将指令添加到数据包。有关详细信息,请参阅
llvm/CodeGen/DFAPacketizer.h
。
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