A pretty printing library inspired by the llvm binding.
A pretty printing library that was inspired by the LLVM binding by Lennart Augustsson. The library provides a monadic interface to a pretty printer, that allows functions to be defined and called, generating the corresponding LLVM assembly when run.
llvm-pretty
A pretty printing library that was inspired by the LLVM binding by Lennart Augustsson. The library provides a monadic interface to a pretty printer, that allows functions to be defined and called, generating the corresponding LLVM assembly when run.
LLVM language feature support
Currently, llvm-pretty
supports LLVM versions up through 17. As a result of the broad version coverage, the llvm-pretty
AST is a superset of all versions of the LLVM AST. This means that the manner in which certain information is presented in the llvm-pretty
AST (e.g., during pretty printing) will be different depending on the LLVM version used to originate the information. Conversely, it is possible to construct an llvm-pretty
AST that cannot be represented in a specific (or any) LLVM version.
llvm-pretty
strives to support a reasonable variety of LLVM language features, but there are places where our coverage of the LLVM language is incomplete. If you need a LLVM feature that is not currently supported by llvm-pretty
, please file an issue.
llvm-pretty
versus llvm-pretty-bc-parser
llvm-pretty
supports almost everything that one would want to do with LLVM ASTs. One notable exception is parsing: llvm-pretty
deliberately does not support parsing an LLVM module AST from a bitcode file. This functionality is factored out into a separate llvm-pretty-bc-parser
library. llvm-pretty-bc-parser
generally tries to stay in sync with all of the LLVM language features that llvm-pretty
supports, but it may be the case that some valid llvm-pretty
ASTs cannot be parsed by llvm-pretty-bc-parser
. If you encounter an occurrence of this issue, please file an issue at the llvm-pretty-bc-parser
issue tracker.