В Haskell привязки LLVM, я пытаюсь определить функцию с переменным числом аргументов (на самом деле я имею в виду постоянное число, которое не известно во время компиляции). Я нашел этот вопрос, и я пытаюсь выполнить ответ.
Я не хочу полностью отказываться от использования FFI для генерации LLVM, я хочу использовать DSL столько, сколько мог, и использовать FFI только для того, чтобы делать то, что я не могу сделать через DSL.
Мне удалось определить тип через functionType, я все еще не могу добавить функцию в модуль, созданный при вызове defineModule
. Я также думаю, что следующим шагом является добавление базовых блоков в функцию через FFI.appendBasicBlock
, что, по моему мнению, легко, но как я могу получить аргументы через FFI.getParam
внутри блока do в монаде CodeGenFunction
.