[llvm-branch-commits] [llvm] c6f940b - Add llvm-cov to LLVM_TOOLCHAIN_TOOLS
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)
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.
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
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.
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)
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
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
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.
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.
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