This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: WPA stream_out form & memory consumption

On Tue, Mar 18, 2014 at 4:13 PM, Richard Biener
<> wrote:
> On Tue, Mar 18, 2014 at 4:09 PM, Martin LiÅka <> wrote:
>> Hello,
>>    I've been compiling Chromium with LTO and I noticed that WPA stream_out
>> forks and do parallel:
>> I am unable to fit in 16GB memory: ld uses about 8GB and lto1 about 6GB.
>> When WPA start to fork, memory consumption increases so that lto1 is killed.
>> I would appreciate an --param option to disable this WPA fork. The number of
>> forks is taken from build system (-flto=9) which is fine for ltrans phase,
>> because LD releases aforementioned 8GB.
>> What do you think about that?
> Hmm, what does cause the memory increase?  Are you eventually
> doing garbage collection after the forks in any of the processes?
> (just add a global flag may_not_gc_collect and set it to true before
> the first fork and assert in ggc_collect () that this flag isn't set)

We do.  At least here:

  lto_wpa_write_files ();
  if (!quiet_flag)
    fprintf (stderr, "\n");

  timevar_stop (TV_PHASE_STREAM_OUT);

  ggc_collect ();
  if (post_ipa_mem_report)
      fprintf (stderr, "Memory consumption after IPA\n");
      dump_memory_report (false);

try returning early before that ggc_collect () if none of the reports are
requested or move the ggc_collect () before lto_wpa_write_files
(which hopefully doesn't produce any gc garbage).


> Richard.
>> Thanks,
>> Martin

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]