Delving into the LLVM internal design