проверить соответствие LLVM IR - PullRequest
0 голосов
/ 10 апреля 2020

Мы можем использовать LLVMVerifyModule для проверки согласованности модулей внутри кода. Но представьте, что мы создали файл LLVM IR вручную. Этот файл может быть синтаксически правильным, но я хочу запустить что-нибудь для его очистки.

Рассмотрим следующий модуль:

; ModuleID = 'main'
source_filename = "main"

define void @gl.main() {
entry:
  ret void
  ret void
}

Я полагаю, что это неправильно, поскольку он содержит два возврата в одном блоке. Я пробежал llvm-as, но все прошло. Я правильно понимаю? Какую команду вы запускаете для проверки рукописного исходного файла LLVM?


update:

opt не обрабатывает sh, а вместо этого выводит этот файл:

; ModuleID = 'try.bc.2'
source_filename = "main"

define void @gl.main() {
entry:
  ret void

0:                                                ; No predecessors!
  ret void
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...