What are the different properties( well formedness of the intermediate code,
or other),if any that are verified by the verification phase in the LLVM.

There are a whole bunch of them. It includes things like making sure
dominance properties are respected, to ensuring that getelementptr
indices make sense, to verifying that you pass the right typed arguments
to call instructions. For a full list see llvm/lib/VMCore/Verifier. If
you have any specific questions, please ask :slight_smile: