This is the mail archive of the
mailing list for the GCC project.
Re: Skipping assembler when producing slim LTO files
- From: Janne Blomqvist <blomqvist dot janne at gmail dot com>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: Steven Bosscher <stevenb dot gcc at gmail dot com>, Jan Hubicka <hubicka at ucw dot cz>, Andi Kleen <andi at firstfloor dot org>, GCC Development <gcc at gcc dot gnu dot org>
- Date: Thu, 25 Sep 2014 08:53:39 +0300
- Subject: Re: Skipping assembler when producing slim LTO files
- Authentication-results: sourceware.org; auth=none
- References: <20140924054651 dot GB5371 at kam dot mff dot cuni dot cz> <878ul96pnx dot fsf at tassilo dot jf dot intel dot com> <CAKOQZ8zCs8ZjGP3JWw6HVNXGS0junJn1BuvnMXmK8Ou8WHEnvg at mail dot gmail dot com> <20140924161906 dot GA26922 at atrey dot karlin dot mff dot cuni dot cz> <20140924163227 dot GB26922 at atrey dot karlin dot mff dot cuni dot cz> <CABu31nO248rEg2xmj1MYvt-p3Y7+EbNu6U-UV6aTeMzxbiZ_Pw at mail dot gmail dot com> <CAKOQZ8ytc5nevvq2AAX4TwztWopenhF5Ah9k_+zubb+-Z1JaYQ at mail dot gmail dot com>
On Thu, Sep 25, 2014 at 12:47 AM, Ian Lance Taylor <firstname.lastname@example.org> wrote:
> Is that true even when TMPDIR is on a ram disk? There's no obvious
> reason that it should be true in a parallel build. Using -pipe
> effectively constrains communication between the compiler and the
> assembler to work in PIPE_BUF blocks. Using TMPDIR introduces no such
> constraints, and in a big program a parallel build should obscure the
> fact that the compiler and assembler are serialized for each
> individual compilation unit.
As an aside, I think what matters is the capacity of the pipe rather
than PIPE_BUF. PIPE_BUF is the largest chunk that can be written
atomically, but since we don't have a case of multiple processes
writing to the same pipe(???), it doesn't matter. On a typical
x86(-64) Linux system, PIPE_BUF is 4k while the capacity is by default
64k (can be increased with fcntl(fd, F_SETPIPE_SZ, ...), perhaps worth
trying to see if it makes any difference?).
Still, it seems to me that making -pipe the default would make sense,
if the tradeoff appears to be a small loss in case when /tmp is a
tmpfs vs. a much larger gain when /tmp is a normal fs.