[llvm-branch-commits] [llvm-branch] r339646 - [ReleaseNotes] Mention various windows related changes in 7.0

2018-08-14 Thread Martin Storsjo via llvm-branch-commits
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

2018-08-14 Thread Martin Storsjo via llvm-branch-commits
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

2018-08-14 Thread Martin Storsjo via llvm-branch-commits
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:

2018-08-14 Thread Hans Wennborg via llvm-branch-commits
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:

2018-08-14 Thread Hans Wennborg via llvm-branch-commits
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:

2018-08-14 Thread Hans Wennborg via llvm-branch-commits
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:

2018-08-14 Thread Hans Wennborg via llvm-branch-commits
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:

2018-08-14 Thread Hans Wennborg via llvm-branch-commits
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:

2018-08-14 Thread Hans Wennborg via llvm-branch-commits
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:

2018-08-14 Thread Hans Wennborg via llvm-branch-commits
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:

2018-08-14 Thread Reid Kleckner via llvm-branch-commits
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

2018-08-14 Thread Krzysztof Parzyszek via llvm-branch-commits
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

2018-08-14 Thread Krzysztof Parzyszek via llvm-branch-commits
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