These commits improve support for target and non-llvm intrinsics.
- Provide a way to declare intrinsics not prefixed with llvm..
- Expose the intrinsic name lookup code so it can be used by intrinsics not starting with llvm..
Can you explain why this is necessary?
"llvm." is the only reserved prefix for global identifiers; removing that assumption opens the door to problems we could easily avoid (for instance, what happens when I use IR that has functions named 'X.foo' ? Are those doomed to be forbidden from the 'X' backend?)