code to programmatically read LLVM header files. Additional functionality for querying certain instruction types, e.g. BranchInst