As recently proposed and discussed on LLVM dev: https://groups.google.com/forum/#!topic/llvm-dev/oYcAtJnwALY
Feedback on naming and specification is particularly welcome.
Note: The LangRef change may not build. I'll fix any warnings before submission. I generally don't build docs because it increases build time noticeable and enabling it requires a clean build, so I'll do that once at the end.