platform/upstream/llvm.git
6 years ago[c++17] Visit class template explicit specializations just like all other class defin...
Richard Smith [Fri, 3 Nov 2017 01:26:01 +0000 (01:26 +0000)]
[c++17] Visit class template explicit specializations just like all other class definitions in codegen.

If an explicit specialization has a static data member, it may be a definition and we may need to register it for emission.

llvm-svn: 317296

6 years ago[LSR] Clarify a comment. NFC.
Vedant Kumar [Fri, 3 Nov 2017 01:01:28 +0000 (01:01 +0000)]
[LSR] Clarify a comment. NFC.

llvm-svn: 317295

6 years ago[analyzer] [NFC] very minor ExprEngineC refactoring
George Karpenkov [Fri, 3 Nov 2017 00:41:29 +0000 (00:41 +0000)]
[analyzer] [NFC] very minor ExprEngineC refactoring

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

llvm-svn: 317294

6 years ago[analyzer] do not crash on libcxx03 call_once implementation
George Karpenkov [Fri, 3 Nov 2017 00:36:03 +0000 (00:36 +0000)]
[analyzer] do not crash on libcxx03 call_once implementation

Addresses https://bugs.llvm.org/show_bug.cgi?id=35075, rdar://35230961

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

llvm-svn: 317293

6 years agoAvoid PLT for external calls when attribute nonlazybind is used.
Sriraman Tallam [Fri, 3 Nov 2017 00:10:19 +0000 (00:10 +0000)]
Avoid PLT for external calls when attribute nonlazybind is used.

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

llvm-svn: 317292

6 years agoReland "Add feature to determine if host architecture is 64-bit in llvm-lit"
Jake Ehrlich [Thu, 2 Nov 2017 23:45:51 +0000 (23:45 +0000)]
Reland "Add feature to determine if host architecture is 64-bit in llvm-lit"

A member of config was removed in this patch which resulted in errors I
didn't expect. Removing config.host_arch will take more work some I'm
readding that field.

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

llvm-svn: 317289

6 years ago[Verifier] Remove the -verify-debug-info cl::opt
Vedant Kumar [Thu, 2 Nov 2017 23:44:20 +0000 (23:44 +0000)]
[Verifier] Remove the -verify-debug-info cl::opt

This cl::opt has been dead for a while. It's no longer possible to run
the verifier without also verifying debug info.

llvm-svn: 317288

6 years ago[AArch64][RegisterBankInfo] Add mapping for G_FPEXT.
Quentin Colombet [Thu, 2 Nov 2017 23:38:19 +0000 (23:38 +0000)]
[AArch64][RegisterBankInfo] Add mapping for G_FPEXT.

This fixes http://llvm.org/PR32560. We were missing a description for
half floating point type and as a result were using the FPR 32 mapping.
Because of the size mismatch the generic code was complaining that the
default mapping is not appropriate. Fix the mapping description so that
the default mapping can be properly applied.

llvm-svn: 317287

6 years ago[AArch64][RegisterBankInfo] Add FPR16 support in value mapping.
Quentin Colombet [Thu, 2 Nov 2017 23:38:13 +0000 (23:38 +0000)]
[AArch64][RegisterBankInfo] Add FPR16 support in value mapping.

NFC.

llvm-svn: 317286

6 years agomir-canon: First commit.
Puyan Lotfi [Thu, 2 Nov 2017 23:37:32 +0000 (23:37 +0000)]
mir-canon: First commit.

mir-canon (MIRCanonicalizerPass) is a pass designed to reorder instructions and
rename operands so that two similar programs will diff more cleanly after being
run through mir-canon than they would otherwise. This project is still a work
in progress and there are ideas still being discussed for improving diff
quality.

M    include/llvm/InitializePasses.h
M    lib/CodeGen/CMakeLists.txt
M    lib/CodeGen/CodeGen.cpp
A    lib/CodeGen/MIRCanonicalizerPass.cpp

llvm-svn: 317285

6 years ago[llvm-objcopy] Fix bug in how segment alignment was being handled
Jake Ehrlich [Thu, 2 Nov 2017 23:24:04 +0000 (23:24 +0000)]
[llvm-objcopy] Fix bug in how segment alignment was being handled

Just aligning segment offsets to segment alignment is incorrect and also
wastes more space than is needed. The requirement is that p_offset ==
p_addr modulo p_align *not* that p_offset == 0 modulo p_align. Generally
speaking we've been using p_addr == 0 modulo p_align. In fact yaml2obj
can't even produce a valid situation which causes llvm-objcopy to
produce incorrect results because alignment and offset were both
inherited from the sections the program header covers. This change fixes
this bad behavior in llvm-objcopy.

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

llvm-svn: 317284

6 years ago[X86] Give AVX512VL instructions priority over their AVX equivalents.
Craig Topper [Thu, 2 Nov 2017 23:23:37 +0000 (23:23 +0000)]
[X86] Give AVX512VL instructions priority over their AVX equivalents.

I thought we had gotten all these priority bugs worked out, but I guess not.

llvm-svn: 317283

6 years agoIndVarSimplify: preserve debug information attached to widened PHI nodes.
Adrian Prantl [Thu, 2 Nov 2017 23:17:06 +0000 (23:17 +0000)]
IndVarSimplify: preserve debug information attached to widened PHI nodes.

This fixes PR35015.

https://bugs.llvm.org/show_bug.cgi?id=35015

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

llvm-svn: 317282

6 years agoAdd feature to determine if host architecture is 64-bit in llvm-lit
Jake Ehrlich [Thu, 2 Nov 2017 23:14:55 +0000 (23:14 +0000)]
Add feature to determine if host architecture is 64-bit in llvm-lit

I have a test that I'd like to add to llvm that demands using more than
32-bits worth of address space. This test can't be run on 32-bit systems
because they don't have enough address space. The host triple should be
used to determine this instead of config.host_arch because on Debian
systems config.host_arch is not correct. This change adds the
"host-arch-is-64bit" feature to allow tests to restrict themselves to
the 64-bit case.

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

llvm-svn: 317281

6 years agoAMDGPU: Fix warning discovered by r317266 [-Wunused-private-field]
Konstantin Zhuravlyov [Thu, 2 Nov 2017 22:35:22 +0000 (22:35 +0000)]
AMDGPU: Fix warning discovered by r317266 [-Wunused-private-field]

llvm-svn: 317280

6 years agoModular Codegen: Don't home always_inline functions
David Blaikie [Thu, 2 Nov 2017 22:28:50 +0000 (22:28 +0000)]
Modular Codegen: Don't home always_inline functions

Since they'll likely (not always - if the address is taken, etc) be
inlined away, even at -O0, separately provided weak definitions are
likely to be unused so skip all of that.

llvm-svn: 317279

6 years agoIrreducible loop metadata for more accurate block frequency under PGO.
Hiroshi Yamauchi [Thu, 2 Nov 2017 22:26:51 +0000 (22:26 +0000)]
Irreducible loop metadata for more accurate block frequency under PGO.

Summary:
Currently the block frequency analysis is an approximation for irreducible
loops.

The new irreducible loop metadata is used to annotate the irreducible loop
headers with their header weights based on the PGO profile (currently this is
approximated to be evenly weighted) and to help improve the accuracy of the
block frequency analysis for irreducible loops.

This patch is a basic support for this.

Reviewers: davidxl

Reviewed By: davidxl

Subscribers: mehdi_amini, llvm-commits, eraman

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

llvm-svn: 317278

6 years agoRemove getCategories mechanism of specifying test categories
Pavel Labath [Thu, 2 Nov 2017 22:13:09 +0000 (22:13 +0000)]
Remove getCategories mechanism of specifying test categories

Summary:
This mechanism was mostly redundant with the file-based .categories
mechanism, and it was interfering with it, as any test which implemented
a getCategories method would not inherit the filesystem categories.

This patch removes it. The existing categories are preserved either by
adding a .categories file, or using the @add_test_categories decorator.

Reviewers: jingham, clayborg, zturner

Subscribers: lldb-commits

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

llvm-svn: 317277

6 years agoRemove android watchpoint xfails
Pavel Labath [Thu, 2 Nov 2017 22:12:55 +0000 (22:12 +0000)]
Remove android watchpoint xfails

Now that the wathpoint tests have their own category, we can easily skip
them on devices which don't have watchpoint support. Therefore, we don't
need an android xfail on each of these tests.

llvm-svn: 317276

6 years ago[Hexagon] Prefer L2_loadrub_io over L4_loadrub_rr
Krzysztof Parzyszek [Thu, 2 Nov 2017 21:56:59 +0000 (21:56 +0000)]
[Hexagon] Prefer L2_loadrub_io over L4_loadrub_rr

If the offset is an immediate, avoid putting it in a register
to get Rs+Rt<<#0.

llvm-svn: 317275

6 years agoModular Codegen: Don't home/modularize static functions in headers
David Blaikie [Thu, 2 Nov 2017 21:55:40 +0000 (21:55 +0000)]
Modular Codegen: Don't home/modularize static functions in headers

Consistent with various workarounds in the backwards compatible modules
that allow static functions in headers to exist, be deduplicated to some
degree, and not generally fail right out of the gate... do the same with
modular codegen as there are enough cases (including in libstdc++ and in
LLVM itself - though I cleaned up the easy ones) that it's worth
supporting as a migration/backcompat step.

Simply create a separate, internal linkage function in each object that
needs it. If an available_externally/modularized function references a
static function, but the modularized function is eventually dropped and
not inlined, the static function will be dropped as unreferenced.

llvm-svn: 317274

6 years ago[Serialization] Fix some Clang-tidy modernize and Include What You Use warnings;...
Eugene Zelenko [Thu, 2 Nov 2017 21:45:30 +0000 (21:45 +0000)]
[Serialization] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

llvm-svn: 317273

6 years ago[tools] Add option to install binutils symlinks
Shoaib Meenai [Thu, 2 Nov 2017 21:43:32 +0000 (21:43 +0000)]
[tools] Add option to install binutils symlinks

The LLVM tools can be used as a replacement for binutils, in which case
it's convenient to create symlinks with the binutils names. Add support
for these symlinks in the build system. As with any other llvm tool
symlinks, the user can limit the installed symlinks by only adding the
desired ones to `LLVM_TOOLCHAIN_TOOLS`.

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

llvm-svn: 317272

6 years agoClean up comments in include/llvm-c/DebugInfo.h
Adrian Prantl [Thu, 2 Nov 2017 21:35:37 +0000 (21:35 +0000)]
Clean up comments in include/llvm-c/DebugInfo.h

Patch by Harlan Haskins!

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

llvm-svn: 317271

6 years agoFix some warnings found by ToT clang
Pavel Labath [Thu, 2 Nov 2017 21:35:26 +0000 (21:35 +0000)]
Fix some warnings found by ToT clang

These fall into two categories:
- unused variables
- (uint8_t *)NULL + X -- changed to reinterpret_cast(X)

llvm-svn: 317270

6 years ago[LoopPredication] Enable predication when latchCheckIV is wider than rangeCheck
Anna Thomas [Thu, 2 Nov 2017 21:21:02 +0000 (21:21 +0000)]
[LoopPredication] Enable predication when latchCheckIV is wider than rangeCheck

Summary:
This patch allows us to predicate range checks that have a type narrower than
the latch check type. We leverage SCEV analysis to identify a truncate for the
latchLimit and latchStart.
There is also safety checks in place which requires the start and limit to be
known at compile time. We require this to make sure that the SCEV truncate expr
for the IV corresponding to the latch does not cause us to lose information
about the IV range.
Added tests show the loop predication over range checks that are of various
types and are narrower than the latch type.
This enhancement has been in our downstream tree for a while.

Reviewers: apilipenko, sanjoy, mkazantsev

Subscribers: llvm-commits

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

llvm-svn: 317269

6 years agoAdd default calling convention support for regcall.
Erich Keane [Thu, 2 Nov 2017 21:08:00 +0000 (21:08 +0000)]
Add default calling convention support for regcall.

Added support for regcall as default calling convention. Also added code to
exclude main when applying default calling conventions.

Patch-By: eandrews
Differential Revision: https://reviews.llvm.org/D39210

llvm-svn: 317268

6 years agoAdd missing header guards.
Adrian Prantl [Thu, 2 Nov 2017 20:58:58 +0000 (20:58 +0000)]
Add missing header guards.

llvm-svn: 317267

6 years agoAMDGPU: Remove outdated fixme (it was already fixed)
Konstantin Zhuravlyov [Thu, 2 Nov 2017 20:48:06 +0000 (20:48 +0000)]
AMDGPU: Remove outdated fixme (it was already fixed)

llvm-svn: 317266

6 years ago[CodeGen] fix const-ness of builtin equivalents of <math.h> and <complex.h> functions...
Sanjay Patel [Thu, 2 Nov 2017 20:39:26 +0000 (20:39 +0000)]
[CodeGen] fix const-ness of builtin equivalents of <math.h> and <complex.h> functions that might set errno

This just makes const-ness of the builtins match const-ness of their lib function siblings.
We're deferring fixing some of these that are obviously wrong to follow-up patches.
Hopefully, the bugs are visible in the new test file (added at rL317220).

As the description in Builtins.def says: "e = const, but only when -fmath-errno=0".

This is step 2 of N to fix builtins and math calls as discussed in D39204.

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

llvm-svn: 317265

6 years ago[cmake] Remove policy conditionals
Shoaib Meenai [Thu, 2 Nov 2017 20:33:36 +0000 (20:33 +0000)]
[cmake] Remove policy conditionals

LLVM now requires a minimum of cmake 3.4.3, and all the policies
currently being set are present in that cmake version, so the
conditionals will always be true and are therefore unnecessary. The
movation is that the conditionals can give the false impression that the
policy settings are optional, whereas for example it's necessary to set
CMP0056 in order for `check_linker_flags` to operate correctly after
r316972. Inline the project version and language setting in the process.

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

llvm-svn: 317264

6 years agoFix llvm-dsymutil test in -DLLVM_ENABLE_THREADS=OFF mode
Hans Wennborg [Thu, 2 Nov 2017 20:22:03 +0000 (20:22 +0000)]
Fix llvm-dsymutil test in -DLLVM_ENABLE_THREADS=OFF mode

After r316999, tools/dsymutil/X86/alias.test started failing in builds
that have threading disabled.

llvm-svn: 317263

6 years ago[test] Move llvm-lib tests into tools/llvm-lib. NFC.
Martin Storsjo [Thu, 2 Nov 2017 20:05:20 +0000 (20:05 +0000)]
[test] Move llvm-lib tests into tools/llvm-lib. NFC.

Similarly to SVN r317189 for llvm-dlltool, these are probably
easier to find in a tools subdirectory with a name identical to
the tool, than in a toplevel directory with a different name.

This matches the move of LibDriver itself in SVN r302995.

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

llvm-svn: 317262

6 years agoUpdate release notes (check SVN commit-after-approval access)
Ben Hamilton [Thu, 2 Nov 2017 20:00:17 +0000 (20:00 +0000)]
Update release notes (check SVN commit-after-approval access)

Summary:
I was just granted commit-after-approval access to SVN,
and @clattner recommended I try a test commit.

So, this tweaks the release notes as a test.

Reviewers: hokein, alexfh

Reviewed By: hokein

Subscribers: Wizard

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

llvm-svn: 317261

6 years agotgamma: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:49:00 +0000 (19:49 +0000)]
tgamma: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317260

6 years agotanh: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:58 +0000 (19:48 +0000)]
tanh: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317259

6 years agotan: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:57 +0000 (19:48 +0000)]
tan: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317258

6 years agosqrt: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:55 +0000 (19:48 +0000)]
sqrt: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317257

6 years agosinpi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:53 +0000 (19:48 +0000)]
sinpi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317256

6 years agosinh: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:51 +0000 (19:48 +0000)]
sinh: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317255

6 years agosin: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:50 +0000 (19:48 +0000)]
sin: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317254

6 years agonative_log: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:48 +0000 (19:48 +0000)]
native_log: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317253

6 years agonative_log2: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:46 +0000 (19:48 +0000)]
native_log2: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317252

6 years agonative_log10: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:44 +0000 (19:48 +0000)]
native_log10: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317251

6 years agolog: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:43 +0000 (19:48 +0000)]
log: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317250

6 years agologb: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:41 +0000 (19:48 +0000)]
logb: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317249

6 years agolog2: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:39 +0000 (19:48 +0000)]
log2: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317248

6 years agolog1p: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:37 +0000 (19:48 +0000)]
log1p: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317247

6 years agolgamma: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:35 +0000 (19:48 +0000)]
lgamma: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317246

6 years agoexp2: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:33 +0000 (19:48 +0000)]
exp2: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317245

6 years agocospi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:31 +0000 (19:48 +0000)]
cospi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317244

6 years agocosh: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:30 +0000 (19:48 +0000)]
cosh: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317243

6 years agocos: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:27 +0000 (19:48 +0000)]
cos: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317242

6 years agocbrt: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:25 +0000 (19:48 +0000)]
cbrt: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317241

6 years agoatanpi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:23 +0000 (19:48 +0000)]
atanpi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317240

6 years agoatanh: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:22 +0000 (19:48 +0000)]
atanh: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317239

6 years agoatan: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:20 +0000 (19:48 +0000)]
atan: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317238

6 years agoasinpi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:18 +0000 (19:48 +0000)]
asinpi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317237

6 years agoasinh: Use unary_dec instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:16 +0000 (19:48 +0000)]
asinh: Use unary_dec instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317236

6 years agoasin: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:15 +0000 (19:48 +0000)]
asin: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317235

6 years agoacospi: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:13 +0000 (19:48 +0000)]
acospi: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317234

6 years agoacosh: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:11 +0000 (19:48 +0000)]
acosh: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317233

6 years agoacos: Use unary_decl instead of custom inc file
Jan Vesely [Thu, 2 Nov 2017 19:48:06 +0000 (19:48 +0000)]
acos: Use unary_decl instead of custom inc file

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 317232

6 years agorevert r317228: remove unused function from ObjCRuntime.h, NFC
Alex Lorenz [Thu, 2 Nov 2017 19:42:40 +0000 (19:42 +0000)]
revert r317228: remove unused function from ObjCRuntime.h, NFC

This function is actually used in LLDB

llvm-svn: 317231

6 years ago[X86] Simplify the pentium4 code in getHostCPUName to be based on feature flags....
Craig Topper [Thu, 2 Nov 2017 19:13:34 +0000 (19:13 +0000)]
[X86] Simplify the pentium4 code in getHostCPUName to be based on feature flags. Don't use 'x86-64' ever.

'x86-64' has started to reflect a sort of generic tuning flag for more modern 64-bit CPUs. We probably shouldn't be using it as the name of an unidentifiable pentium4. So use nocona for all 64-bit pentium4s instead.

llvm-svn: 317230

6 years ago[X86] Change getHostCPUName fallback code to not select 'x86-64' for unknown CPUs...
Craig Topper [Thu, 2 Nov 2017 19:13:32 +0000 (19:13 +0000)]
[X86] Change getHostCPUName fallback code to not select 'x86-64' for unknown CPUs in family 6 that has 64-bit support but not any newer SSE features. Use 'core2' instead

We know that's the earliest CPU with 64-bit support. x86-64 has taken on a role of representing a more modern 64-bit CPU so we probably shouldn't be using that when we can't identify things.

llvm-svn: 317229

6 years agoremove unused function from ObjCRuntime.h, NFC
Alex Lorenz [Thu, 2 Nov 2017 19:01:34 +0000 (19:01 +0000)]
remove unused function from ObjCRuntime.h, NFC

llvm-svn: 317228

6 years ago[OPENMP] Fix PR35152: Do not use getInvokeDest() function for EH checks.
Alexey Bataev [Thu, 2 Nov 2017 18:55:05 +0000 (18:55 +0000)]
[OPENMP] Fix PR35152: Do not use getInvokeDest() function for EH checks.

The compiler may crash under some conditions if the getInvokeDest() is
used, but later it is not used. Fixed this problem in OpenMP.

llvm-svn: 317227

6 years ago[dsymutil][doc] Improve wording in manpage and rename file.
Jonas Devlieghere [Thu, 2 Nov 2017 18:44:54 +0000 (18:44 +0000)]
[dsymutil][doc] Improve wording in manpage and rename file.

 - Improve wording
 - Rename llvm-dsymutil to dsymutil
 - Name -arch=<arch> argument

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

llvm-svn: 317226

6 years agoStrip off invariant.start because memory locations arent invariant
Anna Thomas [Thu, 2 Nov 2017 18:24:04 +0000 (18:24 +0000)]
Strip off invariant.start because memory locations arent invariant

The original change was reverted in rL317217 because of the failure in
the RS4GC testcase. I couldn't reproduce the failure on my local machine
(macbook) but could reproduce it on a linux box.

The failure was around removing the uses of invariant.start. The fix
here is to just RAUW undef (which was the first implementation in D39388).
This is perfectly valid IR as discussed in the review.

llvm-svn: 317225

6 years ago[refactor][selection] canonicalize selected string literal to objc
Alex Lorenz [Thu, 2 Nov 2017 18:05:48 +0000 (18:05 +0000)]
[refactor][selection] canonicalize selected string literal to objc
string literal when possible

llvm-svn: 317224

6 years agoFixed line length style issue.
Mitch Phillips [Thu, 2 Nov 2017 18:04:44 +0000 (18:04 +0000)]
Fixed line length style issue.

Reviewers: zturner

Subscribers: llvm-commits

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

llvm-svn: 317223

6 years ago[TargetParser][AArch64] Reorder enum to preserve 5.0.0 libLLVM ABI.
Chad Rosier [Thu, 2 Nov 2017 17:52:27 +0000 (17:52 +0000)]
[TargetParser][AArch64] Reorder enum to preserve 5.0.0 libLLVM ABI.

This is required for backporting r311659 to the 5.0.1 release.
PR35060

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

llvm-svn: 317222

6 years ago[dsymutil] Add a manpage for dsymutil
Jonas Devlieghere [Thu, 2 Nov 2017 17:12:34 +0000 (17:12 +0000)]
[dsymutil] Add a manpage for dsymutil

llvm-svn: 317221

6 years ago[CodeGen] add builtin attr tests to show errno-related diffs; NFC
Sanjay Patel [Thu, 2 Nov 2017 17:06:05 +0000 (17:06 +0000)]
[CodeGen] add builtin attr tests to show errno-related diffs; NFC

llvm-svn: 317220

6 years agoRun clang-format on lldb.cpp
Stephane Sezer [Thu, 2 Nov 2017 16:56:52 +0000 (16:56 +0000)]
Run clang-format on lldb.cpp

llvm-svn: 317219

6 years agoUse LLVM version string
Stephane Sezer [Thu, 2 Nov 2017 16:56:19 +0000 (16:56 +0000)]
Use LLVM version string

Summary:
macOS builds of LLDB use the bundle version from
`tools/driver/lldb-Info.plist`. That file hasn't been updated since the 4.0
release so the version we print provides no value. I also think that even if it
were up to date, that number has no meaning and displaying the version from the
LLVM tree is more valuable.

I know that Apple folks have some form of override for the clang version to
match the Xcode version, so it'd make sense for them to do the same for LLDB.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 317218

6 years agoRevert "[RS4GC] Strip off invariant.start because memory locations arent invariant"
Anna Thomas [Thu, 2 Nov 2017 16:45:51 +0000 (16:45 +0000)]
Revert "[RS4GC] Strip off invariant.start because memory locations arent invariant"

This reverts commit r317215, investigating the test failure.

llvm-svn: 317217

6 years agoFix comment typo
Jan Korous [Thu, 2 Nov 2017 16:37:00 +0000 (16:37 +0000)]
Fix comment typo

llvm-svn: 317216

6 years ago[RS4GC] Strip off invariant.start because memory locations arent invariant
Anna Thomas [Thu, 2 Nov 2017 16:23:31 +0000 (16:23 +0000)]
[RS4GC] Strip off invariant.start because memory locations arent invariant

Summary:
Invariant.start on memory locations has the property that the memory
location is unchanging. However, this is not true in the face of
rewriting statepoints for GC.
Teach RS4GC about removing invariant.start so that optimizations after
RS4GC does not incorrect sink a load from the memory location past a
statepoint.

Added test showcasing the issue.

Reviewers: reames, apilipenko, dneilson

Subscribers: llvm-commits

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

llvm-svn: 317215

6 years ago[libomptarget] Remove stale omp handle
Jonas Hahnfeld [Thu, 2 Nov 2017 15:59:51 +0000 (15:59 +0000)]
[libomptarget] Remove stale omp handle

This was never used in the upstream compiler and was responsible
for some problems with reductions in the clang-ykt fork.

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

llvm-svn: 317214

6 years agoRevert "[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass."
Clement Courbet [Thu, 2 Nov 2017 15:53:10 +0000 (15:53 +0000)]
Revert "[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass."

undefined reference to `llvm::TargetPassConfig::ID' on
clang-ppc64le-linux-multistage

This reverts commit eea333c33fa73ad225ef28607795984829f65688.

llvm-svn: 317213

6 years agoChange a bunch of comments from C++1z to C++17. NFC
Marshall Clow [Thu, 2 Nov 2017 15:03:25 +0000 (15:03 +0000)]
Change a bunch of comments from C++1z to C++17. NFC

llvm-svn: 317212

6 years ago[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass.
Clement Courbet [Thu, 2 Nov 2017 15:02:51 +0000 (15:02 +0000)]
[ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass.

Summary:
This is mostly a noop (most of the test diffs are renamed blocks).
There are a few temporary register renames (eax<->ecx) and a few blocks are
shuffled around.

See the discussion in PR33325 for more details.

Reviewers: spatel

Subscribers: mgorny

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

llvm-svn: 317211

6 years agoMark tests as unsupported in C++98 as well
Roger Ferrer Ibanez [Thu, 2 Nov 2017 15:01:43 +0000 (15:01 +0000)]
Mark tests as unsupported in C++98 as well

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

llvm-svn: 317210

6 years agoMark Endian as 'in progress'
Marshall Clow [Thu, 2 Nov 2017 14:53:08 +0000 (14:53 +0000)]
Mark Endian as 'in progress'

llvm-svn: 317209

6 years ago[OPENMP] Fix PR35156: Get correct thread id with windows exceptions.
Alexey Bataev [Thu, 2 Nov 2017 14:25:34 +0000 (14:25 +0000)]
[OPENMP] Fix PR35156: Get correct thread id with windows exceptions.

If the thread id is requested in windows mode within funclets, we may
generate incorrect function call that could lead to broken codegen.

llvm-svn: 317208

6 years ago[OpenMP] Extend "Avoid VLAs for reduction" optimization to VLAs as base
Jonas Hahnfeld [Thu, 2 Nov 2017 13:30:42 +0000 (13:30 +0000)]
[OpenMP] Extend "Avoid VLAs for reduction" optimization to VLAs as base

We can generate constant sized arrays whenever the array section has constant
length, even if the base expression itself is a VLA.

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

llvm-svn: 317207

6 years ago[X86] Fix bug in legalize vector types - Split large loads
Ayman Musa [Thu, 2 Nov 2017 13:07:06 +0000 (13:07 +0000)]
[X86] Fix bug in legalize vector types - Split large loads

When splitting a large load to smaller legally-typed loads, the last load should be padded to reach the size of the previous one so a CONCAT_VECTORS node could reunite them again.
The code currently pads the last load to reach the size of the first load (instead of the previous).

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

Change-Id: Ib60b55ed26ce901fabf68108daf52683fbd5013f
llvm-svn: 317206

6 years agoFix clang-format CLion integration bug.
Eric Liu [Thu, 2 Nov 2017 12:48:48 +0000 (12:48 +0000)]
Fix clang-format CLion integration bug.

CLion's Sax parser threw this error:

Failed to parse clang-format XML replacements. Input: <?xml version='1.0'?>
<replacements xml:space='preserve' incomplete_format='true' line=89>
[...]
[org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 66; Open quote is expected for attribute "line" associated with an  element type  "replacements".]

Patch by Justine Tunney (jart@google.com)!

llvm-svn: 317205

6 years ago[mips] Use register scavenging with MSA.
Simon Dardis [Thu, 2 Nov 2017 12:47:22 +0000 (12:47 +0000)]
[mips] Use register scavenging with MSA.

MSA stores and loads to the stack are more likely to require an
emergency GPR spill slot due to the smaller offsets available
with those instructions.

Handle this by overestimating the size of the stack by determining
the largest offset presuming that all callee save registers are
spilled and accounting of incoming arguments when determining
whether an emergency spill slot is required.

Reviewers: atanasyan

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

llvm-svn: 317204

6 years agoTemporary workaround for msan false positive.
Sam McCall [Thu, 2 Nov 2017 12:29:47 +0000 (12:29 +0000)]
Temporary workaround for msan false positive.

llvm-svn: 317203

6 years agoAdding test for extraxt sub vector load and store avx512
Michael Zuckerman [Thu, 2 Nov 2017 12:19:36 +0000 (12:19 +0000)]
Adding test for extraxt sub vector load and store avx512

Change-Id: Iefcb0ec6b6aa1b530ce5358081f02e6e522a8e50
llvm-svn: 317202

6 years agoAllow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call...
Yichao Yu [Thu, 2 Nov 2017 12:18:33 +0000 (12:18 +0000)]
Allow inaccessiblememonly and inaccessiblemem_or_argmemonly to be overwriten on call site with operand bundle

Summary:
Similar to argmemonly, readonly and readnone.

Fix PR35128

Reviewers: andrew.w.kaylor, chandlerc, hfinkel

Reviewed By: hfinkel

Subscribers: hfinkel, llvm-commits

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

llvm-svn: 317201

6 years agoFix typo in class annotation
Jan Korous [Thu, 2 Nov 2017 12:15:51 +0000 (12:15 +0000)]
Fix typo in class annotation

llvm-svn: 317200

6 years ago[AsmPrinterDwarf] Add support for .cfi_restore directive
Francis Visoiu Mistrih [Thu, 2 Nov 2017 12:00:58 +0000 (12:00 +0000)]
[AsmPrinterDwarf] Add support for .cfi_restore directive

As of today we only use .cfi_offset to specify the offset of a CSR, but
we never use .cfi_restore when the CSR is restored.

If we want to perform a more advanced type of shrink-wrapping, we need
to use .cfi_restore in order to switch the CFI state between blocks.

This patch only aims at adding support for the directive.

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

llvm-svn: 317199

6 years ago[SimplifyCFG] Discard speculated dbg intrinsics
Bjorn Pettersson [Thu, 2 Nov 2017 11:55:14 +0000 (11:55 +0000)]
[SimplifyCFG] Discard speculated dbg intrinsics

Summary:
SpeculativelyExecuteBB can flatten the CFG by doing
speculative execution followed by a select instruction.
When the speculatively executed BB contained dbg intrinsics
the result could be a little bit weird, since those dbg
intrinsics were inserted before the select in the flattened
CFG. So when single stepping in the debugger, printing the
value of the variable referenced in the dbg intrinsic, it
could happen that it looked like the variable had values
that never actually were assigned to the variable.

This patch simply discards all dbg intrinsics that were found
in the speculatively executed BB.

Reviewers: aprantl, chandlerc, craig.topper

Reviewed By: aprantl

Subscribers: llvm-commits

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

llvm-svn: 317198

6 years ago[ARM] and, or, xor and add with shl combine
Sam Parker [Thu, 2 Nov 2017 10:43:10 +0000 (10:43 +0000)]
[ARM] and, or, xor and add with shl combine

The generic dag combiner will fold:

(shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2)
(shl (or x, c1), c2) -> (or (shl x, c2), c1 << c2)

This can create constants which are too large to use as an immediate.
Many ALU operations are also able of performing the shl, so we can
unfold the transformation to prevent a mov imm instruction from being
generated.

Other patterns, such as b + ((a << 1) | 510), can also be simplified
in the same manner.

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

llvm-svn: 317197

6 years agoThe patch updates sched numbers for YMM AVX instrs such as VMOVx, VORx, VXOR, VPERMIL...
Andrew V. Tischenko [Thu, 2 Nov 2017 10:33:41 +0000 (10:33 +0000)]
The patch updates sched numbers for YMM AVX instrs such as VMOVx, VORx, VXOR, VPERMILx, VBROADCASTx, etc.
PR32857 should be closed.
Differential Revision: https://reviews.llvm.org/D39227

llvm-svn: 317196

6 years agoUpdate go bindings to use new functions from rL317135.
Sam McCall [Thu, 2 Nov 2017 10:22:26 +0000 (10:22 +0000)]
Update go bindings to use new functions from rL317135.

This fixes duplicate symbol problems.

llvm-svn: 317195