Как разобрать LLVM IR в Python
Есть ли способ проанализировать LLVM IR в Python и получить базовую информацию о типе? Например, я хотел бы знать тип, который имеет каждый аргумент функции.
llvmlite имеет базовую функциональность для разбора LLVM IR и байт-кода . Однако, насколько я могу судить, он не может предоставить информацию о типе: результирующий Type имеет только несколько основных методов и не реализует LLVM API , чтобы, например, сказать мне, если
isIntegerTy
или же
getIntegerBitWidth()
. Таким образом, llvmlite может сообщить мне только количество аргументов, а не логических, целых или с плавающей запятой. У llvmpy еще меньше.
Есть ли API Python, который может сообщить мне тип LLVM? Если нет, есть ли простой способ вызвать функции C для этого? Если нет, как я могу получить эту информацию от Python?