This package implements an LLVM frontend for Crucible. The frontend provides two major things:
- A translation of LLVM IR into the Crucible IR
- Data types supporting that translation
Most clients of the library that just want to analyze LLVM IR (which usually means C and C++) will only need the Lang.Crucible.LLVM
and Lang.Crucible.LLVM.Translation
modules. The core data structure implementing the LLVM memory model (see Lang.Crucible.LLVM.MemModel
) may be of interest to other clients. The memory model is documented in more detail in the docs.