Do you know how strong VLIW architectures (or EPIC, like Itanium) support exists in LLVM compiler infrastructure?
Are there good documents/slides materials on this?
There is no good VLIW support in the base LLVM at the moment. / 2010-11
Some useful posts: http://old.nabble.com/VLIW-Scheduling-td857833.html
http://old.nabble.com/vliw-compatability-td27935919.html
UPDATE / 2012-01
LLVM added (seems after 3.0 release; by Anshuman Dasgupta) initial support of an "VLIW packetizer" aka DFApacketizer to target-independent codegenerator support infrastructure: http://llvm.org/docs/CodeGenerator.html#vliw_packetizer
To generate tables for a VLIW target, add TargetGenDFAPacketizer.inc as a target to the Makefile in the target directory. The exported API provides three functions:
These functions allow a target packetizer to add an instruction to an existing packet and to check whether an instruction can be added to a packet. See
llvm/CodeGen/DFAPacketizer.h
for more information.
Machine Instruction Bundle in LLVM thread by Evan Cheng in mailing list com.googlegroups.llvm-dev from dec 2 2011, describing basic LLVM VLIW (Bundle) support. They are planned to be in LLVM 3.1, and are documented here.
Also, in 3.1 "new TableGen infrastructure to support bundling for Very Long Instruction Word (VLIW) architectures." is added.
There are some VLIW compilers based on LLVM today; but target-independent (generic) VLIW support is in the very beginning of its long path.
UPDATE 2012/12
There are some slides from Quic: http://llvm.org/devmtg/2012-11/Larin-Trick-Scheduling.pdf
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With