10

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?

osgx
  • 80,853
  • 42
  • 303
  • 470

1 Answers1

5

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:

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

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

osgx
  • 80,853
  • 42
  • 303
  • 470
  • There are some VLIW targets listed in LLVM's Triple.h: http://llvm.org/docs/doxygen/html/Triple_8h_source.html ... – osgx Jun 11 '17 at 00:30