This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH][AArch64][GCC 6] PR target/79041: Correct -mpc-relative-literal-loads logic in aarch64_classify_symbol
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: Yvan Roux <yvan dot roux at linaro dot org>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>, James Greenhalgh <James dot Greenhalgh at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, nd <nd at arm dot com>
- Date: Tue, 27 Jun 2017 10:53:40 +0000
- Subject: Re: [PATCH][AArch64][GCC 6] PR target/79041: Correct -mpc-relative-literal-loads logic in aarch64_classify_symbol
- Authentication-results: sourceware.org; auth=none
- Authentication-results: foss.arm.com; dkim=none (message not signed) header.d=none;foss.arm.com; dmarc=none action=none header.from=arm.com;
- Nodisclaimer: True
- References: <58765E2D.email@example.com> <20170113163549.GC39391@arm.com> <587CE7EC.firstname.lastname@example.org>,<CAD57uCcSw6aQecqOK0VT+8=oRBT1Rb-0_1uRD=K1EnuOD_e6cw@mail.gmail.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
> Here is the backport of Wilco's patch (r237607) along with Kyrill's
> one (r244643, which removed the remaining occurences of
> aarch64_nopcrelative_literal_loads). To fix the issue the original
> patch has to be modified, to keep aarch64_pcrelative_literal_loads
> test for large models in aarch64_classify_symbol.
The patch looks good to me, however I can't approve it.
> On trunk and gcc-7-branch the :lo12: relocations are not generated
> because of Wilco's fix for pr78733 (r243456 and 243486), but my
> understanding is that the bug is still present since compiling
> gcc.target/aarch64/pr78733.c with -mcmodel=large brings back the
> :lo12: relocations (I'll submit a patch to add the test back if my
> understanding is correct).
You're right, eventhough -mpc-relative-literal-loads doesn't make much sense
in the large memory model, it seems best to keep the option orthogonal to
enable the workaround. I've prepared a patch to fix this on trunk/GCC7.
It also adds a test which we should add to your changes to GCC6 too.