This patch adds the a hasRedZone() function to AArch64MachineFunctionInfo.
Right now, to use the MachineOutliner, you have to pass -mno-red-zone to ensure that we never outline anything from a function which uses a red zone. This is kind of clunky, especially considering you have to pass -aarch64-redzone to use a red zone in the first place in AArch64.
This patch removes the -mno-red-zone requirement and teaches the outliner about which functions actually use a red zone. This would also allow for outlining from functions without red zones in the case where -aarch64-redzone is passed.
Since this is available only after PEI, I wonder if it wouldn't be safer to initialize UsesRedZone to !F.hasFnAttribute(Attribute::NoRedZone). That way if the function is called before PEI we use the attribute, and after PEI we overwrite this.