2010-11-12 16 views

risposta

4

Al momento non vi è un buon supporto VLIW nella base LLVM./2010-11

Alcuni post utili: http://old.nabble.com/VLIW-Scheduling-td857833.html

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

UPDATE/2012-01

LLVM aggiunto (sembra after 3.0 release; da Anshuman Dasgupta) sostegno iniziale di un "VLIW packetizer" aka DFApacketizer per l'infrastruttura di supporto per codegeneratore indipendente dall'obiettivo: http://llvm.org/docs/CodeGenerator.html#vliw_packetizer

Per generare tabelle per un target VLIW, aggiungere Target GenDFAPacketizer.inc come destinazione per il Makefile nella directory di destinazione. L'API esportato offre tre funzioni:

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

Queste funzioni permettono un packetizer bersaglio per aggiungere un'istruzione per un pacchetto esistente e per controllare se un'istruzione può essere aggiunto a un pacchetto. Vedere llvm/CodeGen/DFAPacketizer.h per ulteriori informazioni.

Machine Instruction Bundle in LLVM filo da Evan Cheng nella mailing list com.googlegroups.llvm-dev dal 2 dicembre 2011, che descrive il supporto di base LLVM VLIW (bundle). Sono planned in LLVM 3.1 e sono documented here.

Inoltre, nella 3.1 "nuova infrastruttura TableGen per supportare il raggruppamento per le architetture VLIW (Very Long Instruction Word)." è aggiunto.

Ci sono alcuni compilatori VLIW basati su LLVM oggi; ma il supporto VLIW (generico) indipendente dall'obiettivo è all'inizio del suo lungo percorso.

UPDATE 2012/12

Ci sono alcune diapositive da Quic: http://llvm.org/devmtg/2012-11/Larin-Trick-Scheduling.pdf

+0

Ci sono alcuni obiettivi VLIW elencati Triple.h di LLVM: http://llvm.org/docs/doxygen/html/Triple_8h_source .html ... – osgx