HomePhabricator

Don't instantiate a full host toolchain in ASTMatchersTest.

Authored by jlebar on Jun 30 2016, 11:12 AM.

Description

Don't instantiate a full host toolchain in ASTMatchersTest.

Summary:
This test was stat()'ing large swaths of /usr/lib hundreds of times, as
every invocation of matchesConditionally*() created a new Linux
toolchain.

In addition to being slow, perf indicated this was causing substantial
contention in the kernel.

Something is...interesting in the kernel, as without this patch I
sometimes see ~11m spent in the kernel, and sometimes ~5m. This
corresponds to bimodal ninja check-clang times of ~30s and ~20s.

It's not clear to me exactly what causes the bimodality. In any case,
this change makes this test run in 2.5s, down from 17s, and it seems to
cause us to get the 20s ninja check-clang time unconditionally.

Reviewers: chandlerc

Subscribers: cfe-commits, klimek

Differential Revision: http://reviews.llvm.org/D21810

llvm-svn: 274257

Details

Committed
jlebarJun 30 2016, 11:12 AM
Differential Revision
D21810: Don't instantiate a full host toolchain in ASTMatchersTest.
Parents
rG6e181cf34182: Improve ADB utilization within Android platform.
Branches
Unknown
Tags
Unknown