Skip to content

Draft: NCG: AArch64 - Add flag that causes GHC to assume some code isn't within 128MB of each other.

Andreas Klebinger requested to merge wip/andreask/arm_mem_model into master
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

Merge request reports