This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/63304] Aarch64 pc-relative load offset out of range
- From: "david.abdurachmanov at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 19 Jul 2015 11:42:46 +0000
- Subject: [Bug target/63304] Aarch64 pc-relative load offset out of range
- Auto-submitted: auto-generated
- References: <bug-63304-4 at http dot gcc dot gnu dot org/bugzilla/>
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.