2010-11-12 22 views

Respuesta

4

No hay un buen soporte VLIW en la base LLVM en este momento./2010-11

Algunos mensajes útiles: http://old.nabble.com/VLIW-Scheduling-td857833.html

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

ACTUALIZACIÓN/2012-01

LLVM añadió (parece after 3.0 release; por Anshuman Dasgupta) apoyo inicial de un "empaquetador VLIW" aka DFApacketizer a la infraestructura de soporte del generador de códigos independiente del destino: http://llvm.org/docs/CodeGenerator.html#vliw_packetizer

Para generar tablas para un objetivo VLIW, agregue Objetivo GenDFAPacketizer.inc como destino del Makefile en el directorio de destino. La API exportado proporciona tres funciones:

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

Estas funciones permiten un empaquetador de destino para agregar una instrucción para un paquete existente y para comprobar si una instrucción se puede añadir a un paquete. Vea llvm/CodeGen/DFAPacketizer.h para más información.

Machine Instruction Bundle in LLVM hilo por Evan Cheng en lista de correo com.googlegroups.llvm-dev desde diciembre 2 de 2011, que describe soporte básico LLVM VLIW (Bundle). Son planned para estar en LLVM 3.1, y son documented here.

Además, en 3.1 "nueva infraestructura TableGen para admitir agrupamiento para arquitecturas de Word de instrucción muy larga (VLIW)". está agregado.

Actualmente, existen algunos compiladores de VLIW basados ​​en LLVM; pero el soporte VLIW independiente del objetivo (genérico) está en el comienzo de su largo camino.

ACTUALIZACIÓN 2012/12

Hay algunas diapositivas de Quic: http://llvm.org/devmtg/2012-11/Larin-Trick-Scheduling.pdf

+0

Hay algunos objetivos que figuran en VLIW Triple.h de LLVM: http://llvm.org/docs/doxygen/html/Triple_8h_source .html ... – osgx