Thank you, fix in r274269.
On Thu, Jun 30, 2016 at 12:57 PM, Yaron Keren <yaron.ke...@gmail.com> wrote: > Seems this commit broke a builder, > http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6 > > http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/26133 > http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/26134 > > ******************** TEST 'Clang-Unit :: > ASTMatchers/ASTMatchersTests/DeclarationMatcher.MatchClass' FAILED > ******************** > Note: Google Test filter = DeclarationMatcher.MatchClass > [==========] Running 1 test from 1 test case. > [----------] Global test environment set-up. > [----------] 1 test from DeclarationMatcher > [ RUN ] DeclarationMatcher.MatchClass > /home/bb/ninja-x64-msvc-RA-centos6/llvm-project/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:91: > Failure > Value of: matches("", ClassMatcher) > Actual: false (Could not find match in "") > Expected: true > [ FAILED ] DeclarationMatcher.MatchClass (20 ms) > [----------] 1 test from DeclarationMatcher (20 ms total) > > [----------] Global test environment tear-down > [==========] 1 test from 1 test case ran. (20 ms total) > [ PASSED ] 0 tests. > [ FAILED ] 1 test, listed below: > [ FAILED ] DeclarationMatcher.MatchClass > > 1 FAILED TEST > > ******************** > > > > 2016-06-30 21:12 GMT+03:00 Justin Lebar via cfe-commits > <cfe-commits@lists.llvm.org>: >> >> Author: jlebar >> Date: Thu Jun 30 13:12:25 2016 >> New Revision: 274257 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=274257&view=rev >> Log: >> 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 >> >> Modified: >> cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.h >> >> Modified: cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.h?rev=274257&r1=274256&r2=274257&view=diff >> >> ============================================================================== >> --- cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.h (original) >> +++ cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.h Thu Jun 30 13:12:25 >> 2016 >> @@ -73,12 +73,16 @@ testing::AssertionResult matchesConditio >> return testing::AssertionFailure() << "Could not add dynamic >> matcher"; >> std::unique_ptr<FrontendActionFactory> Factory( >> newFrontendActionFactory(&Finder)); >> - // Some tests use typeof, which is a gnu extension. >> - std::vector<std::string> Args; >> - Args.push_back(CompileArg); >> - // Some tests need rtti/exceptions on >> - Args.push_back("-frtti"); >> - Args.push_back("-fexceptions"); >> + // Some tests need rtti/exceptions on. Use an unknown-unknown triple >> so we >> + // don't instantiate the full system toolchain. On Linux, >> instantiating the >> + // toolchain involves stat'ing large portions of /usr/lib, and this >> slows down >> + // not only this test, but all other tests, via contention in the >> kernel. >> + // >> + // FIXME: This is a hack to work around the fact that there's no way to >> do the >> + // equivalent of runToolOnCodeWithArgs without instantiating a full >> Driver. >> + // We should consider having a function, at least for tests, that >> invokes cc1. >> + std::vector<std::string> Args = {CompileArg, "-frtti", "-fexceptions", >> + "-target", "i386-unknown-unknown"}; >> if (!runToolOnCodeWithArgs( >> Factory->create(), Code, Args, Filename, "clang-tool", >> std::make_shared<PCHContainerOperations>(), >> VirtualMappedFiles)) { >> @@ -180,13 +184,12 @@ testing::AssertionResult matchesConditio >> return testing::AssertionFailure() << "Could not add dynamic >> matcher"; >> std::unique_ptr<FrontendActionFactory> Factory( >> newFrontendActionFactory(&Finder)); >> - // Some tests use typeof, which is a gnu extension. >> - std::vector<std::string> Args; >> - Args.push_back("-xcuda"); >> - Args.push_back("-fno-ms-extensions"); >> - Args.push_back("--cuda-host-only"); >> - Args.push_back("-nocudainc"); >> - Args.push_back(CompileArg); >> + // Some tests use typeof, which is a gnu extension. Using an explicit >> + // unknown-unknown triple is good for a large speedup, because it lets >> us >> + // avoid constructing a full system triple. >> + std::vector<std::string> Args = { >> + "-xcuda", "-fno-ms-extensions", "--cuda-host-only", >> "-nocudainc", >> + "-target", "nvptx64-unknown-unknown", CompileArg}; >> if (!runToolOnCodeWithArgs(Factory->create(), >> CudaHeader + Code, Args)) { >> return testing::AssertionFailure() << "Parsing error in \"" << Code >> << "\""; >> @@ -230,8 +233,11 @@ matchAndVerifyResultConditionally(const >> Finder.addMatcher(AMatcher, &VerifyVerifiedResult); >> std::unique_ptr<FrontendActionFactory> Factory( >> newFrontendActionFactory(&Finder)); >> - // Some tests use typeof, which is a gnu extension. >> - std::vector<std::string> Args(1, "-std=gnu++98"); >> + // Some tests use typeof, which is a gnu extension. Using an explicit >> + // unknown-unknown triple is good for a large speedup, because it lets >> us >> + // avoid constructing a full system triple. >> + std::vector<std::string> Args = {"-std=gnu++98", "-target", >> + "i386-unknown-unknown"}; >> if (!runToolOnCodeWithArgs(Factory->create(), Code, Args)) { >> return testing::AssertionFailure() << "Parsing error in \"" << Code >> << "\""; >> } >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > > _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits