Fixed small issue with macros
Started refactoring macros
Cache llvm types per llvm module