LLVM memory management

C and C++ are type unsafe languages and have manual memory management so my questions are:

  1. How does the LLVM keep itself from being overwritten by a misbehaving program?

  2. does it support multithreading?

  3. does LLVM allow for multitasking or do you just ran one VM per program?

  4. if it does support multitasking how does it keep processes from colliding?

  5. if it does not support multitasking and runs one VM per process then what means are there for communication of processes?

  6. does LLVM support emulated virtual memory?

Thank you.

Despite having 'VM' in its name, LLVM is not a VM.