Changes
Summary
- [clangd] Fixed a data race. Summary: Calling addDocument after removeDocument could have resulted in an invalid program state (AST and Preamble for the valid document could have been incorrectly removed). This commit also includes an improved CppFile::cancelRebuild implementation that allows to cancel reparse without waiting for ongoing rebuild to finish. Reviewers: krasimir, bkramer, klimek Reviewed By: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D36397
- Fix memory leak in ToolChain::TranslateOpenMPTargetArgs rL310433 introduced a code path where DAL is not returned and must be freed. This change allows to run openmp-offload.c when Clang is built with ASan.
- [ValueTracking] Revert r310583 which enabled functionality that still is causing compile time issues. Moreover, the patch *deleted* the flag in addition to changing the default, and links to a code review that doesn't even discuss the flag and just has an update to a Clang test case. I've followed up on the commit thread to ask for numbers on compile time at this point, leaving the flag in place until things stabilize, and pointing at specific code that seems to exhibit excessive compile time with this patch. Original commit message for r310583: """ [ValueTracking] Enabling ValueTracking patch by default (recommit). Part 2. The original patch was an improvement to IR ValueTracking on non-negative integers. It has been checked in to trunk (D18777, r284022). But was disabled by default due to performance regressions. Perf impact has improved. The patch would be enabled by default. """"
Change Type | Path in Repository | Path in Workspace |
---|---|---|
![]() | /clang-tools-extra/trunk/clangd/ClangdServer.cpp | clang-tools-extra.src/clangd/ClangdServer.cpp |
![]() | /clang-tools-extra/trunk/clangd/ClangdServer.h | clang-tools-extra.src/clangd/ClangdServer.h |
![]() | /clang-tools-extra/trunk/clangd/ClangdUnit.cpp | clang-tools-extra.src/clangd/ClangdUnit.cpp |
![]() | /clang-tools-extra/trunk/clangd/ClangdUnit.h | clang-tools-extra.src/clangd/ClangdUnit.h |
Change Type | Path in Repository | Path in Workspace |
![]() | /cfe/trunk/lib/Driver/ToolChain.cpp | clang.src/lib/Driver/ToolChain.cpp |
![]() | /cfe/trunk/test/Driver/openmp-offload.c | clang.src/test/Driver/openmp-offload.c |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/lib/Analysis/ValueTracking.cpp | llvm.src/lib/Analysis/ValueTracking.cpp |
![]() | /llvm/trunk/test/Analysis/ValueTracking/non-negative-phi-bits.ll | llvm.src/test/Analysis/ValueTracking/non-negative-phi-bits.ll |