SuccessChanges

Summary

  1. [find_interesting_reviews.py] Add git blame output cache (details)
  2. [lldb][NFC] Simplify ClangExternalASTSourceCallbacks (details)
  3. [OpenCL] Add atomic builtin functions (details)
  4. [lldb][NFC] Remove unused callback functionality from ClangASTContext (details)
  5. [Matrix] Add forward shape propagation and first shape aware lowerings. (details)
  6. [NFC] Move OptionUtils from Basic to Driver (details)
  7. [Matrix] Use fmuladd  for matrix.multiply if allowed. (details)
  8. [lldb/DWARF] Fix hostname-stripping logic (details)
  9. [gn build] Port eca40066ebb (details)
Commit 5bd9eee53d124d00885395f6f2d6a8c64deca188 by kristof.beyls
[find_interesting_reviews.py] Add git blame output cache
The majority of the running time of this script tends to be spent in
running git blame on source files touched by patches under review.
By introducing a git blame output cache, some of the git blame commands
don't have to re-run, and the blame information can be retrieved from a
cache.
I've observed that in a typical run matching patches available for
review with potential reviewers, this speeds up the script's running
time by a factor of about 2.5x.
The file was modifiedllvm/utils/Reviewing/find_interesting_reviews.py
Commit 40bd809b6d5cfe69ffcb567245bc521b971a80eb by Raphael Isemann
[lldb][NFC] Simplify ClangExternalASTSourceCallbacks
This class is only used by the ClangASTContext so we might as well
simplify this whole logic by just passing a ClangASTContext instead of a
list of callbacks and a void* pointer. If we ever need this to support
other classes then we can define some interface that ClangASTContext
implements but for now this isn't needed.
I also removed any code for m_callback_find_by_name as this was always a
nullptr in LLDB and removed all overriden implementations that just
redefined the default no-op implementation that the ExternalASTSource
provides.
Also removed the assert.h workarounds.
The file was modifiedlldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
The file was modifiedlldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h
Commit b714583fd09683458be9eb03a9faef656a8ccf49 by sven.vanhaastregt
[OpenCL] Add atomic builtin functions
Add atomic builtin functions from the OpenCL C specification.
Patch by Pierre Gondois and Sven van Haastregt.
The file was modifiedclang/test/SemaOpenCL/fdeclare-opencl-builtins.cl
The file was modifiedclang/lib/Sema/OpenCLBuiltins.td
Commit 982a9e3d46bbecc9407c9d5df06634f03d21c6cd by Raphael Isemann
[lldb][NFC] Remove unused callback functionality from ClangASTContext
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
Commit 109e4e3851e29e0d3357cd1a6a38155928c07d8a by flo
[Matrix] Add forward shape propagation and first shape aware lowerings.
This patch adds infrastructure for forward shape propagation to
LowerMatrixIntrinsics. It also updates the pass to make use of the shape
information to break up larger vector operations and to eliminate
unnecessary conversion operations between columnwise matrixes and
flattened vectors: if shape information is available for an instruction,
lower the operation to a set of instructions operating on columns. For
example, a store of a matrix is broken down into separate stores for
each column. For users that do not have shape information (e.g. because
they do not yet support shape information aware lowering), we pack the
result columns into a flat vector and update those users.
It also adds shape aware lowering for the first non-intrinsic
instruction: vector stores.
Example:
For
%c  = call <4 x double> @llvm.matrix.transpose(<4 x double> %a, i32 2,
i32 2)
store <4 x double> %c, <4 x double>* %Ptr
We generate the code below without shape propagation. Note %9 which
combines the columns of the transposed matrix into a flat vector.
  %split = shufflevector <4 x double> %a, <4 x double> undef, <2 x i32>
<i32 0, i32 1>
%split1 = shufflevector <4 x double> %a, <4 x double> undef, <2 x i32>
<i32 2, i32 3>
%1 = extractelement <2 x double> %split, i64 0
%2 = insertelement <2 x double> undef, double %1, i64 0
%3 = extractelement <2 x double> %split1, i64 0
%4 = insertelement <2 x double> %2, double %3, i64 1
%5 = extractelement <2 x double> %split, i64 1
%6 = insertelement <2 x double> undef, double %5, i64 0
%7 = extractelement <2 x double> %split1, i64 1
%8 = insertelement <2 x double> %6, double %7, i64 1
%9 = shufflevector <2 x double> %4, <2 x double> %8, <4 x i32> <i32 0,
i32 1, i32 2, i32 3>
store <4 x double> %9, <4 x double>* %Ptr
With this patch, we propagate the 2x2 shape information from the
transpose to the store and we generate the code below. Note that we
store the columns directly and do not need an extra shuffle.
  %9 = bitcast <4 x double>* %Ptr to double*
%10 = bitcast double* %9 to <2 x double>*
store <2 x double> %4, <2 x double>* %10, align 8
%11 = getelementptr double, double* %9, i32 2
%12 = bitcast double* %11 to <2 x double>*
store <2 x double> %8, <2 x double>* %12, align 8
Reviewers: anemet, Gerolf, reames, hfinkel, andrew.w.kaylor
Reviewed By: anemet
Differential Revision: https://reviews.llvm.org/D70897
The file was addedllvm/test/Transforms/LowerMatrixIntrinsics/propagate-forward.ll
The file was modifiedllvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/bigger-expressions-double.ll
The file was addedllvm/test/Transforms/LowerMatrixIntrinsics/propagate-mixed-users.ll
Commit eca40066ebb5759aa44d21833c7a1fd7dd2361af by Yaxun.Liu
[NFC] Move OptionUtils from Basic to Driver
Differential Revision: https://reviews.llvm.org/D71802
The file was modifiedclang/lib/Driver/CMakeLists.txt
The file was removedclang/include/clang/Basic/OptionUtils.h
The file was addedclang/include/clang/Driver/OptionUtils.h
The file was removedclang/lib/Basic/OptionUtils.cpp
The file was modifiedclang/include/clang/Frontend/Utils.h
The file was modifiedclang/lib/Basic/CMakeLists.txt
The file was addedclang/lib/Driver/OptionUtils.cpp
Commit 8d6f59b78a83489d3dacdd4db0dbf1d4213c92b7 by flo
[Matrix] Use fmuladd  for matrix.multiply if allowed.
If the matrix.multiply calls have the contract fast math flag, we can
use fmuladd. This als adds a command line option to force fmuladd
generation. We can retire this option once there is a clang-level
option.
Reviewers: anemet, Gerolf, hfinkel, andrew.w.kaylor
Reviewed By: anemet
Differential Revision: https://reviews.llvm.org/D70951
The file was addedllvm/test/Transforms/LowerMatrixIntrinsics/multiply-double-contraction.ll
The file was addedllvm/test/Transforms/LowerMatrixIntrinsics/multiply-float-contraction.ll
The file was modifiedllvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
The file was addedllvm/test/Transforms/LowerMatrixIntrinsics/multiply-float-contraction-fmf.ll
The file was addedllvm/test/Transforms/LowerMatrixIntrinsics/multiply-double-contraction-fmf.ll
Commit 46f02fc922e053006e34d860e9efaf29c88d8ba3 by pavel
[lldb/DWARF] Fix hostname-stripping logic
This bit of code is trying to strip everything up to the first colon
from all debug info paths, as dwarf2 recommends this syntax for storing
the compilation host name. However, this code was too eager, and it
ended up stripping the entire compilation directory, if it did not
contain a forward slash (or a "x:\").
Normally this does not matter, as all absolute paths will contain one of
these patterns, but this does not have to be the case in case the debug
info is produced by "clang -fdebug-compilation-dir", which can end up
producing a relative compilation directory with no slashes (this is one
of the techniques for producing "relocatable" debug info).
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
The file was addedlldb/test/Shell/SymbolFile/DWARF/debug_line-relative_path.s
Commit d105ea26e87de604d0d070114c3588d591feac7e by llvmgnsyncbot
[gn build] Port eca40066ebb
The file was modifiedllvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn