Expand `no_builtins` documentation
Should there be more documentation explaining what the no_builtins attribute does?
I gather it disables LLVM builtin functions, but it's not clear to me what it uses instead. Does it use libc? Does it fail to compile?
I suspect it's not worth documenting the list of builtins, but maybe some examples would be helpful. Perhaps along with some indication why it would be used?
When enabled, it also prevents the crate from participating in LTO.
Some of this seems like implementation details, so I'm not sure what should be documented. I think optimization or backend codegen details should probably be kept in The rustc Book, so maybe it could be documented there, and just have a link to it from the reference?
Dumping: https://github.com/rust-lang/rust/search?q=no_builtins&unscoped_q=no_builtins
Copying some notes from https://github.com/rust-lang/reference/pull/1679.
[!NOTE] Such library functions may include, but are not limited to, C routines such as
memcpyormemset.
[!WARNING] A crate using
no_builtinsdoes not guarantee that the crate will be free from calls to such functions, even if it does not call the routines explicit. For example, the standard library implementation may still call such functions.