LLVM started life as the "Low-Level Virtual Machine" but its contributors soon enough realized that the work they were doing was much more useful and feasible as the basis for a compiler. The LLVM moniker at this point is like a vestigial appendage -- its still there, but contributes in no useful way to its modern form. It is no longer a VM in any way, shape, or form.
Furthermore, I would say that your goals are misguided and your presumed implementation thus misinformed. One does not script in anything other than a scripting language -- there are languages that blur the line to be sure, but for the most part anything you would care to 'script' in the proper sense is best done using a language designed to support those use-cases, rather than by a language that is general enough to be designed first as a stand-along programming language. And likewise, anything you would care to do that requires real performance should be written in a 'real' programming language and linked into your binary somehow, perhaps through a plugin interface. Anyways, the point is that you would no sooner write your cut-scenes in C++ than you would write your low-level geometry management in Lua.
Scripts control high-level game behaviors, configurations, macro-bindings, and similar things. They do not usually do those things by implementing them directly in the scripting language, but by leveraging an API exposed by the host program and well-defined in its capabilities. To give scripts the kind of low-level, unfettered access to program execution that supporting any old language would require would be a massive security hole. If you accept that scripts must work through a well-defined API, then the low-level idea of a language melts away, and you are really talking about 'binding' that API to some chosen scripting language. This is one of the reasons that Lua is so incredibly popular -- it has powerful and easy-to-use binding libraries.