Normally, the Origin is passed over TLS, which seems like it introduces unnecessary overhead. It's in the (extremely) cold path though, so the only overhead is in code size.
But with eager-checks, calls to __msan_warning functions are extremely common, so this becomes a useful optimization.
This can save ~5% code size.
This is an unconditional improvement, simply apply it in all cases. Keep __msan_warning_noreturn in the runtime library for backwards compatibility, but never issue a call to it in the instrumentation. Update the tests in test/Instrumentation/MemorySanitizer.