As reported in GCC bug #86069, LLVM currently provokes a bug in GCC where
objects compiled for MIPS with PIC and optimizations where shrink wrapped
functions can attempt to access the global pointer's spill slot before the global
pointer is spilled. This bug is present in GCC since at least 4.9.2, and affects the
AArch64 backend when LLVM is built for a MIPS host.
However, setting CMAKE_C_FLAGS and CMAKE_CXX_FLAGS affects the compiler-rt
tests which rely on the just built clang rather than the host or cross GCC.
Since Clang doesn't support this flag, so the tests spuriously fail.
Unfortunately, not all targets support shrink wrapping in LLVM at this time,
so providing -fshrink-wrap would expose users to any number of wrong-codegen
issues.
For targets that do support shrink wrapping, this option performs as expected.