Draft: NCG: AArch64 - Add flag that causes GHC to assume some code isn't within 128MB of each other.
NCG: AArch64 - Add -fhuge-code-sections.
When enabled the arm backend will assume jumps to targets outside of the
current module are further than 128MB away.
This will allow for code to work if:
* The current module results in less than 128MB of code.
* The whole program is loaded within a 4GB memory region.
We enable this by default on mac where the lack of split sections can
sometimes cause us to go over this limit - see #24648.
This works around #24648 for now.
As it stands this leads to a ~2% code size increase, and a ~0.6% runtime increase for nofib when enabled.
Edited by Andreas Klebinger