lldb.git
6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2' into... dwz
Jan Kratochvil [Sat, 17 Aug 2019 10:03:11 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2-debug

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink' into errors2-fixup...
Jan Kratochvil [Sat, 17 Aug 2019 10:03:10 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test' into errors2-fixup-scoped...
Jan Kratochvil [Sat, 17 Aug 2019 10:03:10 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar' into errors2-fixup-scoped-dwz...
Jan Kratochvil [Sat, 17 Aug 2019 10:03:09 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar' into errors2-fixup-scoped-dwz-dwo-globalvar-test

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo' into errors2-fixup-scoped-dwz-dwo-globalvar
Jan Kratochvil [Sat, 17 Aug 2019 10:03:08 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo' into errors2-fixup-scoped-dwz-dwo-globalvar

6 days agoMerge branch 'errors2-fixup-scoped-dwz' into errors2-fixup-scoped-dwz-dwo
Jan Kratochvil [Sat, 17 Aug 2019 10:03:08 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup-scoped-dwz' into errors2-fixup-scoped-dwz-dwo

6 days agoMerge branch 'errors2-fixup-scoped' into errors2-fixup-scoped-dwz
Jan Kratochvil [Sat, 17 Aug 2019 10:03:07 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup-scoped' into errors2-fixup-scoped-dwz

6 days agoMerge branch 'errors2-fixup' into errors2-fixup-scoped
Jan Kratochvil [Sat, 17 Aug 2019 10:03:06 +0000 (12:03 +0200)]
Merge branch 'errors2-fixup' into errors2-fixup-scoped

6 days agoMerge branch 'errors2' into errors2-fixup
Jan Kratochvil [Sat, 17 Aug 2019 10:03:06 +0000 (12:03 +0200)]
Merge branch 'errors2' into errors2-fixup

6 days agoMerge remote-tracking branch 'origin/master' into errors2
Jan Kratochvil [Sat, 17 Aug 2019 10:03:04 +0000 (12:03 +0200)]
Merge remote-tracking branch 'origin/master' into errors2

6 days agoRevert Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta...
Paul Walker [Sat, 17 Aug 2019 09:22:36 +0000 (09:22 +0000)]
Revert Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instructions.

This reverts r369132 (git commit 19301d75f086caae1a495d267f5d0264b225942d)

llvm-svn: 369186

6 days agoRevert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instruc...
Paul Walker [Sat, 17 Aug 2019 09:22:28 +0000 (09:22 +0000)]
Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instructions.

This reverts r369133 (git commit 2632c677f85cba1ac2aef5d68aaf8af0f5b3c944)

llvm-svn: 369185

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2' into...
Jan Kratochvil [Sat, 17 Aug 2019 08:00:56 +0000 (10:00 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2-debug

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink' into errors2-fixup...
Jan Kratochvil [Sat, 17 Aug 2019 08:00:56 +0000 (10:00 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test' into errors2-fixup-scoped...
Jan Kratochvil [Sat, 17 Aug 2019 08:00:55 +0000 (10:00 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar' into errors2-fixup-scoped-dwz...
Jan Kratochvil [Sat, 17 Aug 2019 08:00:54 +0000 (10:00 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar' into errors2-fixup-scoped-dwz-dwo-globalvar-test

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo' into errors2-fixup-scoped-dwz-dwo-globalvar
Jan Kratochvil [Sat, 17 Aug 2019 08:00:53 +0000 (10:00 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo' into errors2-fixup-scoped-dwz-dwo-globalvar

6 days ago(no commit message)
Jan Kratochvil [Sat, 17 Aug 2019 07:58:07 +0000 (09:58 +0200)]

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2' into...
Jan Kratochvil [Sat, 17 Aug 2019 07:38:49 +0000 (09:38 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2-debug

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink' into errors2-fixup...
Jan Kratochvil [Sat, 17 Aug 2019 07:38:47 +0000 (09:38 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink-noerrors2

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test' into errors2-fixup-scoped...
Jan Kratochvil [Sat, 17 Aug 2019 07:38:45 +0000 (09:38 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar-test' into errors2-fixup-scoped-dwz-dwo-globalvar-test-symlink

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo-globalvar' into errors2-fixup-scoped-dwz...
Jan Kratochvil [Sat, 17 Aug 2019 07:38:43 +0000 (09:38 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo-globalvar' into errors2-fixup-scoped-dwz-dwo-globalvar-test

6 days agoMerge branch 'errors2-fixup-scoped-dwz-dwo' into errors2-fixup-scoped-dwz-dwo-globalvar
Jan Kratochvil [Sat, 17 Aug 2019 07:38:41 +0000 (09:38 +0200)]
Merge branch 'errors2-fixup-scoped-dwz-dwo' into errors2-fixup-scoped-dwz-dwo-globalvar

6 days agoMerge branch 'errors2-fixup-scoped-dwz' into errors2-fixup-scoped-dwz-dwo
Jan Kratochvil [Sat, 17 Aug 2019 07:38:29 +0000 (09:38 +0200)]
Merge branch 'errors2-fixup-scoped-dwz' into errors2-fixup-scoped-dwz-dwo

6 days ago(no commit message)
Jan Kratochvil [Sat, 17 Aug 2019 07:37:30 +0000 (09:37 +0200)]

6 days agoMerge branch 'errors2-fixup-scoped' into errors2-fixup-scoped-dwz
Jan Kratochvil [Sat, 17 Aug 2019 07:37:10 +0000 (09:37 +0200)]
Merge branch 'errors2-fixup-scoped' into errors2-fixup-scoped-dwz

6 days agoMerge branch 'errors2-fixup' into errors2-fixup-scoped
Jan Kratochvil [Sat, 17 Aug 2019 07:37:08 +0000 (09:37 +0200)]
Merge branch 'errors2-fixup' into errors2-fixup-scoped

6 days agoMerge branch 'errors2' into errors2-fixup
Jan Kratochvil [Sat, 17 Aug 2019 07:37:05 +0000 (09:37 +0200)]
Merge branch 'errors2' into errors2-fixup

6 days agoMerge remote-tracking branch 'origin/master' into errors2
Jan Kratochvil [Sat, 17 Aug 2019 07:37:03 +0000 (09:37 +0200)]
Merge remote-tracking branch 'origin/master' into errors2

6 days ago[ELF][PPC] Fix getRelExpr for R_PPC64_REL16_HI
Fangrui Song [Sat, 17 Aug 2019 06:28:03 +0000 (06:28 +0000)]
[ELF][PPC] Fix getRelExpr for R_PPC64_REL16_HI

Fixes https://github.com/ClangBuiltLinux/linux/issues/640

R_PPC64_REL16_HI was incorrectly computed as an R_ABS relocation.
rLLD368964 made it a linker failure. Change it to use R_PC to fix the
failures.

Add ppc64-reloc-rel.s for these R_PPC64_REL* tests.

llvm-svn: 369184

6 days ago[X86] Support -mlong-double-80
Troy A. Johnson [Sat, 17 Aug 2019 04:20:24 +0000 (04:20 +0000)]
[X86] Support -mlong-double-80

Add an option group for all of the -mlong-double-* options and make
-mlong-double-80 restore the default long double behavior for X86.  The
motivations are that GNU accepts the -mlong-double-80 option and that complex
Makefiles often need a way of undoing earlier options. Prior to this commit, if
one chooses 64-bit or 128-bit long double for X86, there is no way to undo that
choice and restore the 80-bit behavior.

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

llvm-svn: 369183

6 days ago[clang-doc] Fix casting not working in gcc 5.4.0
Diego Astiazaran [Sat, 17 Aug 2019 01:45:03 +0000 (01:45 +0000)]
[clang-doc] Fix casting not working in gcc 5.4.0

An implicit cast of std::string to llvm::SmallString<> was breaking GCC 5.4.0 builder.
A pair using llvm::SmallString<> now uses std::string.

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

llvm-svn: 369182

6 days ago[MemorySSA] Loop passes should mark MSSA preserved when available.
Alina Sbirlea [Sat, 17 Aug 2019 01:02:12 +0000 (01:02 +0000)]
[MemorySSA] Loop passes should mark MSSA preserved when available.

This patch applies only to the new pass manager.
Currently, when MSSA Analysis is available, and pass to each loop pass, it will be preserved by that loop pass.
Hence, mark the analysis preserved based on that condition, vs the current `EnableMSSALoopDependency`. This leaves the global flag to affect only the entry point in the loop pass manager (in FunctionToLoopPassAdaptor).

llvm-svn: 369181

6 days ago[Fuchsia] Create the VMO during initialization, not during exit
Petr Hosek [Sat, 17 Aug 2019 00:54:22 +0000 (00:54 +0000)]
[Fuchsia] Create the VMO during initialization, not during exit

We want to avoid doing expensive work during atexit since the process
might be terminated before we can publish the VMO and write out the
symbolizer markup, so move the VMO creation to the initialization
phase and only write data during the atexit phase.

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

llvm-svn: 369180

6 days agoSimplify code (NFC).
Adrian Prantl [Sat, 17 Aug 2019 00:38:58 +0000 (00:38 +0000)]
Simplify code (NFC).

llvm-svn: 369179

6 days ago[llvm-readobj] Unwrap the value first to avoid the error
Petr Hosek [Sat, 17 Aug 2019 00:07:26 +0000 (00:07 +0000)]
[llvm-readobj] Unwrap the value first to avoid the error

This addresses the issue introduced in r369169, we need to unwrap
the value first before we can check whether it's empty. This also
swaps the two branches to put the common path first which should
be NFC.

llvm-svn: 369177

6 days agoAdd LLDB dataformatters for llvm::StringRef and lldb_private::ConstString
Adrian Prantl [Fri, 16 Aug 2019 23:47:57 +0000 (23:47 +0000)]
Add LLDB dataformatters for llvm::StringRef and lldb_private::ConstString

These data formatters make the string value appear in Xcode's
variables view (and on the command line) without having to expand the
data structure.

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

llvm-svn: 369175

6 days agoRevert r367891 - "[InstCombine] combine mul+shl separated by zext"
Sanjay Patel [Fri, 16 Aug 2019 23:36:28 +0000 (23:36 +0000)]
Revert r367891 - "[InstCombine] combine mul+shl separated by zext"

This reverts commit 5dbb90bfe14ace30224239cac7c61a1422fa5144.

As noted in the post-commit thread for r367891, this can create
a multiply that is lowered to a libcall that may not exist.

We need to improve the backend decomposition for integer multiply
before trying to re-land this (if it's still worthwhile after
doing the backend work).

llvm-svn: 369174

6 days agoReland "[ARM] push LR before __gnu_mcount_nc"
Jian Cai [Fri, 16 Aug 2019 23:30:16 +0000 (23:30 +0000)]
Reland "[ARM] push LR before __gnu_mcount_nc"

This relands r369147 with fixes to unit tests.

https://reviews.llvm.org/D65019

llvm-svn: 369173

6 days ago[AArch64][GlobalISel] Fix an assertion during G_UNMERGE selection for s128 types.
Amara Emerson [Fri, 16 Aug 2019 23:23:40 +0000 (23:23 +0000)]
[AArch64][GlobalISel] Fix an assertion during G_UNMERGE selection for s128 types.

llvm-svn: 369172

6 days ago[ORC] Re-introduce self-dependence accidentally dropped from a unit test.
Lang Hames [Fri, 16 Aug 2019 23:20:54 +0000 (23:20 +0000)]
[ORC] Re-introduce self-dependence accidentally dropped from a unit test.

llvm-svn: 369171

6 days agoRevert "[X86] Support -mlong-double-80"
Troy A. Johnson [Fri, 16 Aug 2019 23:18:22 +0000 (23:18 +0000)]
Revert "[X86] Support -mlong-double-80"

This reverts commit 250aafa2c4a1bc2395edfe8d4365545bbe56fffe.
Caused buildbot failures -- still investigating.

llvm-svn: 369170

6 days ago[llvm-readobj] Fallback to PT_NOTE if file doesn't have sections
Petr Hosek [Fri, 16 Aug 2019 23:15:40 +0000 (23:15 +0000)]
[llvm-readobj] Fallback to PT_NOTE if file doesn't have sections

This is useful when trying to read notes from stripped files and matches
the behavior of GNU readelf and eu-readelf.

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

llvm-svn: 369169

6 days ago[CodeGenPrepare] Fix use-after-free
Sanjay Patel [Fri, 16 Aug 2019 23:10:34 +0000 (23:10 +0000)]
[CodeGenPrepare] Fix use-after-free

If OptimizeExtractBits() encountered a shift instruction with no operands at all,
it would erase the instruction, but still return false.

This previously didn’t matter because its caller would always return after
processing the instruction, but https://reviews.llvm.org/D63233 changed the
function’s caller to fall through if it returned false, which would then cause
a use-after-free detectable by ASAN.

This change makes OptimizeExtractBits return true if it removes a shift
instruction with no users, terminating processing of the instruction.

Patch by: @brentdax (Brent Royal-Gordon)

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

llvm-svn: 369168

6 days agoRevert [X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using...
Jordan Rupprecht [Fri, 16 Aug 2019 23:08:56 +0000 (23:08 +0000)]
Revert [X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using DemandedElts mask (reapplied)

This reverts r368662 (git commit 1a8d790cf5f89c1df718844f13e934e39bef6ef5)

The compile-time regression repro is in https://bugs.llvm.org/show_bug.cgi?id=43024

llvm-svn: 369167

6 days ago[InstCombine][NFC] reuse-constant-from-select-in-icmp.ll - check branch_weights too
Roman Lebedev [Fri, 16 Aug 2019 23:06:37 +0000 (23:06 +0000)]
[InstCombine][NFC] reuse-constant-from-select-in-icmp.ll - check branch_weights too

llvm-svn: 369166

6 days agoRevert "[TSan] Don't guard #include <xpc/xpc.h>"
Julian Lettner [Fri, 16 Aug 2019 22:58:13 +0000 (22:58 +0000)]
Revert "[TSan] Don't guard #include <xpc/xpc.h>"

This reverts commit 8191585b36eb4963002cce43fb2e79e7fb05c3d6.

llvm-svn: 369165

6 days ago[TSan] Add interceptors for os_unfair_lock
Julian Lettner [Fri, 16 Aug 2019 22:41:25 +0000 (22:41 +0000)]
[TSan] Add interceptors for os_unfair_lock

llvm-svn: 369164

6 days ago[InstCombine][NFC] Revisit tests in reuse-constant-from-select-in-icmp.ll
Roman Lebedev [Fri, 16 Aug 2019 22:40:06 +0000 (22:40 +0000)]
[InstCombine][NFC] Revisit tests in reuse-constant-from-select-in-icmp.ll

llvm-svn: 369163

6 days ago[ARM] Preserve liveness in ARMConstantIslands.
Eli Friedman [Fri, 16 Aug 2019 22:20:14 +0000 (22:20 +0000)]
[ARM] Preserve liveness in ARMConstantIslands.

We currently don't use liveness information after this point, but it can
be useful to catch bugs using -verify-machineinstrs, and optimizations
could potentially use this information in the future.

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

llvm-svn: 369162

6 days ago[doc] Fix some minor formatting issues.
Richard Smith [Fri, 16 Aug 2019 22:08:39 +0000 (22:08 +0000)]
[doc] Fix some minor formatting issues.

llvm-svn: 369161

6 days ago[Attributor] Fix: Do not partially resolve returned calls.
Johannes Doerfert [Fri, 16 Aug 2019 21:59:52 +0000 (21:59 +0000)]
[Attributor] Fix: Do not partially resolve returned calls.

By partially resolving returned calls we did not record that they were
not fully resolved which caused odd behavior down the line. We could
also end up with some, but not all, returned values of the callee in the
returned values map of the caller, another odd behavior we want to
avoid.

llvm-svn: 369160

6 days ago[Attributor] Fix: Make sure we set the changed flag
Johannes Doerfert [Fri, 16 Aug 2019 21:55:01 +0000 (21:55 +0000)]
[Attributor] Fix: Make sure we set the changed flag

The flag was updated *before* we actually run the visitor callback so we
might miss updates.

llvm-svn: 369159

6 days ago[CaptureTracking] Allow null to be in either icmp operand
Johannes Doerfert [Fri, 16 Aug 2019 21:53:49 +0000 (21:53 +0000)]
[CaptureTracking] Allow null to be in either icmp operand

Summary:
Before we required the comparison against null to be "canonical", hence
null to be operand #1. This patch allows null to be in either operand,
similar to the handling of loaded globals that follows.

Reviewers: sanjoy, hfinkel, aykevl, sstefan1, uenoku

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

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

llvm-svn: 369158

6 days ago[clang-format] Fix the bug that joins template closer and > or >>
Owen Pan [Fri, 16 Aug 2019 21:49:17 +0000 (21:49 +0000)]
[clang-format] Fix the bug that joins template closer and > or >>

Also fixes a buggy test case.

See PR42404

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

llvm-svn: 369157

6 days ago[CodeGenPrepare] fix RUN line settings
Sanjay Patel [Fri, 16 Aug 2019 21:37:49 +0000 (21:37 +0000)]
[CodeGenPrepare] fix RUN line settings

I'm not sure if this was running as expected with a broken triple.

llvm-svn: 369156

6 days ago[Attributor] Add all missing attribute definitions/symbols
Johannes Doerfert [Fri, 16 Aug 2019 21:31:11 +0000 (21:31 +0000)]
[Attributor] Add all missing attribute definitions/symbols

As a preparation to "on-demand" abstract attribute generation we need
implementations for all attributes (as they can be queried and then
created on-demand where we now fail to find one).

Reviewers: uenoku, sstefan1

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

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

llvm-svn: 369155

6 days ago[RWMutex] Simplify availability check
Jonas Devlieghere [Fri, 16 Aug 2019 21:25:40 +0000 (21:25 +0000)]
[RWMutex] Simplify availability check

Check for the actual version number for the scenarios where the macOS
version isn't available (__MAC_10_12).

llvm-svn: 369154

6 days ago[Utility] Reimplement RegularExpression on top of llvm::Regex
Jonas Devlieghere [Fri, 16 Aug 2019 21:25:36 +0000 (21:25 +0000)]
[Utility] Reimplement RegularExpression on top of llvm::Regex

Originally I wanted to remove the RegularExpression class in Utility and
replace it with llvm::Regex. However, during that transition I noticed
that there are several places where need the regular expression string.
So instead I propose to keep the RegularExpression class and make it a
thin wrapper around llvm::Regex.

This patch also removes the workaround for empty regular expressions.
The result is that we are now (more or less) POSIX conformant.

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

llvm-svn: 369153

6 days ago[X86] Support -mlong-double-80
Troy A. Johnson [Fri, 16 Aug 2019 21:00:22 +0000 (21:00 +0000)]
[X86] Support -mlong-double-80

Add an option group for all of the -mlong-double-* options and make
-mlong-double-80 restore the default long double behavior for X86.  The
motivations are that GNU accepts the -mlong-double-80 option and that complex
Makefiles often need a way of undoing earlier options. Prior to this commit, if
one chooses 64-bit or 128-bit long double for X86, there is no way to undo that
choice and restore the 80-bit behavior.

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

llvm-svn: 369152

6 days ago[X86] Use Register/MCRegister in more places in X86
Craig Topper [Fri, 16 Aug 2019 20:50:23 +0000 (20:50 +0000)]
[X86] Use Register/MCRegister in more places in X86

This was a quick pass through some obvious places. I haven't tried the clang-tidy check.

I also replaced the zeroes in getX86SubSuperRegister with X86::NoRegister which is the real sentinel name.

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

llvm-svn: 369151

6 days ago[TSan] Don't guard #include <xpc/xpc.h>
Julian Lettner [Fri, 16 Aug 2019 20:43:09 +0000 (20:43 +0000)]
[TSan] Don't guard #include <xpc/xpc.h>

The xpc_connection_* APIs that we are intercepting are available
starting at macOS 10.7. This is old enough so that we don't need to
guard them.

llvm-svn: 369150

6 days agoRevert "[ARM] push LR before __gnu_mcount_nc"
Jian Cai [Fri, 16 Aug 2019 20:40:21 +0000 (20:40 +0000)]
Revert "[ARM] push LR before __gnu_mcount_nc"

This reverts commit f4cf3b959333f62b7a7b2d7771f7010c9d8da388.

llvm-svn: 369149

6 days ago[Test Commit] Fix typo in diagtool.rst
Troy A. Johnson [Fri, 16 Aug 2019 20:26:48 +0000 (20:26 +0000)]
[Test Commit] Fix typo in diagtool.rst

Test commit after obtaining commit access.

llvm-svn: 369148

6 days ago[ARM] push LR before __gnu_mcount_nc
Jian Cai [Fri, 16 Aug 2019 20:21:08 +0000 (20:21 +0000)]
[ARM] push LR before __gnu_mcount_nc

Push LR register before calling __gnu_mcount_nc as it expects the value of LR register to be the top value of
the stack on ARM32.

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

llvm-svn: 369147

6 days ago[OPENMP5.0]Diagnose global variables in lambda not marked as declare
Alexey Bataev [Fri, 16 Aug 2019 20:15:02 +0000 (20:15 +0000)]
[OPENMP5.0]Diagnose global variables in lambda not marked as declare
target.

According to OpenMP 5.0, if a lambda declaration and definition appears between a declare target directive and the matching end declare target directive, all variables that are captured by the lambda expression must also appear in a to clause.

llvm-svn: 369146

6 days agoStop abusing SuppressAllDiagnostics when speculatively determining
Richard Smith [Fri, 16 Aug 2019 19:53:22 +0000 (19:53 +0000)]
Stop abusing SuppressAllDiagnostics when speculatively determining
whether an expression would be valid during error recovery.

llvm-svn: 369145

6 days ago[Attributor] Towards a more structured deduction pattern
Johannes Doerfert [Fri, 16 Aug 2019 19:51:23 +0000 (19:51 +0000)]
[Attributor] Towards a more structured deduction pattern

Summary:
This is the first commit aiming to structure the attribute deduction.
The base idea is that we have default propagation patterns as listed
below on top of which we can add specific, e.g., context sensitive,
logic.

Deduction patterns used in this patch:
  - argument states are determined from call site argument states,
    see AAAlignArgument and AAArgumentFromCallSiteArguments.
  - call site argument states are determined as if they were floating
    values, see AAAlignCallSiteArgument and AAAlignFloating.
  - floating value states are determined by traversing the def-use chain
    and combining the states determined for the leaves, see
    AAAlignFloating and genericValueTraversal.
  - call site return states are determined from function return states,
    see AAAlignCallSiteReturned and AACallSiteReturnedFromReturned.
  - function return states are determined from returned value states,
    see AAAlignReturned and AAReturnedFromReturnedValues.

Through this strategy all logic for alignment is concentrated in the
AAAlignFloating::updateImpl method.

Note: This commit works on its own but is part of a larger change that
involves "on-demand" creation of abstract attributes that will
participate in the fixpoint iteration. Without this part, we sometimes
do not have an AAAlign abstract attribute to query, loosing information
we determined before. All tests have appropriate FIXMEs and the
information will be recovered once we added all parts.

Reviewers: sstefan1, uenoku

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

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

llvm-svn: 369144

6 days ago[Attributor][NFC] Introduce aliases for call site attributes
Johannes Doerfert [Fri, 16 Aug 2019 19:49:00 +0000 (19:49 +0000)]
[Attributor][NFC] Introduce aliases for call site attributes

Until we have call site specific liveness and/or value information there
is no need to do call site specific deduction. Though, we need the
symbols in follow up patches that make Attributor::getAAFor return a
reference.

llvm-svn: 369143

6 days ago[Attributor] Introduce initialize calls and move code to keep attributes concise
Johannes Doerfert [Fri, 16 Aug 2019 19:36:17 +0000 (19:36 +0000)]
[Attributor] Introduce initialize calls and move code to keep attributes concise

Summary:
This patch should not change the behavior except that the added
initialize methods might indicate an optimistic fixpoint earlier. The
code movement is done to keep the attribute definitions in a single
block where it makes sense. No functional changes intended there.

Reviewers: uenoku, sstefan1

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

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

llvm-svn: 369142

6 days ago[ORC] Remove some stray debugging output accidentally left in r368707
Lang Hames [Fri, 16 Aug 2019 19:33:37 +0000 (19:33 +0000)]
[ORC] Remove some stray debugging output accidentally left in r368707

llvm-svn: 369141

6 days ago[InstCombine] canonicalize a scalar-select-of-vectors to vector select
Sanjay Patel [Fri, 16 Aug 2019 18:51:30 +0000 (18:51 +0000)]
[InstCombine] canonicalize a scalar-select-of-vectors to vector select

This pattern may arise more frequently with an enhancement to SLP vectorization suggested in PR42755:
https://bugs.llvm.org/show_bug.cgi?id=42755
...but we should handle this pattern to make things easier for the backend either way.

For all in-tree targets that I looked at, codegen for typical vector sizes looks better when we change
to a vector select, so this is safe to do without a cost model (in other words, as a target-independent
canonicalization).

For example, if the condition of the select is a scalar, we end up with something like this on x86:

vpcmpgtd %xmm0, %xmm1, %xmm0
vpextrb $12, %xmm0, %eax
testb $1, %al
jne LBB0_2
  ## %bb.1:
vmovaps %xmm3, %xmm2
  LBB0_2:
vmovaps %xmm2, %xmm0

Rather than the splat-condition variant:

vpcmpgtd %xmm0, %xmm1, %xmm0
vpshufd $255, %xmm0, %xmm0      ## xmm0 = xmm0[3,3,3,3]
vblendvps %xmm0, %xmm2, %xmm3, %xmm0

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

llvm-svn: 369140

6 days ago[clang-doc] Redesign of generated HTML files
Diego Astiazaran [Fri, 16 Aug 2019 18:38:11 +0000 (18:38 +0000)]
[clang-doc] Redesign of generated HTML files

The new design includes a header (contains the project name), a main section, and a footer.
The main section is divided into three subsections. Left, middle, right. The left section contains the general index, the middle contains the info's data, and the right contains the index for the info's content.
The CSS has been updated.
A flag --project-name is added.
The Attributes attribute of the TagNode struct is now a vector of pairs because these attributes should be rendered in the insertion order.
The functions (cpp and js) that converts an Index tree structure into HTML were slightly modified; the first ul tag created is now a ol tag. The inner lists are still ul.

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

llvm-svn: 369139

6 days agoEscape % in printf format string.
Evgeniy Stepanov [Fri, 16 Aug 2019 18:23:54 +0000 (18:23 +0000)]
Escape % in printf format string.

Fixes branch-relax-block-size.mir on the ASan builder.

llvm-svn: 369138

6 days ago[WebAssembly] Forbid use of EM_ASM with setjmp/longjmp
Guanzhong Chen [Fri, 16 Aug 2019 18:21:08 +0000 (18:21 +0000)]
[WebAssembly] Forbid use of EM_ASM with setjmp/longjmp

Summary:
We tried to support EM_ASM with setjmp/longjmp in binaryen. But with dynamic
linking thrown into the mix, the code is no longer understandable and cannot
be maintained. We also discovered more bugs in the EM_ASM handling code.

To ensure maintainability and correctness of the binaryen code, EM_ASM will
no longer be supported with setjmp/longjmp. This is probably fine since the
support was added recently and haven't be published.

Reviewers: tlively, sbc100, jgravelle-google, kripken

Reviewed By: tlively, kripken

Subscribers: dschuff, hiraditya, aheejin, sunfish, llvm-commits

Tags: #llvm

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

llvm-svn: 369137

6 days ago[X86] resolveTargetShuffleInputs - add DemandedElts variant. NFCI.
Simon Pilgrim [Fri, 16 Aug 2019 18:13:22 +0000 (18:13 +0000)]
[X86] resolveTargetShuffleInputs - add DemandedElts variant. NFCI.

Nothing calls this yet, everything still goes through the non (all) DemandedElts wrapper.

llvm-svn: 369136

6 days ago[AArch64][GlobalISel] Lower G_SHUFFLE_VECTOR with 1 elt src and 1 elt mask.
Amara Emerson [Fri, 16 Aug 2019 18:06:53 +0000 (18:06 +0000)]
[AArch64][GlobalISel] Lower G_SHUFFLE_VECTOR with 1 elt src and 1 elt mask.

Again, it's weird that these are allowed. Since lowering support was added in
r368709 we started crashing on compiling the neon intrinsics test in the test
suite. This fixes the lowering to fold the 1 elt src/mask case into copies.

llvm-svn: 369135

6 days ago[X86] combineExtractWithShuffle - handle extract(truncate(x), 0)
Simon Pilgrim [Fri, 16 Aug 2019 17:35:08 +0000 (17:35 +0000)]
[X86] combineExtractWithShuffle - handle extract(truncate(x), 0)

Eventually we need to generalize combineExtractWithShuffle to handle all faux shuffles and handle truncate (and X86ISD::VTRUNC etc.) there, but we're not ready yet (still creates nodes on the fly, incomplete DemandedElts support, bad use of recursive Depth limit).

llvm-svn: 369134

6 days ago[AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instructions.
Paul Walker [Fri, 16 Aug 2019 17:29:53 +0000 (17:29 +0000)]
[AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instructions.

Recommit with fixes for mac builders.

Summary:
AArch64InstrInfo::getInstSizeInBytes is incorrectly treating meta
instructions (e.g. CFI_INSTRUCTION) as normal instructions and
giving them a size of 4.

This results in branch relaxation calculating block sizes wrong.
Branch relaxation also considers alignment and thus a single
mistake can result in later blocks being incorrectly sized even
when they themselves do not contain meta instructions.

The net result is we might not relax a branch whose destination is
not within range.

Reviewers: nickdesaulniers, peter.smith

Reviewed By: peter.smith

Subscribers: javed.absar, kristof.beyls, llvm-commits

Tags: #llvm

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

> llvm-svn: 369111

llvm-svn: 369133

6 days agoRevert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instruc...
Paul Walker [Fri, 16 Aug 2019 17:29:42 +0000 (17:29 +0000)]
Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instructions.

This reverts r369111 (git commit 3ccee5f7c4087ed119dbeba537f3df1b048a4dff)

llvm-svn: 369132

6 days ago[SLPVectorizer] Make the scheduler aware of the TreeEntry operands.
Vasileios Porpodas [Fri, 16 Aug 2019 17:21:18 +0000 (17:21 +0000)]
[SLPVectorizer] Make the scheduler aware of the TreeEntry operands.

Summary:
The scheduler's dependence graph gets the use-def dependencies by accessing the operands of the instructions in a bundle. However, buildTree_rec() may change the order of the operands in TreeEntry, and the scheduler is currently not aware of this. This is not causing any functional issues currently, because reordering is restricted to the operands of a single instruction. Once we support operand reordering across multiple TreeEntries, as shown here: http://www.llvm.org/devmtg/2019-04/slides/Poster-Porpodas-Supernode_SLP.pdf , the scheduler will need to get the correct operands from TreeEntry and not from the individual instructions.

In short, this patch:
- Connects the scheduler's bundle with the corresponding TreeEntry. It introduces new TE and Lane fields in ScheduleData.
- Moves the location where the operands of the TreeEntry are initialized. This used to take place in newTreeEntry() setting one operand at a time, but is now moved pre-order just before the recursion of buildTree_rec(). This is required because the scheduler needs to access both operands of the TreeEntry in tryScheduleBundle().
- Updates the scheduler to access the instruction operands through the TreeEntry operands instead of accessing the instruction operands directly.

Reviewers: ABataev, RKSimon, dtemirbulatov, Ayal, dorit, hfinkel

Reviewed By: ABataev

Subscribers: hiraditya, llvm-commits, lebedev.ri, rcorcs

Tags: #llvm

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

llvm-svn: 369131

6 days ago[ADT] Remove llvm::make_unique utility.
Jonas Devlieghere [Fri, 16 Aug 2019 17:19:57 +0000 (17:19 +0000)]
[ADT] Remove llvm::make_unique utility.

All uses of llvm::make_unique should have been replaced with
std::make_unique. This patch represents the last part of the migration
and removes the utility from LLVM.

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

llvm-svn: 369130

6 days agoFix llvm-config support for CMake build-mode-style builds
Jordan Rose [Fri, 16 Aug 2019 17:17:45 +0000 (17:17 +0000)]
Fix llvm-config support for CMake build-mode-style builds

At some point we and/or CMake changed our build-mode-style builds from
  $LLVM_OBJ_ROOT/bin/$CMAKE_CFG_INTDIR/
to
  $LLVM_OBJ_ROOT/$CMAKE_CFG_INTDIR/bin/
which is way easier to use. But no one updated llvm-config.

https://reviews.llvm.org/D66326

llvm-svn: 369129

6 days ago[ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT
Fangrui Song [Fri, 16 Aug 2019 17:01:56 +0000 (17:01 +0000)]
[ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT

R_GOTPLT is relative to .got.plt since D59594. Since R_HEXAGON_GOT
relocations always have 0 r_addend, they can use R_GOTPLT instead.

Reviewed By: sidneym

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

llvm-svn: 369128

6 days ago[SLP] add tests for PR16739; NFC
Sanjay Patel [Fri, 16 Aug 2019 17:01:26 +0000 (17:01 +0000)]
[SLP] add tests for PR16739; NFC

llvm-svn: 369127

6 days ago[X86] Alphabetize pass initialization definitions. NFCI.
Simon Pilgrim [Fri, 16 Aug 2019 16:41:38 +0000 (16:41 +0000)]
[X86] Alphabetize pass initialization definitions. NFCI.

llvm-svn: 369126

6 days ago[CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization
Guozhi Wei [Fri, 16 Aug 2019 16:26:12 +0000 (16:26 +0000)]
[CodeGen/Analysis] Intrinsic llvm.assume should not block tail call optimization

In function Analysis.cpp:isInTailCallPosition, instructions between call and ret are checked to see if they block tail call optimization. If an instruction is an intrinsic call, only llvm.lifetime_end is allowed and other intrinsic functions block tail call. When compiling tcmalloc, we found llvm.assume between a hot function call and ret, it blocks the optimization. But llvm.assume doesn't generate instructions, it should not block tail call.

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

llvm-svn: 369125

6 days ago[Hexagon] Generate min/max instructions for 64-bit vectors
Krzysztof Parzyszek [Fri, 16 Aug 2019 16:16:27 +0000 (16:16 +0000)]
[Hexagon] Generate min/max instructions for 64-bit vectors

llvm-svn: 369124

6 days ago[clang-doc] Fix records in global namespace
Diego Astiazaran [Fri, 16 Aug 2019 16:10:32 +0000 (16:10 +0000)]
[clang-doc] Fix records in global namespace

When a Record is declared in the global namespace, clang-doc serializes
it as a child of the global namespace, so the global namespace is now
one if its parent namespaces. This namespace was not being included in
the list of namespaces of the Info causing paths to be incorrect and the
index rendered incorrectly.
Affected tests have been fixed.

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

llvm-svn: 369123

6 days agoRelanding r368987 [AArch64] Change location of frame-record within callee-save area.
Sander de Smalen [Fri, 16 Aug 2019 15:42:28 +0000 (15:42 +0000)]
Relanding r368987 [AArch64] Change location of frame-record within callee-save area.

Changes:
There was a condition for `!NeedsFrameRecord` missing in the assert. The
assert in question has changed to:

+    assert((!RPI.isPaired() || !NeedsFrameRecord || RPI.Reg2 != AArch64::FP ||
+            RPI.Reg1 == AArch64::LR) &&
+           "FrameRecord must be allocated together with LR");

This addresses PR43016.

llvm-svn: 369122

6 days ago[lld][Hexagon]Support HEX_32 when building shared objects
Sid Manning [Fri, 16 Aug 2019 15:35:02 +0000 (15:35 +0000)]
[lld][Hexagon]Support HEX_32 when building shared objects

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

llvm-svn: 369121

6 days ago[InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y)
Evandro Menezes [Fri, 16 Aug 2019 15:33:41 +0000 (15:33 +0000)]
[InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y)

Simplify `pow(2.0, itofp(y))` to `ldexp(1.0, y)`.

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

llvm-svn: 369120

6 days ago[TextAPI] Update reader to be supported by lib/Object
Cyndy Ishida [Fri, 16 Aug 2019 15:30:48 +0000 (15:30 +0000)]
[TextAPI] Update reader to be supported by lib/Object

Summary:
To be able to use the TextAPI/Reader for tbd file consumption (by libObject)
it gets passed a MemoryBufferRef which isn't castable to MemoryBuffer.
Updated the tests to expect that input as well.

Reviewers: ributzka, steven_wu

Reviewed By: steven_wu

Subscribers: hiraditya, dexonsmith, llvm-commits

Tags: #llvm

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

llvm-svn: 369119

6 days ago[ARM] MVE sext of a load is free
David Green [Fri, 16 Aug 2019 15:13:37 +0000 (15:13 +0000)]
[ARM] MVE sext of a load is free

MVE also has some sext of loads, which will be free just as scalar
instructions are.

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

llvm-svn: 369118

6 days ago[InstCombine] Shift amount reassociation in bittest: trunc-of-shl (PR42399)
Roman Lebedev [Fri, 16 Aug 2019 15:10:41 +0000 (15:10 +0000)]
[InstCombine] Shift amount reassociation in bittest: trunc-of-shl (PR42399)

Summary:
This is continuation of D63829 / https://bugs.llvm.org/show_bug.cgi?id=42399

I thought naive pattern would solve my issue, but nope, it involved truncation,
thus more folds needed.. This isn't really the fold i'm interested in,
i need trunc-of-lshr, but i'we decided to start with `shl` because it's simpler.

In this case, no extra legality checks are needed:
https://rise4fun.com/Alive/CAb

We should be careful about not increasing instruction count,
since we need to produce `zext` because `and` is done in wider type.

Reviewers: spatel, nikic, xbolva00

Reviewed By: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

llvm-svn: 369117

6 days ago[X86][SSE] Add shuffled load tests from PR16739
Simon Pilgrim [Fri, 16 Aug 2019 14:47:59 +0000 (14:47 +0000)]
[X86][SSE] Add shuffled load tests from PR16739

llvm-svn: 369116

6 days agoRevert rL369112 : [X86][SSE] Add shuffled load tests from PR16739
Simon Pilgrim [Fri, 16 Aug 2019 14:31:45 +0000 (14:31 +0000)]
Revert rL369112 : [X86][SSE] Add shuffled load tests from PR16739

I left typos in this from a WIP copy - reverting and I'll recommit.

llvm-svn: 369115

6 days ago[RISCV] Convert registers from unsigned to Register
Luis Marques [Fri, 16 Aug 2019 14:27:50 +0000 (14:27 +0000)]
[RISCV] Convert registers from unsigned to Register

Only in public interfaces that have not yet been converted should there remain
registers with unsigned type.

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

llvm-svn: 369114

6 days ago[lldb][NFC] Allow for-ranges on StringList
Raphael Isemann [Fri, 16 Aug 2019 14:27:35 +0000 (14:27 +0000)]
[lldb][NFC] Allow for-ranges on StringList

llvm-svn: 369113

6 days ago[X86][SSE] Add shuffled load tests from PR16739
Simon Pilgrim [Fri, 16 Aug 2019 14:26:11 +0000 (14:26 +0000)]
[X86][SSE] Add shuffled load tests from PR16739

llvm-svn: 369112