Инфраструктура компилятора LLVM для архитектур VLIW - PullRequest
9 голосов
/ 12 ноября 2010

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

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

1 Ответ

5 голосов
/ 21 ноября 2010

В базовом 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 ; Anshuman Dasgupta ) Первоначальная поддержка "VLIW packetizer" или DFApacketizer для инфраструктуры поддержки целевого генератора кода: http://llvm.org/docs/CodeGenerator.html#vliw_packetizer

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

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

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

Комплект машинных инструкций в ветке LLVM от Evan Cheng в списке рассылки com.googlegroups.llvm-dev from dec2 2011, описание базовой поддержки LLVM VLIW (Bundle).Они планируются в LLVM 3.1 и здесь задокументированы .

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

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

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

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

...