[llvm-branch-commits] [llvm-branch] r339646 - [ReleaseNotes] Mention various windows related changes in 7.0
Author: mstorsjo Date: Tue Aug 14 00:48:10 2018 New Revision: 339646 URL: http://llvm.org/viewvc/llvm-project?rev=339646&view=rev Log: [ReleaseNotes] Mention various windows related changes in 7.0 Modified: llvm/branches/release_70/docs/ReleaseNotes.rst Modified: llvm/branches/release_70/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/docs/ReleaseNotes.rst?rev=339646&r1=339645&r2=339646&view=diff == --- llvm/branches/release_70/docs/ReleaseNotes.rst (original) +++ llvm/branches/release_70/docs/ReleaseNotes.rst Tue Aug 14 00:48:10 2018 @@ -121,6 +121,16 @@ Non-comprehensive list of changes in thi not to be compliant, and higher optimization levels will still emit some information in v4 format. +* Added support for the ``.rva`` assembler directive for COFF targets. + +* The :program:`llvm-rc` tool (Windows Resource Compiler) has been improved + a bit. There are still known missing features, but it is generally usable + in many cases. (The tool still doesn't preprocess input files automatically, + but it can now handle leftover C declarations in preprocessor output, if + given output from a preprocessor run externally.) + +* CodeView debug info can now be emitted MinGW configurations, if requested. + * Note.. .. NOTE @@ -144,11 +154,23 @@ Changes to the LLVM IR * invariant.group metadata can now refer only empty metadata nodes. -Changes to the ARM Backend --- +Changes to the AArch64 Target +- - During this release ... +* The ``.inst`` assembler directive is now usable on both COFF and Mach-O + targets, in addition to ELF. +* Support for most remaining COFF relocations have been added. + +* Support for TLS on Windows has been added. + +Changes to the ARM Target +- + +* The ``.inst`` assembler directive is now usable on both COFF and Mach-O + targets, in addition to ELF. For Thumb, it can now also automatically + deduce the instruction size, without having to specify it with + e.g. ``.inst.w`` as before. Changes to the MIPS Target -- @@ -184,7 +206,13 @@ During this release the SystemZ target h Changes to the X86 Target - - During this release ... +* The calling convention for the ``f80`` data type on MinGW targets has been + fixed. Normally, the calling convention for this type is handled within clang, + but if an intrinsic is used, which LLVM expands into a libcall, the + proper calling convention needs to be supported in LLVM as well. (Note, + on Windows, this data type is only used for long doubles in MinGW + environments - in MSVC environments, long doubles are the same size as + normal doubles.) Changes to the AMDGPU Target - ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r339647 - [ReleaseNotes] Mention one Windows specific change for 7.0
Author: mstorsjo Date: Tue Aug 14 00:52:21 2018 New Revision: 339647 URL: http://llvm.org/viewvc/llvm-project?rev=339647&view=rev Log: [ReleaseNotes] Mention one Windows specific change for 7.0 Modified: cfe/branches/release_70/docs/ReleaseNotes.rst Modified: cfe/branches/release_70/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/docs/ReleaseNotes.rst?rev=339647&r1=339646&r2=339647&view=diff == --- cfe/branches/release_70/docs/ReleaseNotes.rst (original) +++ cfe/branches/release_70/docs/ReleaseNotes.rst Tue Aug 14 00:52:21 2018 @@ -186,6 +186,12 @@ Windows Support Visual Studio's default stdafx.h setup now uses precompiled headers with clang-cl. +- The alternative entry point names + (``wmain``/``WinMain``/``wWinMain``/``DllMain``) now are properly mangled + as plain C names in C++ contexts when targeting MinGW, without having to + explicit specify ``extern "C"``. (This was already the case for MSVC + targets.) + - ... ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] r339648 - [ReleaseNotes] Mention noteworthy changes for 7.0
Author: mstorsjo Date: Tue Aug 14 00:53:15 2018 New Revision: 339648 URL: http://llvm.org/viewvc/llvm-project?rev=339648&view=rev Log: [ReleaseNotes] Mention noteworthy changes for 7.0 Modified: lld/branches/release_70/docs/ReleaseNotes.rst Modified: lld/branches/release_70/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_70/docs/ReleaseNotes.rst?rev=339648&r1=339647&r2=339648&view=diff == --- lld/branches/release_70/docs/ReleaseNotes.rst (original) +++ lld/branches/release_70/docs/ReleaseNotes.rst Tue Aug 14 00:53:15 2018 @@ -29,7 +29,13 @@ ELF Improvements COFF Improvements - -* Item 1. +* Improved correctness of exporting mangled stdcall symbols. + +* Completed support for ARM64 relocations. + +* Added support for outputting PDB debug info for MinGW targets. + +* Improved compatibility of output binaries with GNU binutils objcopy/strip. MachO Improvements -- ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] r339656 - Merging r339075:
Author: hans Date: Tue Aug 14 01:49:47 2018 New Revision: 339656 URL: http://llvm.org/viewvc/llvm-project?rev=339656&view=rev Log: Merging r339075: r339075 | stella.stamenova | 2018-08-07 00:37:49 +0200 (Tue, 07 Aug 2018) | 12 lines [lit, python] Always add quotes around the python path in lit Summary: The issue with the python path is that the path to python on Windows can contain spaces. To make the tests always work, the path to python needs to be surrounded by quotes. This is a companion change to: https://reviews.llvm.org/D50206 Reviewers: asmith, zturner, espindola Subscribers: emaste, sbc100, arichardson, aheejin, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D50282 Modified: lld/branches/release_70/ (props changed) lld/branches/release_70/test/ELF/lto/cache.ll lld/branches/release_70/test/mach-o/dependency_info.yaml lld/branches/release_70/test/wasm/lto/cache.ll Propchange: lld/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 01:49:47 2018 @@ -1 +1 @@ -/lld/trunk:338679,338684,338697,338699,339058 +/lld/trunk:338679,338684,338697,338699,339058,339075 Modified: lld/branches/release_70/test/ELF/lto/cache.ll URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_70/test/ELF/lto/cache.ll?rev=339656&r1=339655&r2=339656&view=diff == --- lld/branches/release_70/test/ELF/lto/cache.ll (original) +++ lld/branches/release_70/test/ELF/lto/cache.ll Tue Aug 14 01:49:47 2018 @@ -13,7 +13,7 @@ ; RUN: ls %t.cache | count 4 ; Create a file of size 64KB. -; RUN: "%python" -c "print(' ' * 65536)" > %t.cache/llvmcache-foo +; RUN: %python -c "print(' ' * 65536)" > %t.cache/llvmcache-foo ; This should leave the file in place. ; RUN: ld.lld --thinlto-cache-dir=%t.cache --thinlto-cache-policy cache_size_bytes=128k:prune_interval=0s -o %t3 %t2.o %t.o Modified: lld/branches/release_70/test/mach-o/dependency_info.yaml URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_70/test/mach-o/dependency_info.yaml?rev=339656&r1=339655&r2=339656&view=diff == --- lld/branches/release_70/test/mach-o/dependency_info.yaml (original) +++ lld/branches/release_70/test/mach-o/dependency_info.yaml Tue Aug 14 01:49:47 2018 @@ -9,7 +9,7 @@ # RUN:-F/Custom/Frameworks \ # RUN:-framework Bar \ # RUN:-framework Foo -# RUN: '%python' %p/Inputs/DependencyDump.py %t.info | FileCheck %s +# RUN: %python %p/Inputs/DependencyDump.py %t.info | FileCheck %s # CHECK: linker-vers: lld Modified: lld/branches/release_70/test/wasm/lto/cache.ll URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_70/test/wasm/lto/cache.ll?rev=339656&r1=339655&r2=339656&view=diff == --- lld/branches/release_70/test/wasm/lto/cache.ll (original) +++ lld/branches/release_70/test/wasm/lto/cache.ll Tue Aug 14 01:49:47 2018 @@ -11,7 +11,7 @@ ; RUN: ls %t.cache | count 4 ; Create a file of size 64KB. -; RUN: "%python" -c "print(' ' * 65536)" > %t.cache/llvmcache-foo +; RUN: %python -c "print(' ' * 65536)" > %t.cache/llvmcache-foo ; This should leave the file in place. ; RUN: wasm-ld --thinlto-cache-dir=%t.cache --thinlto-cache-policy cache_size_bytes=128k:prune_interval=0s -o %t.wasm %t2.o %t.o ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] r339657 - Merging r339076:
Author: hans Date: Tue Aug 14 01:51:28 2018 New Revision: 339657 URL: http://llvm.org/viewvc/llvm-project?rev=339657&view=rev Log: Merging r339076: r339076 | stella.stamenova | 2018-08-07 00:37:53 +0200 (Tue, 07 Aug 2018) | 10 lines [lit, python] Always add quotes around the python path in lit Summary: The issue with the python path is that the path to python on Windows can contain spaces. To make the tests always work, the path to python needs to be surrounded by quotes. This is a companion change to: https://reviews.llvm.org/D50206 Reviewers: asmith, zturner Differential Revision: https://reviews.llvm.org/D50280 Modified: lldb/branches/release_70/ (props changed) lldb/branches/release_70/lit/lit.cfg Propchange: lldb/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 01:51:28 2018 @@ -1,3 +1,3 @@ /lldb/branches/apple/python-GIL:156467-162159 /lldb/branches/iohandler:198360-200250 -/lldb/trunk:338949 +/lldb/trunk:338949,339076 Modified: lldb/branches/release_70/lit/lit.cfg URL: http://llvm.org/viewvc/llvm-project/lldb/branches/release_70/lit/lit.cfg?rev=339657&r1=339656&r2=339657&view=diff == --- lldb/branches/release_70/lit/lit.cfg (original) +++ lldb/branches/release_70/lit/lit.cfg Tue Aug 14 01:51:28 2018 @@ -54,7 +54,7 @@ config.environment['LLVM_SRC_ROOT'] = ge config.environment['PYTHON_EXECUTABLE'] = getattr(config, 'python_executable', '') # Register substitutions -config.substitutions.append(('%python', config.python_executable)) +config.substitutions.append(('%python', "'%s'" % (config.python_executable))) debugserver = lit.util.which('debugserver', lldb_tools_dir) lldb = "%s -S %s/lit-lldb-init" % (lit.util.which('lldb', lldb_tools_dir), ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lld] r339658 - Merging r339049:
Author: hans Date: Tue Aug 14 01:59:56 2018 New Revision: 339658 URL: http://llvm.org/viewvc/llvm-project?rev=339658&view=rev Log: Merging r339049: r339049 | mstorsjo | 2018-08-06 21:49:18 +0200 (Mon, 06 Aug 2018) | 8 lines [COFF] Remove a superfluous warning about aligncomm for non-common symbols It's not an error if a common symbol (uninitialized data, with alignment specified via the aligncomm directive) is replaced with a regular one with initialized data (with alignment specified via the section chunk). Differential Revision: https://reviews.llvm.org/D50268 Added: lld/branches/release_70/test/COFF/Inputs/common-replacement.s - copied unchanged from r339049, lld/trunk/test/COFF/Inputs/common-replacement.s lld/branches/release_70/test/COFF/common-replacement.s - copied unchanged from r339049, lld/trunk/test/COFF/common-replacement.s Modified: lld/branches/release_70/ (props changed) lld/branches/release_70/COFF/Driver.cpp Propchange: lld/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 01:59:56 2018 @@ -1 +1 @@ -/lld/trunk:338679,338684,338697,338699,339058,339075 +/lld/trunk:338679,338684,338697,338699,339049,339058,339075 Modified: lld/branches/release_70/COFF/Driver.cpp URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_70/COFF/Driver.cpp?rev=339658&r1=339657&r2=339658&view=diff == --- lld/branches/release_70/COFF/Driver.cpp (original) +++ lld/branches/release_70/COFF/Driver.cpp Tue Aug 14 01:59:56 2018 @@ -1551,11 +1551,11 @@ void LinkerDriver::link(ArrayRef(Sym); -if (!DC) { - warn("/aligncomm symbol " + Name + " of wrong kind"); +if (!DC) continue; -} CommonChunk *C = DC->getChunk(); C->Alignment = std::max(C->Alignment, Alignment); ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r339660 - Merging r338934:
Author: hans Date: Tue Aug 14 02:10:53 2018 New Revision: 339660 URL: http://llvm.org/viewvc/llvm-project?rev=339660&view=rev Log: Merging r338934: r338934 | vsapsai | 2018-08-04 01:12:37 +0200 (Sat, 04 Aug 2018) | 29 lines [Preprocessor] Allow libc++ to detect when aligned allocation is unavailable. Libc++ needs to know when aligned allocation is supported by clang, but is otherwise unavailable at link time. Otherwise, libc++ will incorrectly end up generating calls to `__builtin_operator_new`/`__builtin_operator_delete` with alignment arguments. This patch implements the following changes: * The `__cpp_aligned_new` feature test macro to no longer be defined when aligned allocation is otherwise enabled but unavailable. * The Darwin driver no longer passes `-faligned-alloc-unavailable` when the user manually specifies `-faligned-allocation` or `-fno-aligned-allocation`. * Instead of a warning Clang now generates a hard error when an aligned allocation or deallocation function is referenced but unavailable. Patch by Eric Fiselier. Reviewers: rsmith, vsapsai, erik.pilkington, ahatanak, dexonsmith Reviewed By: rsmith Subscribers: Quuxplusone, cfe-commits Differential Revision: https://reviews.llvm.org/D45015 Added: cfe/branches/release_70/test/Lexer/aligned-allocation.cpp - copied unchanged from r338934, cfe/trunk/test/Lexer/aligned-allocation.cpp Modified: cfe/branches/release_70/ (props changed) cfe/branches/release_70/include/clang/Basic/DiagnosticGroups.td cfe/branches/release_70/include/clang/Basic/DiagnosticSemaKinds.td cfe/branches/release_70/lib/Driver/ToolChains/Darwin.cpp cfe/branches/release_70/lib/Frontend/InitPreprocessor.cpp cfe/branches/release_70/lib/Sema/SemaExprCXX.cpp cfe/branches/release_70/test/Driver/unavailable_aligned_allocation.cpp Propchange: cfe/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 02:10:53 2018 @@ -1,4 +1,4 @@ /cfe/branches/type-system-rewrite:134693-134817 -/cfe/trunk:338552-338553,338602,338627,338749,338942,339074,339128,339170,339210,339264,339281,339317,339428,339494 +/cfe/trunk:338552-338553,338602,338627,338749,338934,338942,339074,339128,339170,339210,339264,339281,339317,339428,339494 /cfe/trunk/test:170344 /cfe/trunk/test/SemaTemplate:126920 Modified: cfe/branches/release_70/include/clang/Basic/DiagnosticGroups.td URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/include/clang/Basic/DiagnosticGroups.td?rev=339660&r1=339659&r2=339660&view=diff == --- cfe/branches/release_70/include/clang/Basic/DiagnosticGroups.td (original) +++ cfe/branches/release_70/include/clang/Basic/DiagnosticGroups.td Tue Aug 14 02:10:53 2018 @@ -364,7 +364,6 @@ def NonVirtualDtor : DiagGroup<"non-virt def NullPointerArithmetic : DiagGroup<"null-pointer-arithmetic">; def : DiagGroup<"effc++", [NonVirtualDtor]>; def OveralignedType : DiagGroup<"over-aligned">; -def AlignedAllocationUnavailable : DiagGroup<"aligned-allocation-unavailable">; def OldStyleCast : DiagGroup<"old-style-cast">; def : DiagGroup<"old-style-definition">; def OutOfLineDeclaration : DiagGroup<"out-of-line-declaration">; Modified: cfe/branches/release_70/include/clang/Basic/DiagnosticSemaKinds.td URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/include/clang/Basic/DiagnosticSemaKinds.td?rev=339660&r1=339659&r2=339660&view=diff == --- cfe/branches/release_70/include/clang/Basic/DiagnosticSemaKinds.td (original) +++ cfe/branches/release_70/include/clang/Basic/DiagnosticSemaKinds.td Tue Aug 14 02:10:53 2018 @@ -6465,12 +6465,12 @@ def warn_overaligned_type : Warning< "type %0 requires %1 bytes of alignment and the default allocator only " "guarantees %2 bytes">, InGroup, DefaultIgnore; -def warn_aligned_allocation_unavailable :Warning< +def err_aligned_allocation_unavailable : Error< "aligned %select{allocation|deallocation}0 function of type '%1' is only " - "available on %2 %3 or newer">, InGroup, DefaultError; + "available on %2 %3 or newer">; def note_silence_unligned_allocation_unavailable : Note< "if you supply your own aligned allocation functions, use " - "-Wno-aligned-allocation-unavailable to silence this diagnostic">; + "-faligned-allocation to silence this diagnostic">; def err_conditional_void_nonvoid : Error< "%select{left|right}1 operand to ? is void, but %select{right|left}1 operand " Modified: cfe/branches/release_70/lib/Driver/ToolChains/Darwin.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/lib/Driver/ToolChains/Darwin.cpp?rev=339660&r1=339659&r2=
[llvm-branch-commits] [libcxx] r339661 - Merging r339431:
Author: hans Date: Tue Aug 14 02:13:39 2018 New Revision: 339661 URL: http://llvm.org/viewvc/llvm-project?rev=339661&view=rev Log: Merging r339431: r339431 | ldionne | 2018-08-10 15:24:56 +0200 (Fri, 10 Aug 2018) | 16 lines [libc++] Enable aligned allocation based on feature test macro, irrespective of standard Summary: The current code enables aligned allocation functions when compiling in C++17 and later. This is a problem because aligned allocation functions might not be supported on the target platform, which leads to an error at link time. Since r338934, Clang knows not to define __cpp_aligned_new when it's not available on the target platform -- this commit takes advantage of that to only use aligned allocation functions when they are available. Reviewers: vsapsai, EricWF Subscribers: christof, dexonsmith, cfe-commits, EricWF, mclow.lists Differential Revision: https://reviews.llvm.org/D50344 Added: libcxx/branches/release_70/test/libcxx/memory/aligned_allocation_macro.pass.cpp - copied unchanged from r339431, libcxx/trunk/test/libcxx/memory/aligned_allocation_macro.pass.cpp Modified: libcxx/branches/release_70/ (props changed) libcxx/branches/release_70/include/__config libcxx/branches/release_70/include/new Propchange: libcxx/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 02:13:39 2018 @@ -1 +1,2 @@ /libcxx/branches/apple:136569-137939 +/libcxx/trunk:339431 Modified: libcxx/branches/release_70/include/__config URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_70/include/__config?rev=339661&r1=339660&r2=339661&view=diff == --- libcxx/branches/release_70/include/__config (original) +++ libcxx/branches/release_70/include/__config Tue Aug 14 02:13:39 2018 @@ -991,6 +991,11 @@ template struct __static_asse # endif #endif // defined(__APPLE__) +#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) && \ +!defined(_LIBCPP_BUILDING_LIBRARY) && \ +(!defined(__cpp_aligned_new) || __cpp_aligned_new < 201606) +# define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION +#endif #if defined(__APPLE__) || defined(__FreeBSD__) #define _LIBCPP_HAS_DEFAULTRUNELOCALE Modified: libcxx/branches/release_70/include/new URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_70/include/new?rev=339661&r1=339660&r2=339661&view=diff == --- libcxx/branches/release_70/include/new (original) +++ libcxx/branches/release_70/include/new Tue Aug 14 02:13:39 2018 @@ -108,13 +108,6 @@ void operator delete[](void* ptr, void* # define _LIBCPP_HAS_NO_SIZED_DEALLOCATION #endif -#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) && \ -(!(defined(_LIBCPP_BUILDING_LIBRARY) || _LIBCPP_STD_VER > 14 || \ -(defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606))) -# define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION -#endif - - #if !__has_builtin(__builtin_operator_new) || \ __has_builtin(__builtin_operator_new) < 201802L || \ defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || \ ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r339663 - Merging r339597:
Author: hans Date: Tue Aug 14 02:20:55 2018 New Revision: 339663 URL: http://llvm.org/viewvc/llvm-project?rev=339663&view=rev Log: Merging r339597: r339597 | erichkeane | 2018-08-13 20:33:20 +0200 (Mon, 13 Aug 2018) | 7 lines Enforce instantiation of template multiversion functions Multiversioned member functions inside of a template type were not properly being emitted. The solution to this is to simply ensure that their bodies are correctly evaluated/assigned during template instantiation. Modified: cfe/branches/release_70/ (props changed) cfe/branches/release_70/include/clang/AST/ASTContext.h cfe/branches/release_70/lib/AST/ASTContext.cpp cfe/branches/release_70/lib/Sema/SemaTemplateInstantiateDecl.cpp cfe/branches/release_70/test/CodeGenCXX/attr-target-mv-member-funcs.cpp Propchange: cfe/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 02:20:55 2018 @@ -1,4 +1,4 @@ /cfe/branches/type-system-rewrite:134693-134817 -/cfe/trunk:338552-338553,338602,338627,338749,338934,338942,339074,339128,339170,339210,339264,339281,339317,339428,339494 +/cfe/trunk:338552-338553,338602,338627,338749,338934,338942,339074,339128,339170,339210,339264,339281,339317,339428,339494,339597 /cfe/trunk/test:170344 /cfe/trunk/test/SemaTemplate:126920 Modified: cfe/branches/release_70/include/clang/AST/ASTContext.h URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/include/clang/AST/ASTContext.h?rev=339663&r1=339662&r2=339663&view=diff == --- cfe/branches/release_70/include/clang/AST/ASTContext.h (original) +++ cfe/branches/release_70/include/clang/AST/ASTContext.h Tue Aug 14 02:20:55 2018 @@ -2718,7 +2718,7 @@ public: /// predicate. void forEachMultiversionedFunctionVersion( const FunctionDecl *FD, - llvm::function_ref Pred) const; + llvm::function_ref Pred) const; const CXXConstructorDecl * getCopyConstructorForExceptionObject(CXXRecordDecl *RD); Modified: cfe/branches/release_70/lib/AST/ASTContext.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/lib/AST/ASTContext.cpp?rev=339663&r1=339662&r2=339663&view=diff == --- cfe/branches/release_70/lib/AST/ASTContext.cpp (original) +++ cfe/branches/release_70/lib/AST/ASTContext.cpp Tue Aug 14 02:20:55 2018 @@ -9811,7 +9811,7 @@ bool ASTContext::DeclMustBeEmitted(const void ASTContext::forEachMultiversionedFunctionVersion( const FunctionDecl *FD, -llvm::function_ref Pred) const { +llvm::function_ref Pred) const { assert(FD->isMultiVersion() && "Only valid for multiversioned functions"); llvm::SmallDenseSet SeenDecls; FD = FD->getCanonicalDecl(); Modified: cfe/branches/release_70/lib/Sema/SemaTemplateInstantiateDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=339663&r1=339662&r2=339663&view=diff == --- cfe/branches/release_70/lib/Sema/SemaTemplateInstantiateDecl.cpp (original) +++ cfe/branches/release_70/lib/Sema/SemaTemplateInstantiateDecl.cpp Tue Aug 14 02:20:55 2018 @@ -5192,10 +5192,20 @@ void Sema::PerformPendingInstantiations( if (FunctionDecl *Function = dyn_cast(Inst.first)) { bool DefinitionRequired = Function->getTemplateSpecializationKind() == TSK_ExplicitInstantiationDefinition; - InstantiateFunctionDefinition(/*FIXME:*/Inst.second, Function, true, -DefinitionRequired, true); - if (Function->isDefined()) -Function->setInstantiationIsPending(false); + if (Function->isMultiVersion()) { +getASTContext().forEachMultiversionedFunctionVersion( +Function, [this, Inst, DefinitionRequired](FunctionDecl *CurFD) { + InstantiateFunctionDefinition(/*FIXME:*/ Inst.second, CurFD, true, +DefinitionRequired, true); + if (CurFD->isDefined()) +CurFD->setInstantiationIsPending(false); +}); + } else { +InstantiateFunctionDefinition(/*FIXME:*/ Inst.second, Function, true, + DefinitionRequired, true); +if (Function->isDefined()) + Function->setInstantiationIsPending(false); + } continue; } Modified: cfe/branches/release_70/test/CodeGenCXX/attr-target-mv-member-funcs.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/test/CodeGenCXX/attr-target-mv-member-funcs.cpp?rev=339663&r1=339662&r2=339663&view=diff
[llvm-branch-commits] [llvm-branch] r339664 - Merging r339600:
Author: hans Date: Tue Aug 14 02:30:11 2018 New Revision: 339664 URL: http://llvm.org/viewvc/llvm-project?rev=339664&view=rev Log: Merging r339600: r339600 | scott.linder | 2018-08-13 20:44:21 +0200 (Mon, 13 Aug 2018) | 8 lines [CodeGen] Fix assert in SelectionDAG::computeKnownBits Fix SelectionDAG::computeKnownBits asserting when handling EXTRACT_SUBVECTOR when zero extending the demanded elements mask if it is already as long as the source vector. Differential Revision: https://reviews.llvm.org/D49574 Added: llvm/branches/release_70/test/CodeGen/AMDGPU/extract-subvector-equal-length.ll - copied unchanged from r339600, llvm/trunk/test/CodeGen/AMDGPU/extract-subvector-equal-length.ll Modified: llvm/branches/release_70/ (props changed) llvm/branches/release_70/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Propchange: llvm/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 02:30:11 2018 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339179,339184,339190,339225,339316,339319,339411,339492 +/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339179,339184,339190,339225,339316,339319,339411,339492,339600 Modified: llvm/branches/release_70/lib/CodeGen/SelectionDAG/SelectionDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/lib/CodeGen/SelectionDAG/SelectionDAG.cpp?rev=339664&r1=339663&r2=339664&view=diff == --- llvm/branches/release_70/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (original) +++ llvm/branches/release_70/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Tue Aug 14 02:30:11 2018 @@ -2374,7 +2374,7 @@ void SelectionDAG::computeKnownBits(SDVa if (SubIdx && SubIdx->getAPIntValue().ule(NumSrcElts - NumElts)) { // Offset the demanded elts by the subvector index. uint64_t Idx = SubIdx->getZExtValue(); - APInt DemandedSrc = DemandedElts.zext(NumSrcElts).shl(Idx); + APInt DemandedSrc = DemandedElts.zextOrSelf(NumSrcElts).shl(Idx); computeKnownBits(Src, Known, DemandedSrc, Depth + 1); } else { computeKnownBits(Src, Known, Depth + 1); @@ -3533,7 +3533,7 @@ unsigned SelectionDAG::ComputeNumSignBit if (SubIdx && SubIdx->getAPIntValue().ule(NumSrcElts - NumElts)) { // Offset the demanded elts by the subvector index. uint64_t Idx = SubIdx->getZExtValue(); - APInt DemandedSrc = DemandedElts.zext(NumSrcElts).shl(Idx); + APInt DemandedSrc = DemandedElts.zextOrSelf(NumSrcElts).shl(Idx); return ComputeNumSignBits(Src, DemandedSrc, Depth + 1); } return ComputeNumSignBits(Src, Depth + 1); ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r339698 - Merging r339636:
Author: rnk Date: Tue Aug 14 10:35:35 2018 New Revision: 339698 URL: http://llvm.org/viewvc/llvm-project?rev=339698&view=rev Log: Merging r339636: r339636 | rnk | 2018-08-13 18:24:35 -0700 (Mon, 13 Aug 2018) | 17 lines [BasicAA] Don't assume tail calls with byval don't alias allocas Summary: Calls marked 'tail' cannot read or write allocas from the current frame because the current frame might be destroyed by the time they run. However, a tail call may use an alloca with byval. Calling with byval copies the contents of the alloca into argument registers or stack slots, so there is no lifetime issue. Tail calls never modify allocas, so we can return just ModRefInfo::Ref. Fixes PR38466, a longstanding bug. Reviewers: hfinkel, nlewycky, gbiv, george.burgess.iv Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D50679 Added: llvm/branches/release_70/test/Analysis/BasicAA/tail-byval.ll - copied unchanged from r339636, llvm/trunk/test/Analysis/BasicAA/tail-byval.ll llvm/branches/release_70/test/Transforms/DeadStoreElimination/tail-byval.ll - copied unchanged from r339636, llvm/trunk/test/Transforms/DeadStoreElimination/tail-byval.ll Modified: llvm/branches/release_70/ (props changed) llvm/branches/release_70/lib/Analysis/BasicAliasAnalysis.cpp Propchange: llvm/branches/release_70/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 10:35:35 2018 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339179,339184,339190,339225,339316,339319,339411,339492,339600 +/llvm/trunk:155241,338552,338554,338569,338599,338610,338658,338665,338682,338703,338709,338716,338751,338762,338817,338902,338915,338968,339073,339179,339184,339190,339225,339316,339319,339411,339492,339600,339636 Modified: llvm/branches/release_70/lib/Analysis/BasicAliasAnalysis.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/lib/Analysis/BasicAliasAnalysis.cpp?rev=339698&r1=339697&r2=339698&view=diff == --- llvm/branches/release_70/lib/Analysis/BasicAliasAnalysis.cpp (original) +++ llvm/branches/release_70/lib/Analysis/BasicAliasAnalysis.cpp Tue Aug 14 10:35:35 2018 @@ -801,14 +801,15 @@ ModRefInfo BasicAAResult::getModRefInfo( const Value *Object = GetUnderlyingObject(Loc.Ptr, DL); - // If this is a tail call and Loc.Ptr points to a stack location, we know that - // the tail call cannot access or modify the local stack. - // We cannot exclude byval arguments here; these belong to the caller of - // the current function not to the current function, and a tail callee - // may reference them. + // Calls marked 'tail' cannot read or write allocas from the current frame + // because the current frame might be destroyed by the time they run. However, + // a tail call may use an alloca with byval. Calling with byval copies the + // contents of the alloca into argument registers or stack slots, so there is + // no lifetime issue. if (isa(Object)) if (const CallInst *CI = dyn_cast(CS.getInstruction())) - if (CI->isTailCall()) + if (CI->isTailCall() && + !CI->getAttributes().hasAttrSomewhere(Attribute::ByVal)) return ModRefInfo::NoModRef; // If the pointer is to a locally allocated object that does not escape, ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r339717 - [ReleaseNotes] Add release notes for Hexagon
Author: kparzysz Date: Tue Aug 14 12:40:56 2018 New Revision: 339717 URL: http://llvm.org/viewvc/llvm-project?rev=339717&view=rev Log: [ReleaseNotes] Add release notes for Hexagon Modified: llvm/branches/release_70/docs/ReleaseNotes.rst Modified: llvm/branches/release_70/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/docs/ReleaseNotes.rst?rev=339717&r1=339716&r2=339717&view=diff == --- llvm/branches/release_70/docs/ReleaseNotes.rst (original) +++ llvm/branches/release_70/docs/ReleaseNotes.rst Tue Aug 14 12:40:56 2018 @@ -172,6 +172,18 @@ Changes to the ARM Target deduce the instruction size, without having to specify it with e.g. ``.inst.w`` as before. +Changes to the Hexagon Target +- + +* Hexagon now supports auto-vectorization for HVX. It is disabled by default + and can be turned on with ``-fvectorize``. For auto-vectorization to take + effect, code genration for HVX needs to be enabled with ``-mhvx``. + The complete set of options should include ``-fvectorize``, ``-mhvx``, + and ``-mhvx-length={64b|128b}``. + +* The support for Hexagon ISA V4 is deprecated and will be removed in the + next release. + Changes to the MIPS Target -- ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r339718 - [ReleaseNotes] Fix a typo
Author: kparzysz Date: Tue Aug 14 12:42:19 2018 New Revision: 339718 URL: http://llvm.org/viewvc/llvm-project?rev=339718&view=rev Log: [ReleaseNotes] Fix a typo Modified: llvm/branches/release_70/docs/ReleaseNotes.rst Modified: llvm/branches/release_70/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/docs/ReleaseNotes.rst?rev=339718&r1=339717&r2=339718&view=diff == --- llvm/branches/release_70/docs/ReleaseNotes.rst (original) +++ llvm/branches/release_70/docs/ReleaseNotes.rst Tue Aug 14 12:42:19 2018 @@ -177,7 +177,7 @@ Changes to the Hexagon Target * Hexagon now supports auto-vectorization for HVX. It is disabled by default and can be turned on with ``-fvectorize``. For auto-vectorization to take - effect, code genration for HVX needs to be enabled with ``-mhvx``. + effect, code generation for HVX needs to be enabled with ``-mhvx``. The complete set of options should include ``-fvectorize``, ``-mhvx``, and ``-mhvx-length={64b|128b}``. ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits