SuccessChanges

Summary

  1. [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
  2. 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.
  3. [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. """"
Revision 310818 by ibiryukov:
[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
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cppclang-tools-extra.src/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.hclang-tools-extra.src/clangd/ClangdServer.h
The file was modified/clang-tools-extra/trunk/clangd/ClangdUnit.cppclang-tools-extra.src/clangd/ClangdUnit.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdUnit.hclang-tools-extra.src/clangd/ClangdUnit.h
Revision 310817 by hahnfeld:
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.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChain.cppclang.src/lib/Driver/ToolChain.cpp
The file was modified/cfe/trunk/test/Driver/openmp-offload.cclang.src/test/Driver/openmp-offload.c
Revision 310816 by chandlerc:
[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 TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cppllvm.src/lib/Analysis/ValueTracking.cpp
The file was removed/llvm/trunk/test/Analysis/ValueTracking/non-negative-phi-bits.llllvm.src/test/Analysis/ValueTracking/non-negative-phi-bits.ll