Just a stupid question. Does GCC have actual support for PCH? I know windows 
can load pre-compiled information from a special binary file. Does GCC support 
that kind of functionality?

Thanks
Ioi

> On Nov 1, 2018, at 5:09 AM, Magnus Ihse Bursie 
> <magnus.ihse.bur...@oracle.com> wrote:
> 
> 
> 
>> On 2018-11-01 12:51, Thomas Stüfe wrote:
>> On Thu, Nov 1, 2018 at 12:05 PM Magnus Ihse Bursie
>> <magnus.ihse.bur...@oracle.com> wrote:
>>> On 2018-11-01 11:54, Aleksey Shipilev wrote:
>>>>> On 11/01/2018 11:43 AM, Magnus Ihse Bursie wrote:
>>>>> But then again, it might just signal that the list of headers included in 
>>>>> the PCH is no longer
>>>>> optimal. If it used to be the case that ~100 header files were so 
>>>>> interlinked, that changing any of
>>>>> them caused recompilation of all files that included it and all the other 
>>>>> 100 header files on the
>>>>> PCH list, then there was a net gain for using PCH and no "punishment".
>>>>> 
>>>>> But nowadays this list might be far too large. Perhaps there's just only 
>>>>> a core set of say 20 header
>>>>> files that are universally (or almost universally) included, and that's 
>>>>> all that should be in the
>>>>> PCH list then. My guess is that, with a proper selection of header files, 
>>>>> PCH will still be a benefit.
>>>> I agree. This smells like inefficient PCH list. We can improve that, but I 
>>>> think that would be a
>>>> lower priority, given the abundance of CPU power we use to compile 
>>>> Hotspot. In my mind, the decisive
>>>> factor for disabling PCH is to keep proper includes at all times, without 
>>>> masking it with PCH. Half
>>>> of the trivial bugs I submit against hotspot are #include differences that 
>>>> show up in CI that builds
>>>> without PCH.
>>>> 
>>>> So this is my ideal world:
>>>>   a) Efficient PCH list enabled by default for development pleasure;
>>>>   b) CIs build without PCH all the time (jdk-submit tier1 included!);
>>>> 
>>>> Since we don't yet have (a), and (b) seems to be tedious, regardless how 
>>>> many times both Red Hat and
>>>> SAP people ask for it, disabling PCH by default feels like a good fallback.
>>> Should just CI builds default to non-PCH, or all builds (that is, should
>>> "configure" default to non-PCH on linux)? Maybe the former is better --
>>> one thing that the test numbers here has not shown is if incremental
>>> recompiles are improved by PCH. My gut feeling is that they really
>>> should -- once you've created your PCH, subsequent recompiles will be
>>> faster.
>> That would only be true as long as you just change cpp files, no? As
>> soon as you touch a header which is included in precompiled.hpp you
>> are worse off than without pch.
>> 
>>> So the developer default should perhaps be to keep PCH, and we
>>> should only configure the CI builds to do without PCH.
>> CI without pch would be better than nothing. But seeing how clunky and
>> slow jdk-submit is (and how often there are problems), I rather fail
>> early in my own build than waiting for jdk-submit to tell me something
>> went wrong (well, that is why I usually build nonpch, like Ioi does).
>> 
>> Just my 5 cent.
> I hear you, loud and clear. :) I've created 
> https://bugs.openjdk.java.net/browse/JDK-8213241 to disable PCH by default, 
> for all builds, on gcc. (I'm interpreting "linux" in this case as "gcc", 
> since this is compiler-dependent, and not OS dependent).
> 
> /Magnus
> 
>> 
>> ..Thomas
>>> /Magnus
>>> 
>>> 
>>>> -Aleksey
>>>> 
> 

Reply via email to