Инфраструктура компилятора LLVM для архитектур VLIW

Знаете ли вы, как сильная поддержка архитектур VLIW (или EPIC, например Itanium) существует в инфраструктуре компилятора LLVM?

Есть хорошие документы / материалы слайдов по этому вопросу?

1 ответ

На данный момент в базовой LLVM нет хорошей поддержки VLIW. / 2010-11

Несколько полезных постов: http://old.nabble.com/VLIW-Scheduling-td857833.html

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

ОБНОВЛЕНИЕ / 2012-01

LLVM добавил (кажется, после выпуска 3.0; Аншуман Дасгупта) начальную поддержку "упаковщика VLIW", также называемого DFApacketizer, в инфраструктуру поддержки кодегенератора, независимую от цели: http://llvm.org/docs/CodeGenerator.html

Чтобы сгенерировать таблицы для цели VLIW, добавьте Target GenDFAPacketizer.inc в качестве цели в Makefile в целевом каталоге. Экспортированный API предоставляет три функции:

  • DFAPacketizer:: clearResources (),
  • DFAPacketizer:: ReserveResources(MachineInstr *MI) и
  • DFAPacketizer::canReserveResources(MachineInstr *MI).

Эти функции позволяют целевому упаковщику добавить инструкцию к существующему пакету и проверить, может ли инструкция быть добавлена ​​к пакету. Увидеть llvm/CodeGen/DFAPacketizer.hдля дополнительной информации.

Пакет машинных инструкций в ветке LLVM Эвана Ченга в списке рассылки com.googlegroups.llvm-dev от 2 декабря 2011 года, описывающий базовую поддержку LLVM VLIW (Bundle). Они запланированы в LLVM 3.1 и документированы здесь.

Кроме того, в 3.1 "новая инфраструктура TableGen для поддержки связывания для очень длинных инструкций Word (VLIW)". добавлен.

На сегодняшний день существует несколько компиляторов VLIW, основанных на LLVM; но независимая от цели (общая) поддержка VLIW находится в самом начале своего длинного пути.

ОБНОВЛЕНИЕ 2012/12

Есть несколько слайдов из Quic: http://llvm.org/devmtg/2012-11/Larin-Trick-Scheduling.pdf

Другие вопросы по тегам