The safe mode is in-between the hardened and the debug modes, extending the checks contained in the hardened mode with certain checks that are relatively cheap and prevent common sources of errors but aren't security-critical. Thus, the safe mode trades off some performance for a wider set of checks, but unlike the debug mode, it can still be used in production. Differential Revision: https://reviews.llvm.org/D158823