https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63304
--- Comment #14 from David Abdurachmanov <david.abdurachmanov at gmail dot com> --- I hit another two cases of this. 1. g2root tool, which converts GEANT geometry to ROOT geometry. It create a single function, which contains lots of descriptions of material, shapes, etc. all describing some 3D objects and physical properties. These can be very huge. Also could think of MILL computing as possible example. They use C++ as they assembler (at least for simulation). Thus you have something like: void somefunc(void) { add(b0, b1); add(b2, b3); ... } IIRC, by compiling it they generate a simulator to run this program on specific CPU. 2. mcfm 6.3 package, to be precise: mcfm-6.3/src/WW/triangle11new.f triangle11new.s: Assembler messages: triangle11new.s:587: Error: pc-relative load offset out of range triangle11new.s:592: Error: pc-relative load offset out of range .. 587 ldr x0, .LC2 588 fmov d0, x2 589 fmov d1, x0 590 fdiv d0, d0, d1 591 fmov x2, d0 592 ldr x0, .LC2 .. 346645 .LC2: 346646 .word 0 346647 .word 1073741824 346648 .align 3 .. Distance between ldr instruction and .LC2 is 346058 assembly lines. Here is the source file: https://github.com/cms-externals/MCFM/blob/master/src/WW/triangle11new.f (just 1355 sloc). It's those huge computations, which are killing it. Similar issue as in OpenLoops package.