platform/upstream/llvm.git
5 years ago[lldb] [lit] Driver/TestConvenienceVariables.test requires Python
Michal Gorny [Sun, 19 May 2019 06:05:31 +0000 (06:05 +0000)]
[lldb] [lit] Driver/TestConvenienceVariables.test requires Python

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

llvm-svn: 361114

5 years ago[clangd] Respect WarningsAsErrors configuration for clang-tidy
Fangrui Song [Sun, 19 May 2019 04:19:14 +0000 (04:19 +0000)]
[clangd] Respect WarningsAsErrors configuration for clang-tidy

This completes the fix for https://bugs.llvm.org/show_bug.cgi?id=41218.

Reviewed By: sammccall

Patch by Nathan Ridge!

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

llvm-svn: 361113

5 years ago[clangd] Respect clang-tidy suppression comments
Fangrui Song [Sun, 19 May 2019 04:06:52 +0000 (04:06 +0000)]
[clangd] Respect clang-tidy suppression comments

This partially fixes https://bugs.llvm.org/show_bug.cgi?id=41218.

Reviewed By: sammccall

Patch by Nathan Ridge!

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

llvm-svn: 361112

5 years agoUse CMAKE_C_COMPILER_ARG1 in compiler invocation
Petr Hosek [Sun, 19 May 2019 03:29:15 +0000 (03:29 +0000)]
Use CMAKE_C_COMPILER_ARG1 in compiler invocation

This is needed when using compiler wrappers such as ccache or distcc
and should address the failure on clang-x86_64-debian-fast bot.

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

llvm-svn: 361111

5 years ago[SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec().
Dinar Temirbulatov [Sun, 19 May 2019 01:30:41 +0000 (01:30 +0000)]
[SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec().

This is a follow-up refactoring patch after the introduction of usable TreeEntry pointers in D61706.
The EdgeInfo struct can now use a TreeEntry pointer instead of an index in VectorizableTree.

Committed on behalf of @vporpo (Vasileios Porpodas)

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

llvm-svn: 361110

5 years ago[X86] Remove semicolons at the end of intrinsics implemented as macros so they can...
Craig Topper [Sun, 19 May 2019 01:01:52 +0000 (01:01 +0000)]
[X86] Remove semicolons at the end of intrinsics implemented as macros so they can be used as arguments to other intrinsics.

Also fix one intrinsic that was using variable names without underscores.

Fixes PR41932

llvm-svn: 361109

5 years ago[X86] Remove combineShift function. Just dispatch directly to the handler for each...
Craig Topper [Sun, 19 May 2019 01:01:46 +0000 (01:01 +0000)]
[X86] Remove combineShift function. Just dispatch directly to the handler for each flavor from the main switch. NFC

llvm-svn: 361108

5 years ago[CommandLine] Reduce size of Option class
Don Hinton [Sat, 18 May 2019 20:46:35 +0000 (20:46 +0000)]
[CommandLine] Reduce size of Option class

Summary:
Reduce size of Option class from 184 bytes to 136 bytes by
placing more member variables in Bit Field (16 bytes), and
reducing the initial sizes of Categories and Subs to 1 (32 bytes).

Saves about 48k for bin/opt.

Reviewed By: beanz

Tags: #llvm

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

llvm-svn: 361107

5 years ago[NFC][AArch64] Autogenerate fcopysign.ll test
Roman Lebedev [Sat, 18 May 2019 20:24:40 +0000 (20:24 +0000)]
[NFC][AArch64] Autogenerate fcopysign.ll test

llvm-svn: 361106

5 years ago[NFC][AArch64] Autogenerate bitfield-insert.ll, selectcc-to-shiftand.ll tests
Roman Lebedev [Sat, 18 May 2019 17:42:06 +0000 (17:42 +0000)]
[NFC][AArch64] Autogenerate bitfield-insert.ll, selectcc-to-shiftand.ll tests

Investigating bit-extract (ubfx) pattern with shifted mask.

llvm-svn: 361105

5 years ago[AVR] Fix 'symbol_relocations.s' MC test
Dylan McKay [Sat, 18 May 2019 16:38:48 +0000 (16:38 +0000)]
[AVR] Fix 'symbol_relocations.s' MC test

This was broken in r360143, when the 'rela.' prefix was stripped from
section names.

llvm-svn: 361104

5 years agoGVN: Handle addrspacecast
Matt Arsenault [Sat, 18 May 2019 14:36:06 +0000 (14:36 +0000)]
GVN: Handle addrspacecast

llvm-svn: 361103

5 years ago[NFC][AArch64] Add some ubfx tests with immediates
Roman Lebedev [Sat, 18 May 2019 13:49:44 +0000 (13:49 +0000)]
[NFC][AArch64] Add some ubfx tests with immediates

Shows the regression in D62100

llvm-svn: 361102

5 years agoUpdateTestChecks: fix AMDGPU handling
Roman Lebedev [Sat, 18 May 2019 13:00:03 +0000 (13:00 +0000)]
UpdateTestChecks: fix AMDGPU handling

Summary:
Was looking into supporting `(srl (shl x, c1), c2)` with c1 != c2 in dagcombiner,
this test changes, but makes `update_llc_test_checks.py` unhappy.

**Many** AMDGPU tests specify `-march`, not `-mtriple`, which results in `update_llc_test_checks.py`
defaulting to x86 asm function detection heuristics, which don't work here.
I propose to fix this by adding an infrastructure to map from `-march` to `-mtriple`,
in the UpdateTestChecks tooling.

Reviewers: RKSimon, MaskRay, arsenm

Reviewed By: arsenm

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Tags: #llvm

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

llvm-svn: 361101

5 years agoUpdateTestChecks: arm64-eabi handlind
Roman Lebedev [Sat, 18 May 2019 12:59:56 +0000 (12:59 +0000)]
UpdateTestChecks: arm64-eabi handlind

Summary:
Was looking into supporting `(srl (shl x, c1), c2)` with c1 != c2 in dagcombiner,
this test changes, but makes `update_llc_test_checks.py` unhappy

Reviewers: RKSimon

Reviewed By: RKSimon

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

Tags: #llvm

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

llvm-svn: 361100

5 years ago[analyzer] PR41753: Include complex integer types in NonLoc::isCompoundType
Kristof Umann [Sat, 18 May 2019 12:34:08 +0000 (12:34 +0000)]
[analyzer] PR41753: Include complex integer types in NonLoc::isCompoundType

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

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

llvm-svn: 361099

5 years agoScalarExprEmitter::EmitCompoundAssign - fix uninitialized variable warning. NFCI.
Simon Pilgrim [Sat, 18 May 2019 12:17:15 +0000 (12:17 +0000)]
ScalarExprEmitter::EmitCompoundAssign - fix uninitialized variable warning. NFCI.

llvm-svn: 361098

5 years agoMIGChecker - assert we have a non-null LocationContext. NFCI.
Simon Pilgrim [Sat, 18 May 2019 11:42:19 +0000 (11:42 +0000)]
MIGChecker - assert we have a non-null LocationContext. NFCI.

Fixes scan-build warning.

llvm-svn: 361097

5 years agoASTNodeImporter - fix uninitialized variable warnings. NFCI.
Simon Pilgrim [Sat, 18 May 2019 11:33:27 +0000 (11:33 +0000)]
ASTNodeImporter - fix uninitialized variable warnings. NFCI.

llvm-svn: 361096

5 years agoMemCmpExpansion::getCompareLoadPairs - assert we find a comparison diff. NFCI.
Simon Pilgrim [Sat, 18 May 2019 11:31:48 +0000 (11:31 +0000)]
MemCmpExpansion::getCompareLoadPairs - assert we find a comparison diff. NFCI.

Fix scan-build uninitialized warning and assert the final diff isn't null.

llvm-svn: 361095

5 years agoSuppress false-positive GCC -Wreturn-type warning.
Michael Liao [Sat, 18 May 2019 06:35:47 +0000 (06:35 +0000)]
Suppress false-positive GCC -Wreturn-type warning.

llvm-svn: 361094

5 years ago[MinGW] Set the right updated option help for the updated pdb option. NFC
Martin Storsjo [Sat, 18 May 2019 04:20:31 +0000 (04:20 +0000)]
[MinGW] Set the right updated option help for the updated pdb option. NFC

I forgot to amend this change before committing it in SVN r361014, this
is what was agreed upon in the review.

llvm-svn: 361093

5 years ago[docs] Fix some RST errors.
Lang Hames [Sat, 18 May 2019 03:23:18 +0000 (03:23 +0000)]
[docs] Fix some RST errors.

llvm-svn: 361092

5 years agoUpdate llvm-nm -s to use a multi-var option
Michael Trent [Sat, 18 May 2019 03:17:27 +0000 (03:17 +0000)]
Update llvm-nm -s to use a multi-var option

Summary:
Previously llvm-nm relied on a positional parameter to read two values
into the SegSect list. This worked, but required the "-s" paramater and
its arguments to be the last elements on the command-line.

The CommandLine library now supports mutli-var parameters, so it can
naturally deal with "-s" expecting two arguments, and now the input file
can appear anywhere (within reason) in the command line invocation. E.g.

    llvm-nm -s __TEXT __text /bin/ls
    llvm-nm /bin/ls -s __TEXT __text

rdar://27284011

Reviewers: lhames, pete

Reviewed By: pete

Subscribers: rupprecht, llvm-commits

Tags: #llvm

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

llvm-svn: 361091

5 years ago[ARM][AArch64] Revert Android Bionic PT_TLS overaligning hack
Fangrui Song [Sat, 18 May 2019 03:16:00 +0000 (03:16 +0000)]
[ARM][AArch64] Revert Android Bionic PT_TLS overaligning hack

This reverts D53906.

D53906 increased p_align of PT_TLS on ARM/AArch64 to 32/64 to make the
static TLS layout compatible with Android Bionic's ELF TLS. However,
this may cause glibc ARM/AArch64 programs to crash (see PR41527).

The faulty PT_TLS in the executable satisfies p_vaddr%p_align != 0. The
remainder is normally 0 but may be non-zero with the hack in place. The
problem is that we increase PT_TLS's p_align after OutputSections'
addresses are fixed (assignAddress()). It is possible that
p_vaddr%old_p_align = 0 while p_vaddr%new_p_align != 0.

For a thread local variable defined in the executable, lld computed TLS
offset (local exec) is different from glibc computed TLS offset from
another module (initial exec/generic dynamic). Note: PR41527 said the
bug affects initial exec but actually generic dynamic is affected as
well.

(glibc is correct in that it compute offsets that satisfy
`offset%p_align == p_vaddr%p_align`, which is a basic ELF requirement.
This hack appears to work on FreeBSD rtld, musl<=1.1.22, and Bionic, but
that is just because they (and lld) incorrectly compute offsets that
satisfy `offset%p_align = 0` instead.)

Android developers are fine to revert this patch, carry this patch in
their tree before figuring out a long-term solution (e.g. a dummy .tdata
with sh_addralign=64 sh_size={0,1} in crtbegin*.o files. The overhead is
now insignificant after D62059).

Reviewed By: rprichard, srhines

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

llvm-svn: 361090

5 years ago[docs][ORC] Start work on an ORC design doc. Very much a work in progress.
Lang Hames [Sat, 18 May 2019 03:08:49 +0000 (03:08 +0000)]
[docs][ORC] Start work on an ORC design doc. Very much a work in progress.

This initial version describes some of the high level design goals and basic
symbol lookup rules.

llvm-svn: 361089

5 years ago[ELF][X86] Fix R_RELAX_TLS_GD_TO_LE_NEG and R_NEG_TLS after D62059
Fangrui Song [Sat, 18 May 2019 01:58:40 +0000 (01:58 +0000)]
[ELF][X86] Fix R_RELAX_TLS_GD_TO_LE_NEG and R_NEG_TLS after D62059

After D62059, we don't align p_memsz of PT_TLS to p_align. The
getRelocTargetVA formula should align it instead.

It becomes clear that R_NEG_TLS and R_TLS are opposite from each other.

In i386-tls-le-align.s, I put ret after call ___tls_get_addr@plt as
otherwise ld.bfd would reject the relaxation:
TLS transition from R_386_TLS_GD to R_386_TLS_LE_32 against `a' at 0x3 in section `.text' failed

llvm-svn: 361088

5 years ago[crashlog] Use loads() instead of readPlistFromString() for python 3.
Davide Italiano [Sat, 18 May 2019 01:57:12 +0000 (01:57 +0000)]
[crashlog] Use loads() instead of readPlistFromString() for python 3.

<rdar://problem/50903413>

llvm-svn: 361087

5 years agoRevert "Fix IPv6 support on lldb-server platform"
Alex Langford [Sat, 18 May 2019 01:09:44 +0000 (01:09 +0000)]
Revert "Fix IPv6 support on lldb-server platform"

This reverts commit c28f81797084b8416ff5be4f9e79000a9741ca6a.
This reverts commit 7e79b64642486f510f7872174eb831df68d65b84.

Looks like there is more work to be done on this patch. I've spoken to
the author and for the time being we will revert to keep the buildbots
green.

llvm-svn: 361086

5 years ago[ELF] Add {i386,x86-64}-tls-le-align.s to test TP offsets for TLS Variant 2
Fangrui Song [Sat, 18 May 2019 00:57:30 +0000 (00:57 +0000)]
[ELF] Add {i386,x86-64}-tls-le-align.s to test TP offsets for TLS Variant 2

I forgot to add them in rLLD361084. I made another mistake, rLLD361084 fixed Variant 2, not Variant 1.

llvm-svn: 361085

5 years ago[ELF] Fix TP offset of TLS Variant I after D62059
Fangrui Song [Sat, 18 May 2019 00:43:10 +0000 (00:43 +0000)]
[ELF] Fix TP offset of TLS Variant I after D62059

As Ryan Prichard pointed out, after D62059, the TP offset is incorrect.

Add x86-64-tls-le-align.s to check this.  Better formulae for both
variants should take p_vaddr%p_align into account (offset%p_align =
p_vaddr%p_align is a basic ELF requirement), but I can't find a way to
test the behavior.

llvm-svn: 361084

5 years agoUnbreak windows build bot
Alex Langford [Sat, 18 May 2019 00:09:43 +0000 (00:09 +0000)]
Unbreak windows build bot

Commit c28f81797084b8416ff5be4f9e79000a9741ca6a (svn r361079)
broke the windows buildbot. This should fix it.

llvm-svn: 361083

5 years agoAMDGPU/GlobalISel: Implement s64->s64 [SU]ITOFP
Matt Arsenault [Fri, 17 May 2019 23:05:18 +0000 (23:05 +0000)]
AMDGPU/GlobalISel: Implement s64->s64 [SU]ITOFP

llvm-svn: 361082

5 years agoGlobalISel: Implement lower for S64->S32 [SU]ITOFP
Matt Arsenault [Fri, 17 May 2019 23:05:13 +0000 (23:05 +0000)]
GlobalISel: Implement lower for S64->S32 [SU]ITOFP

This is ported from the custom AMDGPU DAG implementation. I think this
is a better default expansion than what the DAG currently uses, at
least if the target has CTLZ.

This implements the signed version in terms of the unsigned
conversion, which is implemented with bit operations. SelectionDAG has
several other implementations that should eventually be ported
depending on what instructions are legal.

llvm-svn: 361081

5 years ago[CommandInterpreter] Refactor SourceInitFile
Jonas Devlieghere [Fri, 17 May 2019 22:53:04 +0000 (22:53 +0000)]
[CommandInterpreter] Refactor SourceInitFile

I was looking at the current implementation of SourceInitFile and there
were a few things that made this function hard to read:

 * The code to find the ~/.lldbinit file is duplicated across the cwd
   and non-cwd branch.
 * The ./.lldbinit is once computed by resolving .lldbinit and once by
   resolving ./.lldbinit.
 * It wasn't clear to me what happened when you're sourcing the
   .lldbinit file in the current working directory. Apparently we do
   nothing when we property to control that is set to warn (makes sense)
   and we don't care when the property is set to true (debatable).
 * There were at least two branches where the status of the
   CommandReturnObject were not set.

This patch attempts to simplify that code.

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

llvm-svn: 361080

5 years agoFix IPv6 support on lldb-server platform
Alex Langford [Fri, 17 May 2019 22:30:53 +0000 (22:30 +0000)]
Fix IPv6 support on lldb-server platform

This is a general fix for the ConnectionFileDescriptor class but my main
motivation was to make lldb-server working with IPv6.
The connect URI can use square brackets ([]) to wrap the interface part
of the URI (e.g.: <scheme>://[<interface>]:<port>). For IPv6 addresses
this is a must since its ip can include colons and it will overlap with
the port colon otherwise. The URIParser class parses the square brackets
correctly but the ConnectionFileDescriptor doesn't generate them for
IPv6 addresses making it impossible to connect to the gdb server when
using this protocol.

How to reproduce the issue:

$ lldb-server p --server --listen [::1]:8080
...
$ lldb
(lldb) platform select remote-macosx
(lldb) platform connect connect://[::1]:8080
(lldb) platform process -p <pid>
error: unable to launch a GDB server on 'computer'

The server was actually launched we were just not able to connect to it.
With this fix lldb will correctly connect. I fixed this by wrapping the
ip portion with [].

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

Patch by António Afonso <antonio.afonso@gmail.com>

llvm-svn: 361079

5 years ago[EditLine] Check string pointers before dereferencing them.
Davide Italiano [Fri, 17 May 2019 21:49:17 +0000 (21:49 +0000)]
[EditLine] Check string pointers before dereferencing them.

Get*AtIndex() can return nullptr. This only happens in the swift
REPL support, so it's hard to test upstream.

<rdar://problem/50875178>

llvm-svn: 361078

5 years ago[sanitizer] Update symbolizer/scripts/global_symbols.txt
Vitaly Buka [Fri, 17 May 2019 21:37:34 +0000 (21:37 +0000)]
[sanitizer] Update symbolizer/scripts/global_symbols.txt

llvm-svn: 361077

5 years ago[NFC][InstSimplify] Add more unary fneg tests to floating-point-arithmetic.ll
Cameron McInally [Fri, 17 May 2019 21:10:11 +0000 (21:10 +0000)]
[NFC][InstSimplify] Add more unary fneg tests to floating-point-arithmetic.ll

llvm-svn: 361076

5 years agoFix missing std:: qualifier in __gnu_cxx::hash_map in C++03
Eric Fiselier [Fri, 17 May 2019 20:59:57 +0000 (20:59 +0000)]
Fix missing std:: qualifier in __gnu_cxx::hash_map in C++03

llvm-svn: 361075

5 years agoRemove `using namespace std;` in __gnu_cxx namespace.
Eric Fiselier [Fri, 17 May 2019 20:46:00 +0000 (20:46 +0000)]
Remove `using namespace std;` in __gnu_cxx namespace.

The `using namespace std;` opens us up to ambiguity
when any of the std:: names are also present in the global namespace.
Instead we should properly qualify names we use from std::.

llvm-svn: 361074

5 years agoExplicitly remove -stdlib=libc++, as we pass -nostdinc++ anyway. This should fix...
Mitch Phillips [Fri, 17 May 2019 20:34:37 +0000 (20:34 +0000)]
Explicitly remove -stdlib=libc++, as we pass -nostdinc++ anyway. This should fix the android builtbots, and is a direct copy from what Scudo does.

llvm-svn: 361073

5 years agobuild: use clang-cl for runtimes when targeting Windows
Saleem Abdulrasool [Fri, 17 May 2019 20:09:06 +0000 (20:09 +0000)]
build: use clang-cl for runtimes when targeting Windows

When targeting Windows and building a runtime (subproject) prefer to use
`clang-cl` rather than the `clang` driver.  This allows us to cross-compile
runtimes for the Windows environment from Linux.

llvm-svn: 361072

5 years ago[WebAssembly] Remove expected failure of builtin-location.C test
Sam Clegg [Fri, 17 May 2019 19:55:17 +0000 (19:55 +0000)]
[WebAssembly] Remove expected failure of builtin-location.C test

This seems to have been fixed by https://reviews.llvm.org/D61956

Yay

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

llvm-svn: 361071

5 years ago[libFuzzer] Dump input on failure for sigusr tests.
Matt Morehouse [Fri, 17 May 2019 19:33:31 +0000 (19:33 +0000)]
[libFuzzer] Dump input on failure for sigusr tests.

Should help with debugging failures on the bots.

llvm-svn: 361070

5 years ago[CMake] Add first CMake cache files
Stefan Granitz [Fri, 17 May 2019 19:19:41 +0000 (19:19 +0000)]
[CMake] Add first CMake cache files

Summary:
CMake cache scripts pre-populate the CMakeCache in a build directory with commonly used settings.
The CMake invocation from D61952 could look like this:

```
cmake -G Ninja -C /path/to/llvm-project/lldb/cmake/caches/Apple-lldb-osx.cmake -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;lldb" ../llvm-project/llvm
```

Options specified on the command line will override options in the cache files (as long as caches don't use `FORCE`).
What do you think? (This is a first proposal and not set in stone.)

Reviewers: xiaobai, compnerd, JDevlieghere, aprantl, labath

Subscribers: mgorny, lldb-commits, #lldb

Tags: #lldb

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

llvm-svn: 361069

5 years ago[CMake] Inline info plist in lldb driver
Stefan Granitz [Fri, 17 May 2019 19:19:34 +0000 (19:19 +0000)]
[CMake] Inline info plist in lldb driver

llvm-svn: 361068

5 years ago[c++20] P1327R1: Support for typeid applied to objects of polymorphic
Richard Smith [Fri, 17 May 2019 19:19:28 +0000 (19:19 +0000)]
[c++20] P1327R1: Support for typeid applied to objects of polymorphic
class type in constant evaluation.

This reinstates r360977, reverted in r360987, now that its rerequisite
patch is reinstated and fixed.

llvm-svn: 361067

5 years ago[OpenMP][bugfix] Add missing math functions variants for log and abs.
Gheorghe-Teodor Bercea [Fri, 17 May 2019 19:15:53 +0000 (19:15 +0000)]
[OpenMP][bugfix] Add missing math functions variants for log and abs.

Summary: When including the random header in C++, some of the math functions it relies on are not present in the CUDA headers. We include this variants in this case.

Reviewers: jdoerfert, hfinkel, tra, caomhin

Reviewed By: tra

Subscribers: efriedma, guansong, cfe-commits

Tags: #clang

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

llvm-svn: 361066

5 years agoAdd more tests for AST JSON output; NFC.
Aaron Ballman [Fri, 17 May 2019 19:14:01 +0000 (19:14 +0000)]
Add more tests for AST JSON output; NFC.

This adds tests for dumping records and statements.

llvm-svn: 361065

5 years ago[CommandInterpreter] Fix trailing blanks after `all` or [0-9]+ for bt
Stella Stamenova [Fri, 17 May 2019 18:52:42 +0000 (18:52 +0000)]
[CommandInterpreter] Fix trailing blanks after `all` or [0-9]+ for bt

The change that was committed for this used \\s to match spaces which does not work correctly on all platforms. Using [:space:] makes the test pass on both Linux and Windows

llvm-svn: 361064

5 years ago[hwasan] Limit try-catch tests to aarch64.
Evgeniy Stepanov [Fri, 17 May 2019 18:40:06 +0000 (18:40 +0000)]
[hwasan] Limit try-catch tests to aarch64.

HWASan C++ tests do not do well on x86_64.
Fixes https://bugs.llvm.org/show_bug.cgi?id=41923

llvm-svn: 361063

5 years agogn build: Merge r360993
Nico Weber [Fri, 17 May 2019 18:37:46 +0000 (18:37 +0000)]
gn build: Merge r360993

llvm-svn: 361062

5 years agoGlobalISel: Define integer min/max instructions
Matt Arsenault [Fri, 17 May 2019 18:36:31 +0000 (18:36 +0000)]
GlobalISel: Define integer min/max instructions

Doesn't attempt to emit them for anything yet, but some legalizations
I want to port use them.

llvm-svn: 361061

5 years ago[NFC][InstSimplify] Precommit new unary fneg test
Cameron McInally [Fri, 17 May 2019 18:34:35 +0000 (18:34 +0000)]
[NFC][InstSimplify] Precommit new unary fneg test

llvm-svn: 361060

5 years agoRevert r361033 "Add a Visit overload for DynTypedNode to ASTNodeTraverser"
Nico Weber [Fri, 17 May 2019 18:31:24 +0000 (18:31 +0000)]
Revert r361033 "Add a Visit overload for DynTypedNode to ASTNodeTraverser"

It fails to build on some bots.

Also revert follow-up r361055.

llvm-svn: 361059

5 years ago[InstCombine] move bitcast after insertelement-with-bitcasted-operands
Sanjay Patel [Fri, 17 May 2019 18:06:12 +0000 (18:06 +0000)]
[InstCombine] move bitcast after insertelement-with-bitcasted-operands

llvm-svn: 361058

5 years ago[NFC][InstSImplify] Fix flip-flopped comments and test names
Cameron McInally [Fri, 17 May 2019 17:59:17 +0000 (17:59 +0000)]
[NFC][InstSImplify] Fix flip-flopped comments and test names

In test/Transforms/InstSimplify/floating-point-arithmetic.ll

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

llvm-svn: 361057

5 years ago[X86][SSE] Fold movmsk(not(x)) -> not(movmsk)
Simon Pilgrim [Fri, 17 May 2019 17:56:25 +0000 (17:56 +0000)]
[X86][SSE] Fold movmsk(not(x)) -> not(movmsk)

Helps to improve folding of comparisons with movmsk results.

llvm-svn: 361056

5 years agogn build: Merge r361033
Nico Weber [Fri, 17 May 2019 17:36:06 +0000 (17:36 +0000)]
gn build: Merge r361033

llvm-svn: 361055

5 years agoAttempt to fix test on Windows after r360998
Nico Weber [Fri, 17 May 2019 17:33:54 +0000 (17:33 +0000)]
Attempt to fix test on Windows after r360998

llvm-svn: 361054

5 years agogn build: Merge r360991
Nico Weber [Fri, 17 May 2019 17:32:00 +0000 (17:32 +0000)]
gn build: Merge r360991

llvm-svn: 361053

5 years ago[X86][SSE] Match all-of bool scalar reductions into a bitcast/movmsk + cmp.
Simon Pilgrim [Fri, 17 May 2019 17:25:55 +0000 (17:25 +0000)]
[X86][SSE] Match all-of bool scalar reductions into a bitcast/movmsk + cmp.

Same as what we do for vector reductions in combineHorizontalPredicateResult, use movmsk+cmp for scalar (and(extract(x,0),extract(x,1)) reduction patterns.

llvm-svn: 361052

5 years ago[InstCombine] add tests for insertelement with bitcasted operands; NFC
Sanjay Patel [Fri, 17 May 2019 17:23:13 +0000 (17:23 +0000)]
[InstCombine] add tests for insertelement with bitcasted operands; NFC

llvm-svn: 361051

5 years agoAdded an assertion to constant evaluation enty points that prohibits dependent expres...
Dmitri Gribenko [Fri, 17 May 2019 17:16:53 +0000 (17:16 +0000)]
Added an assertion to constant evaluation enty points that prohibits dependent expressions

Summary:
Constant evaluator does not work on value-dependent or type-dependent
expressions.

Also fixed bugs uncovered by these assertions.

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361050

5 years agoUpdate list of supported architectures.
Adrian Prantl [Fri, 17 May 2019 17:05:23 +0000 (17:05 +0000)]
Update list of supported architectures.

llvm-svn: 361049

5 years ago[libFuzzer] Use SleepOneSecondTest.cpp for fork-sigusr.test.
Matt Morehouse [Fri, 17 May 2019 16:56:01 +0000 (16:56 +0000)]
[libFuzzer] Use SleepOneSecondTest.cpp for fork-sigusr.test.

ShallowOOMDeepCrash.cpp may hit libFuzzer's RSS limit before the SIGUSR2
is delivered, causing the test to be flaky when bots are under load.
SleepOneSecondTest.cpp will keep running until the signal is delivered.

llvm-svn: 361048

5 years ago[InstSimplify] Add unary fneg to `fsub 0.0, (fneg X) ==> X` transform
Cameron McInally [Fri, 17 May 2019 16:47:00 +0000 (16:47 +0000)]
[InstSimplify] Add unary fneg to `fsub 0.0, (fneg X) ==> X` transform

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

llvm-svn: 361047

5 years ago[Docs] Remove SVN checkout from LLDB build steps
Jonas Devlieghere [Fri, 17 May 2019 16:22:26 +0000 (16:22 +0000)]
[Docs] Remove SVN checkout from LLDB build steps

This removes several older paragraphs in the LLDB build steps for Unix
systems which suggested checking out various components via SVN. Since
there's a separate page about getting the LLDB source which only
mentions Git, it seems appropriate to remove this older info from the
build docs.

Patch by: J. Ryan Stinnett

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

llvm-svn: 361046

5 years ago[AMDGPU][MC] Corrected parsing of NAME:VALUE modifiers
Dmitry Preobrazhensky [Fri, 17 May 2019 16:04:17 +0000 (16:04 +0000)]
[AMDGPU][MC] Corrected parsing of NAME:VALUE modifiers

See bug 41298: https://bugs.llvm.org/show_bug.cgi?id=41298

Reviewers: artem.tamazov, arsenm

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

llvm-svn: 361045

5 years ago[DAGCombiner] visitShiftByConstant(): drop bogus signbit check
Roman Lebedev [Fri, 17 May 2019 15:52:58 +0000 (15:52 +0000)]
[DAGCombiner] visitShiftByConstant(): drop bogus signbit check

Summary:
That check claims that the transform is illegal otherwise.
That isn't true:
1. For `ISD::ADD`, we only process `ISD::SHL` outer shift => sign bit does not matter
   https://rise4fun.com/Alive/K4A
2. For `ISD::AND`, there is no restriction on constants:
   https://rise4fun.com/Alive/Wy3
3. For `ISD::OR`, there is no restriction on constants:
   https://rise4fun.com/Alive/GOH
3. For `ISD::XOR`, there is no restriction on constants:
   https://rise4fun.com/Alive/ml6

So, why is it there then?

This changes the testcase that was touched by @spatel in rL347478,
but i'm not sure that test tests anything particular?

Reviewers: RKSimon, spatel, craig.topper, jojo, rengolin

Reviewed By: spatel

Subscribers: javed.absar, llvm-commits, spatel

Tags: #llvm

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

llvm-svn: 361044

5 years ago[InstCombine] canShiftBinOpWithConstantRHS(): drop bogus signbit check
Roman Lebedev [Fri, 17 May 2019 15:52:49 +0000 (15:52 +0000)]
[InstCombine] canShiftBinOpWithConstantRHS(): drop bogus signbit check

Summary:
In D61918 i was looking at dropping it in DAGCombiner `visitShiftByConstant()`,
but as @craig.topper pointed out, it was copied from here.

That check claims that the transform is illegal otherwise.
That isn't true:
1. For `ISD::ADD`, we only process `ISD::SHL` outer shift => sign bit does not matter
   https://rise4fun.com/Alive/K4A
2. For `ISD::AND`, there is no restriction on constants:
   https://rise4fun.com/Alive/Wy3
3. For `ISD::OR`, there is no restriction on constants:
   https://rise4fun.com/Alive/GOH
3. For `ISD::XOR`, there is no restriction on constants:
   https://rise4fun.com/Alive/ml6

So, why is it there then?
As far as i can tell, it dates all the way back to original check-in rL7793.
I think we should just drop it.

Reviewers: spatel, craig.topper, efriedma, majnemer

Reviewed By: spatel

Subscribers: llvm-commits, craig.topper

Tags: #llvm

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

llvm-svn: 361043

5 years ago[analyzer] Remove the default value arg from getChecker*Option
Kristof Umann [Fri, 17 May 2019 15:52:13 +0000 (15:52 +0000)]
[analyzer] Remove the default value arg from getChecker*Option

Since D57922, the config table contains every checker option, and it's default
value, so having it as an argument for getChecker*Option is redundant.

By the time any of the getChecker*Option function is called, we verified the
value in CheckerRegistry (after D57860), so we can confidently assert here, as
any irregularities detected at this point must be a programmer error. However,
in compatibility mode, verification won't happen, so the default value must be
restored.

This implies something else, other than adding removing one more potential point
of failure -- debug.ConfigDumper will always contain valid values for
checker/package options!

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

llvm-svn: 361042

5 years agoFix tests from r361013 on X86 bots.
Russell Gallop [Fri, 17 May 2019 15:38:01 +0000 (15:38 +0000)]
Fix tests from r361013 on X86 bots.

llvm-svn: 361041

5 years ago[AMDGPU][MC] Enabled labels with s_call_b64 and s_cbranch_i_fork
Dmitry Preobrazhensky [Fri, 17 May 2019 14:57:04 +0000 (14:57 +0000)]
[AMDGPU][MC] Enabled labels with s_call_b64 and s_cbranch_i_fork

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

Reviewers: artem.tamazov, arsenm

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

llvm-svn: 361040

5 years ago[libcxxabi] Add a test for invalid assumptions on the alignment of exceptions
Louis Dionne [Fri, 17 May 2019 14:53:29 +0000 (14:53 +0000)]
[libcxxabi] Add a test for invalid assumptions on the alignment of exceptions

rdar://problem/49864414

llvm-svn: 361039

5 years ago[X86][AVX] Remove LowerCTTZ's AVX1 custom vector handling.
Simon Pilgrim [Fri, 17 May 2019 14:37:19 +0000 (14:37 +0000)]
[X86][AVX] Remove LowerCTTZ's AVX1 custom vector handling.

We can now rely on generic expansion to handle this.

llvm-svn: 361038

5 years ago[LibTooling] Add support to Transformer for composing rules as an ordered choice.
Yitzhak Mandelbaum [Fri, 17 May 2019 14:23:33 +0000 (14:23 +0000)]
[LibTooling] Add support to Transformer for composing rules as an ordered choice.

This revision updates `RewriteRule` to support multiple subrules that are
interpreted as an ordered-choice (apply the first one that matches). With this
feature, users can write the rules that appear later in the list of subrules
knowing that previous rules' patterns *have not matched*, freeing them from
reasoning about those cases in the current pattern.

Reviewers: ilya-biryukov

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361037

5 years ago[ELF] -r: fix R_*_NONE to section symbols on Elf*_Rel targets
Fangrui Song [Fri, 17 May 2019 14:11:03 +0000 (14:11 +0000)]
[ELF] -r: fix R_*_NONE to section symbols on Elf*_Rel targets

On Elf*_Rel targets, for a relocation to a section symbol, an R_ABS is
added which will be used by relocateOne() to compute the implicit
addend.

Addends of R_*_NONE should be ignored, so don't emit an R_ABS.

This fixes crashes on X86 and ARM because their relocateOne() do not
handle R_*_NONE.

Reviewed By: peter.smith

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

llvm-svn: 361036

5 years ago[X86][AVX] isNOT - add extract_subvector(xor X, -1) -> extract_subvector(X) fold.
Simon Pilgrim [Fri, 17 May 2019 14:04:56 +0000 (14:04 +0000)]
[X86][AVX] isNOT - add extract_subvector(xor X, -1) -> extract_subvector(X) fold.

Prep work for the removal of the remaining x86 CTTZ vector lowering.

llvm-svn: 361035

5 years agoExtract ASTDumper to a header file
Stephen Kelly [Fri, 17 May 2019 13:59:15 +0000 (13:59 +0000)]
Extract ASTDumper to a header file

Summary:
This class has member APIs which are useful to clients.  Make it
possible to use those APIs without adding them to dump() member
functions.  Doing so does not scale.  The optional arguments to dump()
should be designed to be useful in a debugging context.

Reviewers: aaron.ballman

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361034

5 years agoAdd a Visit overload for DynTypedNode to ASTNodeTraverser
Stephen Kelly [Fri, 17 May 2019 13:55:28 +0000 (13:55 +0000)]
Add a Visit overload for DynTypedNode to ASTNodeTraverser

Reviewers: aaron.ballman

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 361033

5 years agoFix Wdocumentation warnings. NFCI.
Simon Pilgrim [Fri, 17 May 2019 13:42:16 +0000 (13:42 +0000)]
Fix Wdocumentation warnings. NFCI.

llvm-svn: 361032

5 years ago[AMDGPU][MC] Enabled expressions for most operands which accept integer values
Dmitry Preobrazhensky [Fri, 17 May 2019 13:17:48 +0000 (13:17 +0000)]
[AMDGPU][MC] Enabled expressions for most operands which accept integer values

See bug 40873: https://bugs.llvm.org/show_bug.cgi?id=40873

Reviewers: artem.tamazov, arsenm

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

llvm-svn: 361031

5 years agoAMDGPU: Fix unused variable warnings in release builds
Matt Arsenault [Fri, 17 May 2019 12:59:27 +0000 (12:59 +0000)]
AMDGPU: Fix unused variable warnings in release builds

llvm-svn: 361030

5 years ago[ELF] Don't align PT_TLS's p_memsz
Fangrui Song [Fri, 17 May 2019 12:48:53 +0000 (12:48 +0000)]
[ELF] Don't align PT_TLS's p_memsz

The code was added in r252352, probably to address some layout issues.
Actually PT_TLS's p_memsz doesn't need to be aligned on either variant.
ld.bfd doesn't do that.

In case of larger alignment (e.g. 64 for Android Bionic on AArch64, see
D62055), this may make the overhead smaller.

Reviewed By: ruiu

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

llvm-svn: 361029

5 years agoAMDGPU/GlobalISel: Legalize G_FCEIL
Matt Arsenault [Fri, 17 May 2019 12:20:05 +0000 (12:20 +0000)]
AMDGPU/GlobalISel: Legalize G_FCEIL

llvm-svn: 361028

5 years agoAMDGPU/GlobalISel: Legalize G_INTRINSIC_TRUNC
Matt Arsenault [Fri, 17 May 2019 12:20:01 +0000 (12:20 +0000)]
AMDGPU/GlobalISel: Legalize G_INTRINSIC_TRUNC

llvm-svn: 361027

5 years agoAMDGPU/GlobalISel: Legalize G_FRINT
Matt Arsenault [Fri, 17 May 2019 12:19:57 +0000 (12:19 +0000)]
AMDGPU/GlobalISel: Legalize G_FRINT

llvm-svn: 361026

5 years agoAMDGPU/GlobalISel: Legalize G_FCOPYSIGN
Matt Arsenault [Fri, 17 May 2019 12:19:52 +0000 (12:19 +0000)]
AMDGPU/GlobalISel: Legalize G_FCOPYSIGN

llvm-svn: 361025

5 years ago[MergeICmps][NFC] Add more debug.
Clement Courbet [Fri, 17 May 2019 12:07:51 +0000 (12:07 +0000)]
[MergeICmps][NFC] Add more debug.

llvm-svn: 361024

5 years agoAMDGPU/GlobalISel: RegBankSelect for llvm.amdgcn.s.buffer.load
Matt Arsenault [Fri, 17 May 2019 12:02:34 +0000 (12:02 +0000)]
AMDGPU/GlobalISel: RegBankSelect for llvm.amdgcn.s.buffer.load

llvm-svn: 361023

5 years agoAMDGPU/GlobalISel: Use subreg index instead of extra unmerge
Matt Arsenault [Fri, 17 May 2019 12:02:31 +0000 (12:02 +0000)]
AMDGPU/GlobalISel: Use subreg index instead of extra unmerge

This saves instructions and extra steps, but I'm not sure about
introducing subregister indexes at this point.

llvm-svn: 361022

5 years agoAMDGPU/GlobalISel: Use waterfall loop for buffer_load
Matt Arsenault [Fri, 17 May 2019 12:02:27 +0000 (12:02 +0000)]
AMDGPU/GlobalISel: Use waterfall loop for buffer_load

This adds support for more complex waterfall loops that need to handle
operands > 32-bits, and multiple operands.

llvm-svn: 361021

5 years agoGlobalISel: Fix missing version of customFor
Matt Arsenault [Fri, 17 May 2019 11:49:41 +0000 (11:49 +0000)]
GlobalISel: Fix missing version of customFor

Add the list of pairs analagous, like legalFor and customFor has.

llvm-svn: 361020

5 years agoGlobalISel: Add fp<->int casts to MachineIRBuilder
Matt Arsenault [Fri, 17 May 2019 11:49:39 +0000 (11:49 +0000)]
GlobalISel: Add fp<->int casts to MachineIRBuilder

llvm-svn: 361019

5 years agoGlobalISel: Add MIRBuilder wrappers for bitcount instructions
Matt Arsenault [Fri, 17 May 2019 11:49:35 +0000 (11:49 +0000)]
GlobalISel: Add MIRBuilder wrappers for bitcount instructions

Various expansions use these.

llvm-svn: 361018

5 years ago[MinGW] Include --enable-auto-import in the help listing
Martin Storsjo [Fri, 17 May 2019 11:07:46 +0000 (11:07 +0000)]
[MinGW] Include --enable-auto-import in the help listing

Libtool concludes that the linker doesn't support shared libraries,
unless this flag is listed in the output of --help.

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

llvm-svn: 361017

5 years ago[MinGW] Implement the -v and --version flags for the MinGW driver
Martin Storsjo [Fri, 17 May 2019 11:07:42 +0000 (11:07 +0000)]
[MinGW] Implement the -v and --version flags for the MinGW driver

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

llvm-svn: 361016

5 years ago[MinGW] Implement --help for the MinGW driver
Martin Storsjo [Fri, 17 May 2019 11:07:38 +0000 (11:07 +0000)]
[MinGW] Implement --help for the MinGW driver

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

llvm-svn: 361015