[llvm-branch-commits] [llvm] c6f940b - Add llvm-cov to LLVM_TOOLCHAIN_TOOLS

2020-02-25 Thread Hans Wennborg via llvm-branch-commits

Author: Hans Wennborg
Date: 2020-02-25T11:04:41+01:00
New Revision: c6f940b745c68f911e06ede1374f155d89fe3540

URL: 
https://github.com/llvm/llvm-project/commit/c6f940b745c68f911e06ede1374f155d89fe3540
DIFF: 
https://github.com/llvm/llvm-project/commit/c6f940b745c68f911e06ede1374f155d89fe3540.diff

LOG: Add llvm-cov to LLVM_TOOLCHAIN_TOOLS

See https://github.com/llvm/llvm-project/issues/141

(cherry picked from commit dcd89b3de6de891bfcc59189cda1ea059fbdcdb5)

Added: 


Modified: 
llvm/cmake/modules/AddLLVM.cmake

Removed: 




diff  --git a/llvm/cmake/modules/AddLLVM.cmake 
b/llvm/cmake/modules/AddLLVM.cmake
index fce36ba21253..32798b1b44a0 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -998,6 +998,7 @@ endfunction()
 if(NOT LLVM_TOOLCHAIN_TOOLS)
   set (LLVM_TOOLCHAIN_TOOLS
 llvm-ar
+llvm-cov
 llvm-cxxfilt
 llvm-ranlib
 llvm-lib



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] 882720b - Don't generate libcalls for wide shift on Windows ARM (PR42711)

2020-02-25 Thread Hans Wennborg via llvm-branch-commits

Author: Hans Wennborg
Date: 2020-02-25T11:54:51+01:00
New Revision: 882720b7ce338c81aa24c1c2b2614c47d248920f

URL: 
https://github.com/llvm/llvm-project/commit/882720b7ce338c81aa24c1c2b2614c47d248920f
DIFF: 
https://github.com/llvm/llvm-project/commit/882720b7ce338c81aa24c1c2b2614c47d248920f.diff

LOG: Don't generate libcalls for wide shift on Windows ARM (PR42711)

The previous patch (cff90f07cb5cc3c3bc58277926103af31caef308) didn't
cover ARM.

(cherry picked from commit decd021facba804b57e8d80b6159c987d3261ab8)

Added: 


Modified: 
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/test/CodeGen/ARM/shift_minsize.ll

Removed: 




diff  --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp 
b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 2f836a60a9e0..66f3f418d06c 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -16892,7 +16892,7 @@ bool ARMTargetLowering::isCheapToSpeculateCtlz() const {
 }
 
 bool ARMTargetLowering::shouldExpandShift(SelectionDAG &DAG, SDNode *N) const {
-  return !Subtarget->hasMinSize();
+  return !Subtarget->hasMinSize() || Subtarget->isTargetWindows();
 }
 
 Value *ARMTargetLowering::emitLoadLinked(IRBuilder<> &Builder, Value *Addr,

diff  --git a/llvm/test/CodeGen/ARM/shift_minsize.ll 
b/llvm/test/CodeGen/ARM/shift_minsize.ll
index 4d10c64392da..de7327ed3fcb 100644
--- a/llvm/test/CodeGen/ARM/shift_minsize.ll
+++ b/llvm/test/CodeGen/ARM/shift_minsize.ll
@@ -1,4 +1,10 @@
-; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
+; RUN: llc -mtriple=arm-eabi%s -o - | FileCheck %s
+; RUN: llc -mtriple=thumbv7-windows %s -o - | FileCheck %s 
-check-prefix=CHECK-WIN
+
+; The Windows runtime doesn't have these.
+; CHECK-WIN-NOT: __ashldi3
+; CHECK-WIN-NOT: __ashrdi3
+; CHECK-WIN-NOT: __lshrdi3
 
 define i64 @f0(i64 %val, i64 %amt) minsize optsize {
 ; CHECK-LABEL:   f0:



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] 3a11c86 - Add Control Flow Guard in Clang release notes.

2020-02-25 Thread Hans Wennborg via llvm-branch-commits

Author: Hans Wennborg
Date: 2020-02-25T12:06:44+01:00
New Revision: 3a11c86849c27e1e21d5e8cdf55cfa724164db57

URL: 
https://github.com/llvm/llvm-project/commit/3a11c86849c27e1e21d5e8cdf55cfa724164db57
DIFF: 
https://github.com/llvm/llvm-project/commit/3a11c86849c27e1e21d5e8cdf55cfa724164db57.diff

LOG: Add Control Flow Guard in Clang release notes.

By Andrew Paverd!

Differential revision: https://reviews.llvm.org/D75047

Added: 


Modified: 
clang/docs/ReleaseNotes.rst

Removed: 




diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 91506e1a2b25..67c42870a3df 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -208,6 +208,12 @@ Windows Support
 - Fixed handling of TLS variables that are shared between object files
   in MinGW environments
 
+- The ``-cfguard`` flag now emits Windows Control Flow Guard checks on indirect
+  function calls. The previous behavior is still available with the
+  ``-cfguard-nochecks`` flag. These checks can be disabled for specific
+  functions using the new ``__declspec(guard(nocf))`` modifier.
+
+
 C Language Changes in Clang
 ---
 



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] bbfdf4b - build_llvm_package.bat: Produce zip files in addition to the installers

2020-02-25 Thread Hans Wennborg via llvm-branch-commits

Author: Hans Wennborg
Date: 2020-02-25T12:14:44+01:00
New Revision: bbfdf4b81d60e352224c0c928eb3fa9fbfb7858c

URL: 
https://github.com/llvm/llvm-project/commit/bbfdf4b81d60e352224c0c928eb3fa9fbfb7858c
DIFF: 
https://github.com/llvm/llvm-project/commit/bbfdf4b81d60e352224c0c928eb3fa9fbfb7858c.diff

LOG: build_llvm_package.bat: Produce zip files in addition to the installers

Now that the Windows installer no longer does anything besides
self-extract, maybe it would make sense to distribute the toolchain as a
plain zip file in addition to the current installer.

Differential revision: https://reviews.llvm.org/D74896

(cherry picked from commit 4486aa03c5f431ba33a1d1ac9991da912e3decd9)

Added: 


Modified: 
llvm/utils/release/build_llvm_package.bat

Removed: 




diff  --git a/llvm/utils/release/build_llvm_package.bat 
b/llvm/utils/release/build_llvm_package.bat
index 7556bfa854e3..a54fd1f0e622 100755
--- a/llvm/utils/release/build_llvm_package.bat
+++ b/llvm/utils/release/build_llvm_package.bat
@@ -11,7 +11,7 @@ REM
 REM   Visual Studio 2019, CMake, Ninja, GNUWin32, SWIG, Python 3,
 REM   NSIS with the strlen_8192 patch,
 REM   Visual Studio 2019 SDK and Nuget (for the clang-format plugin),
-REM   Perl (for the OpenMP run-time).
+REM   Perl (for the OpenMP run-time), 7Zip.
 REM
 REM
 REM   For LLDB, SWIG version <= 3.0.8 needs to be used to work around
@@ -91,8 +91,14 @@ ninja check-sanitizer || ninja check-sanitizer || ninja 
check-sanitizer || exit
 ninja check-clang-tools || ninja check-clang-tools || ninja check-clang-tools 
|| exit /b
 ninja check-clangd || ninja check-clangd || ninja check-clangd || exit /b
 ninja package || exit /b
+
+7z x LLVM-%package_version%-win32.exe -orepack
+rmdir /s /q repack\$PLUGINSDIR
+del repack\Uninstall.exe
+7z a LLVM-%package_version%-win32.zip .\repack\* -mx9
 cd ..
 
+
 REM The plug-in is built separately as it uses a statically linked 
clang-format.exe.
 mkdir build_vsix
 cd build_vsix
@@ -135,4 +141,9 @@ ninja check-sanitizer || ninja check-sanitizer || ninja 
check-sanitizer || exit
 ninja check-clang-tools || ninja check-clang-tools || ninja check-clang-tools 
|| exit /b
 ninja check-clangd || ninja check-clangd || ninja check-clangd || exit /b
 ninja package || exit /b
+
+7z x LLVM-%package_version%-win64.exe -orepack
+rmdir /s /q repack\$PLUGINSDIR
+del repack\Uninstall.exe
+7z a LLVM-%package_version%-win64.zip .\repack\* -mx9
 cd ..



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [mlir] ca1bad5 - [MLIR][GPU] Properly model step in parallel loop to gpu conversion.

2020-02-25 Thread Stephan Herhut via llvm-branch-commits

Author: Stephan Herhut
Date: 2020-02-25T14:04:39+01:00
New Revision: ca1bad5253a18ea6ab6573abdc26b740ff4593c4

URL: 
https://github.com/llvm/llvm-project/commit/ca1bad5253a18ea6ab6573abdc26b740ff4593c4
DIFF: 
https://github.com/llvm/llvm-project/commit/ca1bad5253a18ea6ab6573abdc26b740ff4593c4.diff

LOG: [MLIR][GPU] Properly model step in parallel loop to gpu conversion.

Summary:
The original patch had TODOs to add support for step computations,
which this commit addresses. The computations are expressed using
affine expressions so that the affine canonicalizers can simplify
the full bound and index computations.

Also cleans up the code a little and exposes the pass in the
header file.

Differential Revision: https://reviews.llvm.org/D75052

Added: 


Modified: 
mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h
mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp
mlir/lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp
mlir/test/Conversion/LoopsToGPU/parallel_loop.mlir

Removed: 




diff  --git a/mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h 
b/mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h
index ed91f1b4df63..d5f48d29ea6c 100644
--- a/mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h
+++ b/mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h
@@ -15,6 +15,7 @@
 namespace mlir {
 class FuncOp;
 template  class OpPassBase;
+class Pass;
 
 /// Create a pass that converts loop nests into GPU kernels.  It considers
 /// top-level affine.for and linalg.for operations as roots of loop nests and
@@ -36,6 +37,13 @@ createSimpleLoopsToGPUPass(unsigned numBlockDims, unsigned 
numThreadDims);
 std::unique_ptr>
 createLoopToGPUPass(ArrayRef numWorkGroups,
 ArrayRef workGroupSize);
+
+/// Creates a pass that converts loop.parallel operations into a gpu.launch
+/// operation. The mapping of loop dimensions to launch dimensions is derived
+/// from mapping attributes. See ParallelToGpuLaunchLowering::matchAndRewrite
+/// for a description of the used attributes.
+std::unique_ptr createParallelLoopToGpuPass();
+
 } // namespace mlir
 
 #endif // MLIR_CONVERSION_LOOPSTOGPU_LOOPSTOGPUPASS_H_

diff  --git a/mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp 
b/mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp
index f28409f23045..5b6b3a2d4f56 100644
--- a/mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp
+++ b/mlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp
@@ -531,25 +531,19 @@ static MappingAnnotation 
extractMappingAnnotation(Attribute attribute) {
 
 /// Tries to derive a static upper bound from the defining operation of
 /// `upperBound`.
-static Value deriveStaticUpperBound(Value upperBound) {
-  Value constantBound = {};
+static Value deriveStaticUpperBound(Value upperBound,
+PatternRewriter &rewriter) {
   if (AffineMinOp minOp =
   dyn_cast_or_null(upperBound.getDefiningOp())) {
-auto map = minOp.map();
-auto operands = minOp.operands();
-for (int sub = 0, e = map.getNumResults(); sub < e; ++sub) {
-  AffineExpr expr = map.getResult(sub);
-  if (AffineDimExpr dimExpr = expr.dyn_cast()) {
-auto dimOperand = operands[dimExpr.getPosition()];
-auto defOp = dimOperand.getDefiningOp();
-if (ConstantOp constOp = dyn_cast_or_null(defOp)) {
-  constantBound = constOp;
-  break;
-}
+for (const AffineExpr &result : minOp.map().getResults()) {
+  if (AffineConstantExpr constExpr =
+  result.dyn_cast()) {
+return rewriter.create(minOp.getLoc(),
+constExpr.getValue());
   }
 }
   }
-  return constantBound;
+  return {};
 }
 
 /// Modifies the current transformation state to capture the effect of the 
given
@@ -614,46 +608,62 @@ static LogicalResult processParallelLoop(ParallelOp 
parallelOp,
 
 if (annotation.processor < gpu::LaunchOp::kNumConfigOperands) {
   // Use the corresponding thread/grid index as replacement for the loop 
iv.
-  // TODO(herhut): Make the iv calculation depend on lower & upper bound.
   Value operand = 
launchOp.body().front().getArgument(annotation.processor);
-  Value appliedMap =
-  rewriter.create(loc, annotation.indexMap, operand);
-  // Add the lower bound, as the maps are 0 based but the loop might not 
be.
-  // TODO(herhut): Maybe move this explicitly into the maps?
-  newIndex = rewriter.create(
-  loc, appliedMap, cloningMap.lookupOrDefault(lowerBound));
+  // Take the indexmap and add the lower bound and step computations in.
+  // This computes operand * step + lowerBound.
+  // Use an affine map here so that it composes nicely with the provided
+  // annotation.
+  AffineMap lowerAndStep = AffineMap::get(
+  1, 2,
+  rewriter.getAffineDimExpr(0) * rewriter.getAffineSymbolExpr(0) +
+  

[llvm-branch-commits] [llvm] 2905a48 - Fix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945)

2020-02-25 Thread Hans Wennborg via llvm-branch-commits

Author: Hans Wennborg
Date: 2020-02-25T15:19:52+01:00
New Revision: 2905a48c8790b530709305e984451ddab268c8e4

URL: 
https://github.com/llvm/llvm-project/commit/2905a48c8790b530709305e984451ddab268c8e4
DIFF: 
https://github.com/llvm/llvm-project/commit/2905a48c8790b530709305e984451ddab268c8e4.diff

LOG: Fix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945)

No functionality change (intended), but this seems to make the code a
bit clearer for the compiler and maybe for human readers too.

(cherry picked from commit edae4be8e21c5deb9a8ffc24a8c17e70b878bf39)

Added: 


Modified: 
llvm/utils/TableGen/DFAEmitter.cpp
llvm/utils/TableGen/DFAEmitter.h

Removed: 




diff  --git a/llvm/utils/TableGen/DFAEmitter.cpp 
b/llvm/utils/TableGen/DFAEmitter.cpp
index dd3db7c150ba..c392651180b6 100644
--- a/llvm/utils/TableGen/DFAEmitter.cpp
+++ b/llvm/utils/TableGen/DFAEmitter.cpp
@@ -53,14 +53,14 @@ void DfaEmitter::addTransition(state_type From, state_type 
To, action_type A) {
   ++NumNfaTransitions;
 }
 
-void DfaEmitter::visitDfaState(DfaState DS) {
+void DfaEmitter::visitDfaState(const DfaState &DS) {
   // For every possible action...
   auto FromId = DfaStates.idFor(DS);
   for (action_type A : Actions) {
 DfaState NewStates;
 DfaTransitionInfo TI;
 // For every represented state, word pair in the original NFA...
-for (state_type &FromState : DS) {
+for (state_type FromState : DS) {
   // If this action is possible from this state add the transitioned-to
   // states to NewStates.
   auto I = NfaTransitions.find({FromState, A});
@@ -90,8 +90,11 @@ void DfaEmitter::constructDfa() {
 
   // Note that UniqueVector starts indices at 1, not zero.
   unsigned DfaStateId = 1;
-  while (DfaStateId <= DfaStates.size())
-visitDfaState(DfaStates[DfaStateId++]);
+  while (DfaStateId <= DfaStates.size()) {
+DfaState S = DfaStates[DfaStateId];
+visitDfaState(S);
+DfaStateId++;
+  }
 }
 
 void DfaEmitter::emit(StringRef Name, raw_ostream &OS) {

diff  --git a/llvm/utils/TableGen/DFAEmitter.h 
b/llvm/utils/TableGen/DFAEmitter.h
index 76de8f72cd88..f7724ce06bac 100644
--- a/llvm/utils/TableGen/DFAEmitter.h
+++ b/llvm/utils/TableGen/DFAEmitter.h
@@ -99,7 +99,7 @@ class DfaEmitter {
   void constructDfa();
   /// Visit a single DFA state and construct all possible transitions to new 
DFA
   /// states.
-  void visitDfaState(DfaState DS);
+  void visitDfaState(const DfaState &DS);
 };
 
 } // namespace llvm



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] 18cd295 - [analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to CallDescription

2020-02-25 Thread Kristóf Umann via llvm-branch-commits

Author: Kristóf Umann
Date: 2020-02-25T15:28:54+01:00
New Revision: 18cd29520bfa2ca714a884b69493125f53f9ab06

URL: 
https://github.com/llvm/llvm-project/commit/18cd29520bfa2ca714a884b69493125f53f9ab06
DIFF: 
https://github.com/llvm/llvm-project/commit/18cd29520bfa2ca714a884b69493125f53f9ab06.diff

LOG: [analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to 
CallDescription

Exactly what it says on the tin! I decided not to merge this with the patch that
changes all these to a CallDescriptionMap object, so the patch is that much more
trivial.

Differential Revision: https://reviews.llvm.org/D68163

Added: 
clang/test/Analysis/malloc-annotations.cpp

Modified: 
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
clang/test/Analysis/kmalloc-linux.c

Removed: 




diff  --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h 
b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
index fc1cc9138826..5b9bbb197e82 100644
--- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
+++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
@@ -258,6 +258,13 @@ class CallEvent {
   /// calls.
   bool isCalled(const CallDescription &CD) const;
 
+  /// Returns true whether the CallEvent is any of the CallDescriptions 
supplied
+  /// as a parameter.
+  template 
+  bool isCalled(const FirstCallDesc &First, const CallDescs &... Rest) const {
+return isCalled(First) || isCalled(Rest...);
+  }
+
   /// Returns a source range for the entire call, suitable for
   /// outputting in diagnostics.
   virtual SourceRange getSourceRange() const {

diff  --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp 
b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
index fd3ce6cf3b9b..23b4abc67079 100644
--- a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
@@ -268,8 +268,6 @@ REGISTER_MAP_WITH_PROGRAMSTATE(ReallocPairs, SymbolRef, 
ReallocPair)
 
 namespace {
 
-enum class MemoryOperationKind { MOK_Allocate, MOK_Free, MOK_Any };
-
 struct MemFunctionInfoTy {
   /// The value of the MallocChecker:Optimistic is stored in this variable.
   ///
@@ -279,44 +277,41 @@ struct MemFunctionInfoTy {
   /// which might free a pointer are annotated.
   DefaultBool ShouldIncludeOwnershipAnnotatedFunctions;
 
-  // TODO: Change these to CallDescription, and get rid of lazy initialization.
-  mutable IdentifierInfo *II_alloca = nullptr, *II_win_alloca = nullptr,
- *II_malloc = nullptr, *II_free = nullptr,
- *II_realloc = nullptr, *II_calloc = nullptr,
- *II_valloc = nullptr, *II_reallocf = nullptr,
- *II_strndup = nullptr, *II_strdup = nullptr,
- *II_win_strdup = nullptr, *II_kmalloc = nullptr,
- *II_if_nameindex = nullptr,
- *II_if_freenameindex = nullptr, *II_wcsdup = nullptr,
- *II_win_wcsdup = nullptr, *II_g_malloc = nullptr,
- *II_g_malloc0 = nullptr, *II_g_realloc = nullptr,
- *II_g_try_malloc = nullptr,
- *II_g_try_malloc0 = nullptr,
- *II_g_try_realloc = nullptr, *II_g_free = nullptr,
- *II_g_memdup = nullptr, *II_g_malloc_n = nullptr,
- *II_g_malloc0_n = nullptr, *II_g_realloc_n = nullptr,
- *II_g_try_malloc_n = nullptr,
- *II_g_try_malloc0_n = nullptr, *II_kfree = nullptr,
- *II_g_try_realloc_n = nullptr;
-
-  void initIdentifierInfo(ASTContext &C) const;
-
-  ///@{
-  /// Check if this is one of the functions which can allocate/reallocate
-  /// memory pointed to by one of its arguments.
-  bool isMemFunction(const FunctionDecl *FD, ASTContext &C) const;
-  bool isCMemFunction(const FunctionDecl *FD, ASTContext &C,
-  AllocationFamily Family,
-  MemoryOperationKind MemKind) const;
-
-  /// Tells if the callee is one of the builtin new/delete operators, including
-  /// placement operators and other standard overloads.
-  bool isStandardNewDelete(const FunctionDecl *FD, ASTContext &C) const;
-  ///@}
+  CallDescription CD_alloca{{"alloca"}, 1}, CD_win_alloca{{"_alloca"}, 1},
+  CD_malloc{{"malloc"}, 1}, CD_BSD_malloc{{"malloc"}, 3},
+  CD_free{{"free"}, 1}, CD_realloc{{"realloc"}, 2},
+  CD_calloc{{"calloc"}, 2}, CD_valloc{{"valloc"}, 1},
+  CD_reallocf{{"reallocf"}, 2}, CD_strndup{{"strndup"}, 2},
+  CD_strdup{{"strdup"}, 1}, CD_win_strdup{{"_strdup"}, 1},
+  CD_kmalloc{{"kmalloc"}, 2}, CD_if_nameindex{{"if_nameindex"}, 1},
+  CD_if_freenameindex{{"if_freenameindex"}

[llvm-branch-commits] [clang-tools-extra] 1f6c9be - [docs] clangd release notes

2020-02-25 Thread Sam McCall via llvm-branch-commits

Author: Sam McCall
Date: 2020-02-25T15:49:43+01:00
New Revision: 1f6c9becd57af14ee71fb7c1e56b55f556be98fa

URL: 
https://github.com/llvm/llvm-project/commit/1f6c9becd57af14ee71fb7c1e56b55f556be98fa
DIFF: 
https://github.com/llvm/llvm-project/commit/1f6c9becd57af14ee71fb7c1e56b55f556be98fa.diff

LOG: [docs] clangd release notes

Added: 


Modified: 
clang-tools-extra/docs/ReleaseNotes.rst

Removed: 




diff  --git a/clang-tools-extra/docs/ReleaseNotes.rst 
b/clang-tools-extra/docs/ReleaseNotes.rst
index 52e98cb23f50..86ff28cfb0fd 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -47,7 +47,50 @@ Major New Features
 Improvements to clangd
 --
 
-The improvements are...
+- Go-to-definition, hover, find-references etc use a new mechanism to identify
+  what is under the cursor, which is (hopefully) more consistent and accurate.
+
+- clangd should be able to reliably locate the standard library/SDK on macOS.
+
+- Shutdown more cleanly on receiving a signal. In particular temporary PCH 
files
+  should be cleaned up.
+
+- Find references now works on macros.
+
+- clangd can be more easily used remotely or in a docker container.
+
+  The `--path-mappings` flag translates between local and remote paths.
+
+- Experimental support for renaming across files (behind the
+  `--cross-file-rename` flag).
+
+- Hover now exposes more information, including the type of symbols and the
+  value of constant expressions.
+
+- Go to definition now works in dependent code in more cases, by assuming the
+  primary template is used.
+
+- Better recovery and reporting when the compile command for a file can't be
+  fully parsed.
+
+- Switch header/source (an extension) now uses index information in addition
+  to filename heuristics, and is much more robust.
+
+- Semantic selection (expand/contract selection) is supported.
+
+- Semantic highlighting is more robust, highlights more types of tokens, and
+  as an extension provides information about inactive preprocessor regions.
+
+- Code completion results now include an extension field `score`.
+
+  This allows clients to incorporate clangd quality signals when re-ranking 
code
+  completion after client-side fuzzy-matching.
+
+- New refactorings:
+  define function out-of-line, define function in-line, extract function,
+  remove using namespace directive, localize Objective-C string.
+
+- Bug fixes and performance improvements :-)
 
 Improvements to clang-doc
 -



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] 668b8a4 - [docs][WebAssembly] WebAssembly-specific release notes for 10.0.

2020-02-25 Thread Dan Gohman via llvm-branch-commits

Author: Dan Gohman
Date: 2020-02-25T15:11:47-08:00
New Revision: 668b8a4bcd01170625df7cf4246c05354b9ff625

URL: 
https://github.com/llvm/llvm-project/commit/668b8a4bcd01170625df7cf4246c05354b9ff625
DIFF: 
https://github.com/llvm/llvm-project/commit/668b8a4bcd01170625df7cf4246c05354b9ff625.diff

LOG: [docs][WebAssembly] WebAssembly-specific release notes for 10.0.

Added: 


Modified: 
clang/docs/ReleaseNotes.rst
lld/docs/ReleaseNotes.rst
llvm/docs/ReleaseNotes.rst

Removed: 




diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 67c42870a3df..b160588b22c5 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -119,6 +119,9 @@ Non-comprehensive list of changes in this release
 * Improved support for ``octeon`` MIPS-family CPU. Added ``octeon+`` to
   the list of of CPUs accepted by the driver.
 
+* For the WebAssembly target, the ``wasm-opt`` tool will now be run if it is
+  found in the PATH, which can reduce code size.
+
 New Compiler Flags
 --
 

diff  --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst
index 4e55f93882f1..5be348bb1894 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -86,3 +86,4 @@ WebAssembly Improvements
   as it's best to keep them internal when possible. They can be
   explicitly exported with `--export=__data_end` and
   `--export=__heap_base`, respectively.
+* wasm-ld now elides .bss sections when the memory is not imported

diff  --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst
index 848ebdb9c2ee..60dd07ddb26f 100644
--- a/llvm/docs/ReleaseNotes.rst
+++ b/llvm/docs/ReleaseNotes.rst
@@ -234,7 +234,12 @@ Changes to the AVR Target
 Changes to the WebAssembly Target
 -
 
- During this release ...
+* __attribute__((used)) no longer implies that a symbol is exported, for
+  consistency with other targets.
+* Multivalue function signatures are now supported in WebAssembly object files
+* The new `atomic.fence` instruction is now supported
+* Thread-Local Storage (TLS) is now supported.
+* SIMD support is significantly expanded.
 
 Changes to the Windows Target
 -



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [polly] 002af01 - [Polly][docs] Polly release notes.

2020-02-25 Thread Michael Kruse via llvm-branch-commits

Author: Michael Kruse
Date: 2020-02-25T22:38:36-06:00
New Revision: 002af0119286297dbd76b08a4a6cc4b6b87d3f26

URL: 
https://github.com/llvm/llvm-project/commit/002af0119286297dbd76b08a4a6cc4b6b87d3f26
DIFF: 
https://github.com/llvm/llvm-project/commit/002af0119286297dbd76b08a4a6cc4b6b87d3f26.diff

LOG: [Polly][docs] Polly release notes.

In release 10.0, Polly is not linked into opt/bugpoint/clang by default
anymore. Add workarounds in release notes.

Added: 


Modified: 
polly/docs/ReleaseNotes.rst

Removed: 




diff  --git a/polly/docs/ReleaseNotes.rst b/polly/docs/ReleaseNotes.rst
index 1d9aacc9aa68..5f49e619976d 100644
--- a/polly/docs/ReleaseNotes.rst
+++ b/polly/docs/ReleaseNotes.rst
@@ -10,4 +10,44 @@ In Polly 10 the following important changes have been 
incorporated.
   the new features that have recently been committed to our development
   branch.
 
-- Change ...
+Statically Linking of Polly
+===
+
+The mechanism that Polly uses to link itself statically into the opt, bugpoint 
and clang executables has been generalized such that it can be used by other 
pass plugins. An example plugin "Bye" has been added to illustate the 
mechanism. A consequence of this change is that Polly, like the "Bye" plugin, 
by default is not linked statically into aforementioned executables anymore.
+
+If Polly is not available, the executable will report an unkown argument 
`-polly`, such as
+
+.. code-block:: console
+
+$ clang -mllvm -polly -x c -
+clang (LLVM option parsing): Unknown command line argument '-polly'.  Try: 
'clang (LLVM option parsing) --help'
+clang (LLVM option parsing): Did you mean '--color'?
+
+.. code-block:: console
+
+$ opt -polly
+opt: for the -o option: may not occur within a group!
+opt: Unknown command line argument '-polly'.  Try: 'opt --help'
+opt: Did you mean '-o'?
+
+Polly can be made available using the following methods.
+
+- Configure LLVM/Clang with the CMake options LLVM_POLLY_LINK_INTO_TOOLS=ON 
and LLVM_ENABLE_PROJECTS=polly.
+
+  .. code-block:: console
+
+$ cmake -DLLVM_POLLY_LINK_INTO_TOOLS=ON -DLLVM_ENABLE_PROJECTS=clang;polly 
...
+
+  In future versions, LLVM_POLLY_LINK_INTO_TOOLS=ON will be default again if 
Polly has been enabled.
+
+- Use the `-load` option to load the Polly module.
+
+  .. code-block:: console
+
+$ clang -Xclang -load -Xclang path/to/LLVMPolly.so ...
+
+  .. code-block:: console
+
+$ opt -load path/to/LLVMPolly.so ...
+
+  The LLVMPolly.so module can be found in the `lib/` directory of the build or 
install-prefix directory.



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits