This prevents the outlined functions from pulling in a lot of unnecessary code
in our downstream libraries/linker. Which stops outlining making codesize
worse in c++ code with no-exceptions.
It appears that we can outline from functions that throw, so I've made this
only apply if all the parent functions are nounwind.