This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Deprecate -frepo option.
- From: Nathan Sidwell <nathan at acm dot org>
- To: Richard Biener <richard dot guenther at gmail dot com>, Martin Liška <mliska at suse dot cz>
- Cc: Jakub Jelinek <jakub at redhat dot com>, Jonathan Wakely <jwakely dot gcc at gmail dot com>, Iain Sandoe <idsandoe at googlemail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, David Edelsohn <dje dot gcc at gmail dot com>, Jan Hubicka <hubicka at ucw dot cz>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Jason Merrill <jason at redhat dot com>
- Date: Tue, 9 Jul 2019 07:41:43 -0400
- Subject: Re: [PATCH] Deprecate -frepo option.
- References: <ac43bd46-9251-c360-b92c-52831886fc4a@suse.cz> <BC1522A8-E989-448F-BB2D-7552F1111F1D@gmail.com> <884b9feb-3e71-db00-8c72-8e096bf75c1e@suse.cz> <CAH6eHdS-oVx-pSwsFwsnsH02biaLPyrhzv-8V23JtpfXa1=WBA@mail.gmail.com> <B2D95072-A88E-4BAA-9F33-E46685EDFE9A@googlemail.com> <b8d94fbd-dc73-ad66-17ca-ce34238581e3@suse.cz> <CAH6eHdTPwE+6xv7n6HMsCmH-Ei=zTLN+vmAB-51=CzytmjEJFQ@mail.gmail.com> <69a11998-93c1-d61d-ba31-ac93bcbb353a@suse.cz> <20190621115838.GX815@tucnak> <79fcb5a4-0eba-d39f-e7ca-389f371cd48c@suse.cz> <20190621141309.GY815@tucnak> <CAFiYyc3mw2hitAyp-Xfucv5sAM6TbmTyHyicGTKWGSi5znPrgA@mail.gmail.com> <140a1eb3-9652-9516-0274-19977fa3021d@suse.cz> <CAFiYyc3h-5GPtA1rNNz1q580s+6EFJ-KyDkZu+UV3XnmDbaF5g@mail.gmail.com>
On 7/9/19 6:39 AM, Richard Biener wrote:
On Mon, Jul 8, 2019 at 2:04 PM Martin Liška <mliska@suse.cz> wrote:
Same happens also for GCC7. It does 17 iteration (#define MAX_ITERATIONS 17) and
apparently 17 is not enough to resolve all symbols. And it's really slow.
Ouch.
hm, 17 is a magic number. in C++98 it was the maximum depth of template
instantiations that implementations needed to support. Portable code
could not expect more. So the worst case -frepo behaviour would be 17
iterations.
That's not true any more, it's been 1024 since C++11.
Has a bug been filed about this frepo problem? If not, it suggest those
using frepo are not compiling modern C++.
That said, I would recommend to remove it :)
In the end it's up to the C++ FE maintainers but the above clearly
doesn't look promising
(not sure if it keeps re-compiling _all_ repo-triggered templates or
just incrementally adds
them to new object files).
I'm not opposed to removing -frepo from GCC 10 but then I would start
noting it is obsolete
on the GCC 9 branch at least.
I concur. frepo's serial reinvocation of the compiler is not compatible
with modern C++ code bases.
nathan
--
Nathan Sidwell