OSDN Git Service

android-x86/external-llvm.git
5 years ago[GVNSink] Add unary FNeg support to GVNSink pass
Cameron McInally [Fri, 28 Jun 2019 19:57:31 +0000 (19:57 +0000)]
[GVNSink] Add unary FNeg support to GVNSink pass

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364678 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[demangle] Support for C++2a char8_t
Erik Pilkington [Fri, 28 Jun 2019 19:54:19 +0000 (19:54 +0000)]
[demangle] Support for C++2a char8_t

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364677 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoDefault to Secure PLT on PPC for musl libc.
Brad Smith [Fri, 28 Jun 2019 19:48:31 +0000 (19:48 +0000)]
Default to Secure PLT on PPC for musl libc.

This matches the default settings of clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364675 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-ar] Document response file support in --help
Sam Clegg [Fri, 28 Jun 2019 18:48:05 +0000 (18:48 +0000)]
[llvm-ar] Document response file support in --help

Also a test for this.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364673 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRe-apply r364600 with fixes.
Lang Hames [Fri, 28 Jun 2019 18:36:59 +0000 (18:36 +0000)]
Re-apply r364600 with fixes.

Fix: MachO/X86_64_RELOC_GOT is a 32-bit reloc, so only compare 32 bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364672 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[unittests][Support] Fix LLVM-Unit :: Support/./SupportTests/FileSystemTest.permissio...
Rainer Orth [Fri, 28 Jun 2019 18:29:18 +0000 (18:29 +0000)]
[unittests][Support] Fix LLVM-Unit :: Support/./SupportTests/FileSystemTest.permissions on Solaris

LLVM-Unit :: Support/./SupportTests/FileSystemTest.permissions currently
FAILs on Solaris:

  FAIL: LLVM-Unit :: Support/./SupportTests/FileSystemTest.permissions (2940 of 51555)
  ******************** TEST 'LLVM-Unit :: Support/./SupportTests/FileSystemTest.permissions' FAILED ********************
  Note: Google Test filter = FileSystemTest.permissions
  [==========] Running 1 test from 1 test case.
  [----------] Global test environment set-up.
  [----------] 1 test from FileSystemTest
  [ RUN      ] FileSystemTest.permissions
  /opt/llvm-buildbot/obj/llvm/llvm.src/unittests/Support/Path.cpp:1705: Failure
  Value of: CheckPermissions(fs::sticky_bit)
    Actual: false
  Expected: true
  /opt/llvm-buildbot/obj/llvm/llvm.src/unittests/Support/Path.cpp:1712: Failure
  Value of: CheckPermissions(fs::set_uid_on_exe | fs::set_gid_on_exe | fs::sticky_bit)
    Actual: false
  Expected: true
  /opt/llvm-buildbot/obj/llvm/llvm.src/unittests/Support/Path.cpp:1719: Failure
  Value of: CheckPermissions(fs::all_read | fs::set_uid_on_exe | fs::set_gid_on_exe | fs::sticky_bit)
    Actual: false
  Expected: true
  /opt/llvm-buildbot/obj/llvm/llvm.src/unittests/Support/Path.cpp:1722: Failure
  Value of: CheckPermissions(fs::all_perms)
    Actual: false
  Expected: true
  [  FAILED  ] FileSystemTest.permissions (0 ms)
  [----------] 1 test from FileSystemTest (0 ms total)

  [----------] Global test environment tear-down
  [==========] 1 test from 1 test case ran. (1 ms total)
  [  PASSED  ] 0 tests.
  [  FAILED  ] 1 test, listed below:
  [  FAILED  ] FileSystemTest.permissions

   1 FAILED TEST

Checking with truss reveals that this is the same issue as on AIX and
documented in chmod(2):

  If the process is not a privileged process and the file is not a direc-
  tory, mode bit 01000 (S_ISVTX, the sticky bit) is cleared.

The following patch fixes this in the same way.  Tested on amd64-pc-solaris2.11.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364671 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[UpdateChecks] Add support for armv7-apple-darwin
Jinsong Ji [Fri, 28 Jun 2019 18:07:19 +0000 (18:07 +0000)]
[UpdateChecks] Add support for armv7-apple-darwin

armv7-apple-darwin was not supported well, the script can't generate
checks.

https://reviews.llvm.org/D60601/new/#inline-568671

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364668 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] CombineShuffleWithExtract - recurse through EXTRACT_SUBVECTOR chain
Simon Pilgrim [Fri, 28 Jun 2019 17:57:32 +0000 (17:57 +0000)]
[X86] CombineShuffleWithExtract - recurse through EXTRACT_SUBVECTOR chain

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364667 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agohwasan: Remove the old frame descriptor mechanism.
Peter Collingbourne [Fri, 28 Jun 2019 17:53:26 +0000 (17:53 +0000)]
hwasan: Remove the old frame descriptor mechanism.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364665 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][Codegen] Revisit test coverage for X % C == 0 fold once more (add tests with...
Roman Lebedev [Fri, 28 Jun 2019 17:26:28 +0000 (17:26 +0000)]
[NFC][Codegen] Revisit test coverage for X % C == 0 fold once more (add tests with '1' divisor)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364661 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[WebAssembly] Added visibility and ident directives to WasmAsmParser.
Wouter van Oortmerssen [Fri, 28 Jun 2019 16:51:06 +0000 (16:51 +0000)]
[WebAssembly] Added visibility and ident directives to WasmAsmParser.

Summary:
These are output by clang -S, so can now be roundtripped thru clang.

(partially) fixes: https://bugs.llvm.org/show_bug.cgi?id=34544

Reviewers: dschuff

Subscribers: sbc100, jgravelle-google, aheejin, sunfish, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364658 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][InstCombine] Shift amount reassociation: revisit flag preservation tests
Roman Lebedev [Fri, 28 Jun 2019 16:36:53 +0000 (16:36 +0000)]
[NFC][InstCombine] Shift amount reassociation: revisit flag preservation tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364657 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU][MC] Fix 2 for sanitizer failure in 364645
Dmitry Preobrazhensky [Fri, 28 Jun 2019 16:28:46 +0000 (16:28 +0000)]
[AMDGPU][MC] Fix 2 for sanitizer failure in 364645

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364656 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Add support for the MVE long shift instructions
Sam Tebbs [Fri, 28 Jun 2019 15:43:31 +0000 (15:43 +0000)]
[ARM] Add support for the MVE long shift instructions

MVE adds the lsll, lsrl and asrl instructions, which perform a shift on a 64 bit value separated into two 32 bit registers.

The Expand64BitShift function is modified to accept ISD::SHL, ISD::SRL and ISD::SRA and convert it into the appropriate opcode in ARMISD. An SHL is converted into an lsll, an SRL is converted into an lsrl for the immediate form and a negation and lsll for the register form, and SRA is converted into an asrl.

test/CodeGen/ARM/shift_parts.ll is added to test the logic of emitting these instructions.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364654 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-cov[ Fix lcov coverage report contains functions from other compilation units.
Max Moroz [Fri, 28 Jun 2019 15:38:25 +0000 (15:38 +0000)]
[llvm-cov[ Fix lcov coverage report contains functions from other compilation units.

Summary: Patch by Chuan Qiu (@eagleonhill).

Reviewers: Dor1s

Reviewed By: Dor1s

Subscribers: lebedev.ri, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364653 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][InstCombine] Shift amount reassociation: add flag preservation test
Roman Lebedev [Fri, 28 Jun 2019 15:32:52 +0000 (15:32 +0000)]
[NFC][InstCombine] Shift amount reassociation: add flag preservation test

As discussed in https://reviews.llvm.org/D63812#inline-569870
* exact on both lshr => exact https://rise4fun.com/Alive/plHk
* exact on both ashr => exact https://rise4fun.com/Alive/QDAA
* nuw on both shl => nuw https://rise4fun.com/Alive/5Uk
* nsw on both shl => nsw https://rise4fun.com/Alive/0plg

So basically if the same flag is set on both original shifts -> set it on new shift.
Don't think we can do anything with non-matching flags on shl.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364652 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU][MC] Fix for sanitizer failure in 364645
Dmitry Preobrazhensky [Fri, 28 Jun 2019 15:22:47 +0000 (15:22 +0000)]
[AMDGPU][MC] Fix for sanitizer failure in 364645

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364651 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][Float2Int] Pre-commit unary FNeg test to basic.ll
Cameron McInally [Fri, 28 Jun 2019 15:12:15 +0000 (15:12 +0000)]
[NFC][Float2Int] Pre-commit unary FNeg test to basic.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364649 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][NewGVN] Pre-commit unary FNeg test to fpmath.ll
Cameron McInally [Fri, 28 Jun 2019 14:39:58 +0000 (14:39 +0000)]
[NFC][NewGVN] Pre-commit unary FNeg test to fpmath.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364646 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU][MC] Enabled constant expressions as operands of sendmsg
Dmitry Preobrazhensky [Fri, 28 Jun 2019 14:14:02 +0000 (14:14 +0000)]
[AMDGPU][MC] Enabled constant expressions as operands of sendmsg

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

Reviewers: artem.tamazov, arsenm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364645 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] CombineShuffleWithExtract - only require 1 source to be EXTRACT_SUBVECTOR
Simon Pilgrim [Fri, 28 Jun 2019 12:24:49 +0000 (12:24 +0000)]
[X86] CombineShuffleWithExtract - only require 1 source to be EXTRACT_SUBVECTOR

We were requiring that both shuffle operands were EXTRACT_SUBVECTORs, but we can relax this to only require one of them to be.

Also, we shouldn't bother attempting this if both operands are from the lowest subvector (or not EXTRACT_SUBVECTOR at all).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364644 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Add MVE mul patterns
David Green [Fri, 28 Jun 2019 11:44:03 +0000 (11:44 +0000)]
[ARM] Add MVE mul patterns

This simply adds integer and floating point VMUL patterns for MVE, same as we
have add and sub.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364643 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][Codegen] Revisit test coverage for X % C == 0 fold
Roman Lebedev [Fri, 28 Jun 2019 11:36:34 +0000 (11:36 +0000)]
[NFC][Codegen] Revisit test coverage for X % C == 0 fold

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364642 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Mark math routines as non-legal for MVE
David Green [Fri, 28 Jun 2019 11:17:38 +0000 (11:17 +0000)]
[ARM] Mark math routines as non-legal for MVE

This adds handling and tests for a number of floating point math routines,
which have no MVE instructions.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364641 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] MVE patterns for VABS and VNEG
David Green [Fri, 28 Jun 2019 10:25:35 +0000 (10:25 +0000)]
[ARM] MVE patterns for VABS and VNEG

This simply adds the required patterns for fp neg and abs.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364640 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[DebugInfo] Fix setStartAddress after r364637
Fangrui Song [Fri, 28 Jun 2019 10:10:10 +0000 (10:10 +0000)]
[DebugInfo] Fix setStartAddress after r364637

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364638 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[DebugInfo] Simplify GSYM::AddressRange and GSYM::AddressRanges
Fangrui Song [Fri, 28 Jun 2019 10:06:11 +0000 (10:06 +0000)]
[DebugInfo] Simplify GSYM::AddressRange and GSYM::AddressRanges

Delete unnecessary getters of AddressRange.
Simplify AddressRange::size(): Start <= End check should be checked in an upper layer.
Delete isContiguousWith() that doesn't make sense.
Simplify AddressRanges::insert. Delete commented code. Fix it when more than 1 ranges are to be deleted.
Delete trailing newline.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364637 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Widening loads and narrowing stores
David Green [Fri, 28 Jun 2019 09:47:55 +0000 (09:47 +0000)]
[ARM] Widening loads and narrowing stores

MVE has instructions to widen as it loads, and narrow as it stores. This adds
the required patterns and legalisation to make them work including specifying
that they are legal, patterns to select them and test changes.

Patch by David Sherwood.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364636 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Fix integer UB in MVE load/store immediate handling.
Simon Tatham [Fri, 28 Jun 2019 09:28:39 +0000 (09:28 +0000)]
[ARM] Fix integer UB in MVE load/store immediate handling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364635 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[DebugInfo] GSYM cleanups after D63104/r364427
Fangrui Song [Fri, 28 Jun 2019 08:58:05 +0000 (08:58 +0000)]
[DebugInfo] GSYM cleanups after D63104/r364427

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364634 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] MVE loads and stores
David Green [Fri, 28 Jun 2019 08:41:40 +0000 (08:41 +0000)]
[ARM] MVE loads and stores

This fills in the gaps for basic MVE loads and stores, allowing unaligned
access and adding far too many tests. These will become important as
narrowing/expanding and pre/post inc are added. Big endian might still not be
handled very well, because we have not yet added bitcasts (and I'm not sure how
we want it to work yet). I've included the alignment code anyway which maps
with our current patterns. We plan to return to that later.

Code written by Simon Tatham, with additional tests from Me and Mikhail Maltsev.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364633 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AVR] Don't look for the TargetFrameLowering in the FrameLowering implementation
Dylan McKay [Fri, 28 Jun 2019 08:35:21 +0000 (08:35 +0000)]
[AVR] Don't look for the TargetFrameLowering in the FrameLowering implementation

c.f. r364349

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364632 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Mark div and rem as expand for MVE
David Green [Fri, 28 Jun 2019 08:18:55 +0000 (08:18 +0000)]
[ARM] Mark div and rem as expand for MVE

We don't have vector operations for these, so they need to be expanded for both
integer and float.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364631 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Select MVE fp add and sub
David Green [Fri, 28 Jun 2019 07:41:09 +0000 (07:41 +0000)]
[ARM] Select MVE fp add and sub

The same as integer arithmetic, we can add simple floating point MVE addition and
subtraction patterns.

Initial code by David Sherwood

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364629 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[HardwareLoops] Loop counter guard intrinsic
Sam Parker [Fri, 28 Jun 2019 07:38:16 +0000 (07:38 +0000)]
[HardwareLoops] Loop counter guard intrinsic

Introduce llvm.test.set.loop.iterations which sets the loop counter
and also produces an i1 after testing that the count is not zero.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364628 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Select MVE add and sub
David Green [Fri, 28 Jun 2019 07:21:11 +0000 (07:21 +0000)]
[ARM] Select MVE add and sub

This adds the first few patterns for MVE code generation, adding simple integer
add and sub patterns.

Initial code by David Sherwood

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364627 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] MVE vector shuffles
David Green [Fri, 28 Jun 2019 07:08:42 +0000 (07:08 +0000)]
[ARM] MVE vector shuffles

This patch adds necessary shuffle vector and buildvector support for ARM MVE.
It essentially adds support for VDUP, VREVs and some VMOVs, which are often
required by other code (like upcoming patches).

This mostly uses the same code from Neon that already generated
NEONvdup/NEONvduplane/NEONvrev's. These have been renamed to ARMvdup/etc and
moved to ARMInstrInfo as they are common to both architectures. Most of the
selection code seems to be applicable to both, but NEON does have some more
instructions making some parts specific.

Most code originally by David Sherwood.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364626 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] Connect the output chain properly when combining vzext_movl+load into vzext_load.
Craig Topper [Fri, 28 Jun 2019 06:58:50 +0000 (06:58 +0000)]
[X86] Connect the output chain properly when combining vzext_movl+load into vzext_load.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364625 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoSilence gcc warning in testcase [NFC]
Mikael Holmen [Fri, 28 Jun 2019 06:45:20 +0000 (06:45 +0000)]
Silence gcc warning in testcase [NFC]

Without the fix gcc (7.4.0) complains with

../unittests/ADT/APIntTest.cpp: In member function 'virtual void {anonymous}::APIntTest_MultiplicativeInverseExaustive_Test::TestBody()':
../unittests/ADT/APIntTest.cpp:2510:36: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
     for (unsigned Value = 0; Value < (1 << BitWidth); ++Value) {
                              ~~~~~~^~~~~~~~~~~~~~~~~

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364624 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] Remove some duplicate patterns that already exist as part of their instruction...
Craig Topper [Fri, 28 Jun 2019 05:03:47 +0000 (05:03 +0000)]
[X86] Remove some duplicate patterns that already exist as part of their instruction definition. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364623 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Support] Fix add fs::getUmask() patch
Alex Brachet [Fri, 28 Jun 2019 04:07:13 +0000 (04:07 +0000)]
[Support] Fix add fs::getUmask() patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364622 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Support] Add fs::getUmask() function and change fs::setPermissions
Alex Brachet [Fri, 28 Jun 2019 03:21:00 +0000 (03:21 +0000)]
[Support] Add fs::getUmask() function and change fs::setPermissions

Summary: This patch changes fs::setPermissions to optionally set permissions while respecting the umask. It also adds the function fs::getUmask() which returns the current umask.

Reviewers: jhenderson, rupprecht, aprantl, lhames

Reviewed By: jhenderson, rupprecht

Subscribers: sanaanajjar231288, hiraditya, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364621 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][PowerPC] Move XS*QP series instruction apart from XS*QPO series in position...
Zi Xuan Wu [Fri, 28 Jun 2019 02:51:03 +0000 (02:51 +0000)]
[NFC][PowerPC] Move XS*QP series instruction apart from XS*QPO series in position of td file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364620 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[AMDGPU] Packed thread ids in function call ABI
Stanislav Mekhanoshin [Fri, 28 Jun 2019 01:52:13 +0000 (01:52 +0000)]
[AMDGPU] Packed thread ids in function call ABI

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364619 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoGlobalISel: Use Register
Matt Arsenault [Fri, 28 Jun 2019 01:47:44 +0000 (01:47 +0000)]
GlobalISel: Use Register

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364618 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[PowerPC][NFC] Use `|=` to update `Simplified` flag
Kai Luo [Fri, 28 Jun 2019 01:38:42 +0000 (01:38 +0000)]
[PowerPC][NFC] Use `|=` to update `Simplified` flag

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364617 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoAMDGPU/GlobalISel: Convert to using Register
Matt Arsenault [Fri, 28 Jun 2019 01:16:46 +0000 (01:16 +0000)]
AMDGPU/GlobalISel: Convert to using Register

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364616 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoGlobalISel: Convert rest of MachineIRBuilder to using Register
Matt Arsenault [Fri, 28 Jun 2019 01:16:41 +0000 (01:16 +0000)]
GlobalISel: Convert rest of MachineIRBuilder to using Register

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364615 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[GlobalISel][IRTranslator] Fix some PHI bugs related to jump tables when optimization...
Amara Emerson [Thu, 27 Jun 2019 23:56:34 +0000 (23:56 +0000)]
[GlobalISel][IRTranslator] Fix some PHI bugs related to jump tables when optimizations are used.

The new switch lowering code that tries to generate jump tables and range checks
were tested at -O0 on arm64, but on -O3 the generic switch lowering code goes to
town on trying to generate optimized lowerings, e.g. multiple jump tables, range
checks etc. This exposed bugs in the way PHI nodes are handled because the CFG
looks even stranger after all of this is done.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364613 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[InlineCost] make InlineCost assignable
Fedor Sergeev [Thu, 27 Jun 2019 23:41:03 +0000 (23:41 +0000)]
[InlineCost] make InlineCost assignable

Summary:
Current InlineCost is not assignable because of const members Cost and Threshold.
I dont see practical benefits from having them const (access to these members is
private and internal interactions are rather simple). On other hand that makes
it hard to use as a member in some other data structure where assignability is necessary.

I'm going to use InlineCost in a downstream inliner that maintains a complex queue
of candidate call-sites and thus keeping and recalculating InlineCost is necessary.

This patch just removes 'const' from both members, making InlineCost assignable.

Reviewers: eraman, greened, chandlerc, yrouban, apilipenko
Reviewed By: apilipenko
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63823

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364612 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoFix ASAN error caused by commit r364512.
Rumeet Dhindsa [Thu, 27 Jun 2019 23:37:04 +0000 (23:37 +0000)]
Fix ASAN error caused by commit r364512.

This patch intends to fix ASAN stack-use-after-scope error.
This is at least a short-term fix to unbreak LLVM's mainline.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364611 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[LangRef] Clarify codegen expectations for intrinsics with fp/integer-only overloads.
Amara Emerson [Thu, 27 Jun 2019 23:33:05 +0000 (23:33 +0000)]
[LangRef] Clarify codegen expectations for intrinsics with fp/integer-only overloads.

This change is a result of discussions on list: "GlobalISel: Ambiguous intrinsic semantics problem"

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364610 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agohwasan: Use llvm.read_register intrinsic to read the PC on aarch64 instead of taking...
Peter Collingbourne [Thu, 27 Jun 2019 23:24:07 +0000 (23:24 +0000)]
hwasan: Use llvm.read_register intrinsic to read the PC on aarch64 instead of taking the function's address.

This shaves an instruction (and a GOT entry in PIC code) off prologues of
functions with stack variables.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364608 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRevert "[JITLink][MachO/x86-64] Add a testcase for X86_64_RELOC_GOT."
Lang Hames [Thu, 27 Jun 2019 23:00:30 +0000 (23:00 +0000)]
Revert "[JITLink][MachO/x86-64] Add a testcase for X86_64_RELOC_GOT."

Reverts commit r364600 while I investigate bot failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364606 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case) (try 3)
Roman Lebedev [Thu, 27 Jun 2019 21:52:10 +0000 (21:52 +0000)]
[CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case) (try 3)

Summary:
I'm submitting a new revision since i don't understand how to reclaim/reopen/take over the existing one, D50222.
There is no such action in "Add Action" menu...

This implements an optimization described in Hacker's Delight 10-17: when `C` is constant,
the result of `X % C == 0` can be computed more cheaply without actually calculating the remainder.
The motivation is discussed here: https://bugs.llvm.org/show_bug.cgi?id=35479.

This is a recommit, the original commit rL364563 was reverted in rL364568
because test-suite detected miscompile - the new comparison constant 'Q'
was being computed incorrectly (we divided by `D0` instead of `D`).

Original patch D50222 by @hermord (Dmytro Shynkevych)

Notes:
- In principle, it's possible to also handle the `X % C1 == C2` case, as discussed on bugzilla.
  This seems to require an extra branch on overflow, so I refrained from implementing this for now.
- An explicit check for when the `REM` can be reduced to just its LHS is included:
  the `X % C` == 0 optimization breaks `test1` in `test/CodeGen/X86/jump_sign.ll` otherwise.
  I hadn't managed to find a better way to not generate worse output in this case.
- The `test/CodeGen/X86/jump_sign.ll` regresses, and is being fixed by a followup patch D63390.

Reviewers: RKSimon, craig.topper, spatel, hermord, xbolva00

Reviewed By: RKSimon, xbolva00

Subscribers: dexonsmith, kristina, xbolva00, javed.absar, llvm-commits, hermord

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364600 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][APInt] Add (exhaustive) test for multiplicativeInverse()
Roman Lebedev [Thu, 27 Jun 2019 21:51:54 +0000 (21:51 +0000)]
[NFC][APInt] Add (exhaustive) test for multiplicativeInverse()

Else there is no direct test coverage at all.
The function should either return '0' or precise answer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364599 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[JITLink][MachO/x86-64] Add a testcase for X86_64_RELOC_GOT.
Lang Hames [Thu, 27 Jun 2019 21:50:29 +0000 (21:50 +0000)]
[JITLink][MachO/x86-64] Add a testcase for X86_64_RELOC_GOT.

This is the data-section counterpart to X86_64_RELOC_GOTPCREL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364598 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][GVNSink] Pre-commit unary FNeg test to fpmath.ll
Cameron McInally [Thu, 27 Jun 2019 21:23:07 +0000 (21:23 +0000)]
[NFC][GVNSink] Pre-commit unary FNeg test to fpmath.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364597 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[WebAssembly] Enable an atomic.notify MC test
Heejin Ahn [Thu, 27 Jun 2019 21:22:04 +0000 (21:22 +0000)]
[WebAssembly] Enable an atomic.notify MC test

Summary:
Assembly of atomic.notify has been fixed in r364576, so we can enable
it.

Reviewers: aardappel

Subscribers: dschuff, sbc100, jgravelle-google, sunfish, jfb, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364596 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[GVN] Add support for unary FNeg to GVN pass
Cameron McInally [Thu, 27 Jun 2019 21:05:02 +0000 (21:05 +0000)]
[GVN] Add support for unary FNeg to GVN pass

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364592 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.*
Reid Kleckner [Thu, 27 Jun 2019 20:56:04 +0000 (20:56 +0000)]
[compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.*

These lit configuration files are really Python source code. Using the
.py file extension helps editors and tools use the correct language
mode. LLVM and Clang already use this convention for lit configuration,
this change simply applies it to all of compiler-rt.

Reviewers: vitalybuka, dberris

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364591 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoConvert line endings to LF.
Alexandre Ganea [Thu, 27 Jun 2019 20:46:11 +0000 (20:46 +0000)]
Convert line endings to LF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364590 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[x86] remove whitespace; NFC
Sanjay Patel [Thu, 27 Jun 2019 20:37:12 +0000 (20:37 +0000)]
[x86] remove whitespace; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364588 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][GVN] Pre-commit unary FNeg tests to fpmath.ll
Cameron McInally [Thu, 27 Jun 2019 20:33:44 +0000 (20:33 +0000)]
[NFC][GVN] Pre-commit unary FNeg tests to fpmath.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364587 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[x86] prevent crashing from select narrowing with AVX512
Sanjay Patel [Thu, 27 Jun 2019 20:16:58 +0000 (20:16 +0000)]
[x86] prevent crashing from select narrowing with AVX512

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364585 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[GN] Update build file
Vitaly Buka [Thu, 27 Jun 2019 19:55:22 +0000 (19:55 +0000)]
[GN] Update build file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364583 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[GN] Set exit code to 1 if changes are needed
Vitaly Buka [Thu, 27 Jun 2019 19:55:21 +0000 (19:55 +0000)]
[GN] Set exit code to 1 if changes are needed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364582 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[PowerPC][NFC] Remove unused (and unsupported) fusion feature bits.
Jinsong Ji [Thu, 27 Jun 2019 19:35:11 +0000 (19:35 +0000)]
[PowerPC][NFC] Remove unused (and unsupported) fusion feature bits.

FeatureFusion bits was first introduced in
https://reviews.llvm.org/rL253724. for add/load integer fusion for P8.
The only use of `hasFusion` was https://reviews.llvm.org/rL255319.

However, this was removed later in https://reviews.llvm.org/rL280440.

So, there is NO any reference to fusion in code now.

Leaving it there is misleading and confusing, so remove it for now.
We can alwasy add back if we ever support fusion in the future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364581 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoUse "willreturn" in isGuaranteedToTransferExecutionToSuccessor
Johannes Doerfert [Thu, 27 Jun 2019 19:29:48 +0000 (19:29 +0000)]
Use "willreturn" in isGuaranteedToTransferExecutionToSuccessor

The `willreturn` function attribute guarantees that a function call will
come back to the call site if the call is also known not to throw.
Therefore, this attribute can be used in
`isGuaranteedToTransferExecutionToSuccessor`.

Patch by Hideto Ueno (@uenoku)

Reviewers: jdoerfert, sstefan1

Reviewed By: jdoerfert

Subscribers: hiraditya, jfb, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364580 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoUpdate -analyze -scalar-evolution output for multiple exit loops w/computable exit...
Philip Reames [Thu, 27 Jun 2019 19:22:43 +0000 (19:22 +0000)]
Update -analyze -scalar-evolution output for multiple exit loops w/computable exit values

The previous output was next to useless if *any* exit was not computable.  If we have more than one exit, show the exit count for each so that it's easier to see what's going from with SCEV analysis when debugging.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364579 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[NFC][CodeGen] Add negative test for X u% C == 0 fold (D63391)
Roman Lebedev [Thu, 27 Jun 2019 19:09:51 +0000 (19:09 +0000)]
[NFC][CodeGen] Add negative test for X u% C == 0 fold (D63391)

The fold (D63391) uses multiplicativeInverse(),
but it is not guaranteed to always succeed,
and '100' appears to be one of the problematic values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364578 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoCorrect the file path. NFC.
Michael Liao [Thu, 27 Jun 2019 19:05:46 +0000 (19:05 +0000)]
Correct the file path. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364577 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[WebAssembly] AsmParser: better atomic inst detection
Wouter van Oortmerssen [Thu, 27 Jun 2019 18:58:26 +0000 (18:58 +0000)]
[WebAssembly] AsmParser: better atomic inst detection

Summary:
Previously missed atomic.notify.

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

Reviewers: aheejin

Subscribers: sbc100, jgravelle-google, sunfish, jfb, llvm-commits, dschuff

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364576 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-objdump] Update the doc for --disassemble-functions.
Yuanfang Chen [Thu, 27 Jun 2019 18:39:34 +0000 (18:39 +0000)]
[llvm-objdump] Update the doc for --disassemble-functions.

Update the doc after llvm-svn: 364121 is landed.
With two more trivial fixes that are not related to
--disassemble-functions but still about llvm-objdump.

Reviewers: jhenderson, grimar, MaskRay, rupprecht, peter.smith

Reviewed by: jhenderson, MaskRay

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364573 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRevert "[LiveDebugValues] Emit the debug entry values"
Djordje Todorovic [Thu, 27 Jun 2019 18:12:04 +0000 (18:12 +0000)]
Revert "[LiveDebugValues] Emit the debug entry values"

Appears that the 'test/DebugInfo/MIR/X86/dbginfo-entryvals.mir'
does not pass on Windows.

This reverts commit rL364553.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364571 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[WebAssembly] Fix p2align in assembler.
Wouter van Oortmerssen [Thu, 27 Jun 2019 18:11:15 +0000 (18:11 +0000)]
[WebAssembly] Fix p2align in assembler.

Summary:
- Match the syntax output by InstPrinter.
- Fix it always emitting 0 for align. Had to work around fact that
  opcode is not available for GetDefaultP2Align while parsing.
- Updated tests that were erroneously happy with a p2align=0

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

Reviewers: aheejin, sbc100

Subscribers: jgravelle-google, sunfish, jfb, llvm-commits, dschuff

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364570 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] combineX86ShufflesRecursively - merge shuffles with more than 2 inputs
Simon Pilgrim [Thu, 27 Jun 2019 17:30:51 +0000 (17:30 +0000)]
[X86] combineX86ShufflesRecursively - merge shuffles with more than 2 inputs

We already had the infrastructure for this, but were waiting for the fix for a number of regressions which were handled by the recent shuffle(extract_subvector(),extract_subvector()) -> extract_subvector(shuffle()) shuffle combines

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364569 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRevert "[CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case) ...
Roman Lebedev [Thu, 27 Jun 2019 17:22:31 +0000 (17:22 +0000)]
Revert "[CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case) (try 2)"

*Appears* to break test-suite on
http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/23790

FAIL: burg.execution_time
FAIL: spiff.execution_time
FAIL: employ.execution_time
FAIL: llu.execution_time
FAIL: gramschmidt.execution_time
FAIL: fdtd-apml.execution_time

This reverts commit r364563.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364568 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoAMDGPU: Make fixing i1 copies robust against re-ordering
Nicolai Haehnle [Thu, 27 Jun 2019 16:56:44 +0000 (16:56 +0000)]
AMDGPU: Make fixing i1 copies robust against re-ordering

Summary:
The new test case led to incorrect code.

Change-Id: Ief48b227e97aa662dd3535c9bafb27d4a184efca

Reviewers: arsenm, david-salinas

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

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364566 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Move low overhead loop codegen tests into a separate file. NFC
David Green [Thu, 27 Jun 2019 16:56:41 +0000 (16:56 +0000)]
[ARM] Move low overhead loop codegen tests into a separate file. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364565 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoUse getConstantOperandAPInt instead of getConstantOperandVal for comparisons.
Simon Pilgrim [Thu, 27 Jun 2019 16:46:00 +0000 (16:46 +0000)]
Use getConstantOperandAPInt instead of getConstantOperandVal for comparisons.

getConstantOperandAPInt avoids any large integer issues - these are unlikely but the fuzzers do like to mess around.....

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364564 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case) (try 2)
Roman Lebedev [Thu, 27 Jun 2019 16:45:42 +0000 (16:45 +0000)]
[CodeGen] [SelectionDAG] More efficient code for X % C == 0 (UREM case) (try 2)

Summary:
I'm submitting a new revision since i don't understand how to reclaim/reopen/take over the existing one, D50222.
There is no such action in "Add Action" menu...
Original patch D50222 by @hermord (Dmytro Shynkevych)

This implements an optimization described in Hacker's Delight 10-17: when `C` is constant,
the result of `X % C == 0` can be computed more cheaply without actually calculating the remainder.
The motivation is discussed here: https://bugs.llvm.org/show_bug.cgi?id=35479.

Original patch author: @hermord (Dmytro Shynkevych)!

Notes:
- In principle, it's possible to also handle the `X % C1 == C2` case, as discussed on bugzilla.
  This seems to require an extra branch on overflow, so I refrained from implementing this for now.
- An explicit check for when the `REM` can be reduced to just its LHS is included:
  the `X % C` == 0 optimization breaks `test1` in `test/CodeGen/X86/jump_sign.ll` otherwise.
  I hadn't managed to find a better way to not generate worse output in this case.
- The `test/CodeGen/X86/jump_sign.ll` regresses, and is being fixed by a followup patch D63390.

Reviewers: RKSimon, craig.topper, spatel, hermord, xbolva00

Reviewed By: RKSimon, xbolva00

Subscribers: xbolva00, javed.absar, llvm-commits, hermord

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364563 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[X86] getTargetVShiftByConstNode - reduce variable scope. NFCI.
Simon Pilgrim [Thu, 27 Jun 2019 16:33:44 +0000 (16:33 +0000)]
[X86] getTargetVShiftByConstNode - reduce variable scope. NFCI.

Fixes cppcheck warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364561 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[ARM] Fix formatting issue in ARMISelLowering.cpp
Sam Tebbs [Thu, 27 Jun 2019 16:28:28 +0000 (16:28 +0000)]
[ARM] Fix formatting issue in ARMISelLowering.cpp

Fix a formatting error in ARMISelLowering.cpp::Expand64BitShift. My test
commit after receiving write access.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364560 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[llvm-nm] Fix for BZ41711 - Class character for a symbol with undefined
Chris Jackson [Thu, 27 Jun 2019 16:27:53 +0000 (16:27 +0000)]
[llvm-nm] Fix for BZ41711 - Class character for a symbol with undefined
          binding does not match class assigned by GNU nm

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

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364559 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRecommit [PowerPC] Update P9 vector costs for insert/extract element
Roland Froese [Thu, 27 Jun 2019 16:20:24 +0000 (16:20 +0000)]
Recommit [PowerPC] Update P9 vector costs for insert/extract element

Recommit patch D60160 after regression fix patch D63463.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364557 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[debug-info] Make a couple of tests more robust.
Paul Robinson [Thu, 27 Jun 2019 15:53:07 +0000 (15:53 +0000)]
[debug-info] Make a couple of tests more robust.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364556 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[Attr] Add "willreturn" function attribute
Johannes Doerfert [Thu, 27 Jun 2019 15:51:40 +0000 (15:51 +0000)]
[Attr] Add "willreturn" function attribute

This patch introduces a new function attribute, willreturn, to indicate
that a call of this function will either exhibit undefined behavior or
comes back and continues execution at a point in the existing call stack
that includes the current invocation.

This attribute guarantees that the function does not have any endless
loops, endless recursion, or terminating functions like abort or exit.

Patch by Hideto Ueno (@uenoku)

Reviewers: jdoerfert

Subscribers: mehdi_amini, hiraditya, steven_wu, dexonsmith, lebedev.ri, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364555 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[LiveDebugValues] Emit the debug entry values
Djordje Todorovic [Thu, 27 Jun 2019 15:35:48 +0000 (15:35 +0000)]
[LiveDebugValues] Emit the debug entry values

Emit replacements for clobbered parameters location if the parameter
has unmodified value throughout the funciton. This is basic scenario
where we can use the debug entry values.

([12/13] Introduce the debug entry values.)

Co-authored-by: Ananth Sowda <asowda@cisco.com>
Co-authored-by: Nikola Prica <nikola.prica@rt-rk.com>
Co-authored-by: Ivan Baev <ibaev@cisco.com>
Differential Revision: https://reviews.llvm.org/D58042

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364553 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[docs][llvm-nm][llvm-objdump] Improve "See Also" section
James Henderson [Thu, 27 Jun 2019 15:18:15 +0000 (15:18 +0000)]
[docs][llvm-nm][llvm-objdump] Improve "See Also" section

The "See Also" section for llvm-nm didn't actually contain any links,
and the tools referred to didn't make much sense (referring to non-LLVM
tools, when we have equivalents, or tools that aren't really to do with
symbol dumping). llvm-objdump's didn't refer to llvm-readelf.

Reviewed by: grimar

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364552 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoBitcode: derive all types used from records instead of Values.
Tim Northover [Thu, 27 Jun 2019 14:46:51 +0000 (14:46 +0000)]
Bitcode: derive all types used from records instead of Values.

There is existing bitcode that we need to support where the structured nature
of pointer types is used to derive the result type of some operation. For
example a GEP's operation and result will be based on its input Type.

When pointers become opaque, the BitcodeReader will still have access to this
information because it's explicitly told how to construct the more complex
types used, but this information will not be attached to any Value that gets
looked up. This changes BitcodeReader so that in all places which use type
information in this manner, it's derived from a side-table rather than from the
Value in question.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364550 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[LiveRangeEdit] Fix build failure caused by the rL364536
Djordje Todorovic [Thu, 27 Jun 2019 14:31:52 +0000 (14:31 +0000)]
[LiveRangeEdit] Fix build failure caused by the rL364536

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364549 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[TargetLowering] SimplifyDemandedVectorElts - add shift/rotate support.
Simon Pilgrim [Thu, 27 Jun 2019 14:25:54 +0000 (14:25 +0000)]
[TargetLowering] SimplifyDemandedVectorElts - add shift/rotate support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364548 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[InstCombine] remove 'tmp' names and regenerate checks; NFC
Sanjay Patel [Thu, 27 Jun 2019 14:20:10 +0000 (14:20 +0000)]
[InstCombine] remove 'tmp' names and regenerate checks; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364546 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[PowerPC][HTM] Fix disassembling buffer overflow for tabortdc and others
Jinsong Ji [Thu, 27 Jun 2019 14:11:31 +0000 (14:11 +0000)]
[PowerPC][HTM] Fix disassembling buffer overflow for tabortdc and others

This was reported in https://bugs.llvm.org/show_bug.cgi?id=41751
llvm-mc aborted when disassembling tabortdc.

This patch try to clean up TM related DAGs.

* Fixes the problem by remove explicit output of cr0, and put it as implicit def.
* Update int_ppc_tbegin pattern to accommodate the implicit def of cr0.
* Update the TCHECK operand and int_ppc_tcheck accordingly.
* Add some builtin test and disassembly tests.
* Remove unused CRRC0/crrc0

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364544 91177308-0d34-0410-b5e6-96231b3b80d8

5 years agoRevert r363658 "[SVE][IR] Scalable Vector IR Type with pr42210 fix"
Hans Wennborg [Thu, 27 Jun 2019 13:55:02 +0000 (13:55 +0000)]
Revert r363658 "[SVE][IR] Scalable Vector IR Type with pr42210 fix"

We saw a 70% ThinLTO link time increase in Chromium for Android, see
crbug.com/978817. Sounds like more of PR42210.

> Recommit of D32530 with a few small changes:
>   - Stopped recursively walking through aggregates in
>     the verifier, so that we don't impose too much
>     overhead on large modules under LTO (see PR42210).
>   - Changed tests to match; the errors are slightly
>     different since they only report the array or
>     struct that actually contains a scalable vector,
>     rather than all aggregates which contain one in
>     a nested member.
>   - Corrected an older comment
>
> Reviewers: thakis, rengolin, sdesmalen
>
> Reviewed By: sdesmalen
>
> Differential Revision: https://reviews.llvm.org/D63321

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364543 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[DWARF] Handle the DW_OP_entry_value operand
Djordje Todorovic [Thu, 27 Jun 2019 13:52:34 +0000 (13:52 +0000)]
[DWARF] Handle the DW_OP_entry_value operand

Add the IR and the AsmPrinter parts for handling of the DW_OP_entry_values
DWARF operation.

([11/13] Introduce the debug entry values.)

Co-authored-by: Ananth Sowda <asowda@cisco.com>
Co-authored-by: Nikola Prica <nikola.prica@rt-rk.com>
Co-authored-by: Ivan Baev <ibaev@cisco.com>
Differential Revision: https://reviews.llvm.org/D60866

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364542 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[TargetLowering] SimplifyDemandedBits - use DemandedElts to better identify partial...
Simon Pilgrim [Thu, 27 Jun 2019 13:48:43 +0000 (13:48 +0000)]
[TargetLowering] SimplifyDemandedBits - use DemandedElts to better identify partial splat shift amounts

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364541 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[mips] Mark pseudo select instructions by the `hasNoSchedulingInfo` tag
Simon Atanasyan [Thu, 27 Jun 2019 13:41:30 +0000 (13:41 +0000)]
[mips] Mark pseudo select instructions by the `hasNoSchedulingInfo` tag

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364540 91177308-0d34-0410-b5e6-96231b3b80d8

5 years ago[mips] Add new items to the list of features unsupported by P5600
Simon Atanasyan [Thu, 27 Jun 2019 13:41:23 +0000 (13:41 +0000)]
[mips] Add new items to the list of features unsupported by P5600

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364539 91177308-0d34-0410-b5e6-96231b3b80d8