I'm trying to avoid having to design my own IR for a hobby language that needs
safety guarantees similar to those of Java. Have there been any plans or
attempts to write a safety verifier for llvm object code or define a set of
easily verifiable instructions that can be translated to llvm quickly?
Check out SAFECode: http://safecode.cs.uiuc.edu/
It may not be exactly what you're looking for, but it's the closest to LLVM-with-safety that there is so far.
You can also check out SafeTSA, which has been used in a research
project as a static single assignement Java class file format which
supports the JVM's type safety enforcement. Several papers
are linked from the SafeTSA wikipedia article.