Chcę znaleźć kilka opcji debugowania dla brzękiem/LLVM, które działają jak GCC -fdump-tree-all-all
-fdump-rtl-all-all
-fdump-ipa-all-all
.Dump IR po każdej optymalizacji LLVM (każdy towarzysza), obie przełęcze LLVM IR i backend debugowania
Zasadniczo chcę mieć zrzuty LLVM IR przed i po każdym przejściu optymalizacji, również może być użyteczne posiadanie wszystkich zrzutów AST z klang i wszystkich faz generowania kodu (fazy backend, Selection DAG, ISEL-SDNode, przydział rejestrów, MCInsts).
Udało mi się znaleźć tylko klangową -ccc-print-phases
, ale wydrukują tylko nazwy faz wysokiego poziomu, np. preprocess-compile-asemble-link; ale nie ma żadnego zrzutu IR.
Ponadto istnieje Life of an instruction in LLVM papier z -cc1-ast-dump
opcja zrzucić ASTs dzyń, ale chcę więcej, zwłaszcza dla Codegen.
Hmm, tam "-print-after-all" - drukuj IR po każdym przejściu; -print-before-all - 'Drukuj IR przed każdym przejściem'' dla faz IR, b jak zdobyć zrzuty z zaplecza? – osgx
Możesz wydrukować informacje debugowania z fazy backendu, np. Obiekt 'CGDebugInfo' od kodegena. – shrm
mishr, nie jest CGDebugInfo z clang IR emiter, nie z backendu llvm? Chcę uzyskać informacje z LLVM backend kodu IR-to-maszyny (codegen) – osgx