platform/upstream/llvm.git
5 years agoRename MacOS X -> macOS where applicable.
Adrian Prantl [Tue, 14 May 2019 16:37:43 +0000 (16:37 +0000)]
Rename MacOS X -> macOS where applicable.

llvm-svn: 360691

5 years ago[Test] Autogen a test for ease of later changing
Philip Reames [Tue, 14 May 2019 16:37:29 +0000 (16:37 +0000)]
[Test] Autogen a test for ease of later changing

llvm-svn: 360690

5 years ago[AMDGPU] Fixed handling of imemdiate i1 literals
Stanislav Mekhanoshin [Tue, 14 May 2019 16:18:00 +0000 (16:18 +0000)]
[AMDGPU] Fixed handling of imemdiate i1 literals

This bug was exposed by the rL360395.

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

llvm-svn: 360689

5 years ago[AMDGPU] Fixed +DumpCode
Tim Renouf [Tue, 14 May 2019 16:17:14 +0000 (16:17 +0000)]
[AMDGPU] Fixed +DumpCode

The +DumpCode attribute is a horrible hack in AMDGPU to embed the
disassembly of the generated code into the elf file. It is used by LLPC
to implement an extension that allows the application to read back the
disassembly of the code. Longer term, we should re-implement that by
using the LLVM disassembler from the Vulkan driver.

Recent LLVM changes broke +DumpCode. With -filetype=asm it crashed, and
with -filetype=obj I think it did not include any instructions, only the
labels. Fixed with this commit: now it has no effect with -filetype=asm,
and works as intended with -filetype=obj.

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

Change-Id: I6436d86fe2ea220d74a643a85e64753747c9366b
llvm-svn: 360688

5 years ago[ARM][CMSE] Add cmse intrinsics for TT instructions
Javed Absar [Tue, 14 May 2019 16:14:24 +0000 (16:14 +0000)]
[ARM][CMSE] Add cmse intrinsics for TT instructions

Defines intrinsics cmse_TT, cmse_TTT, cmse_TTA, cmse_TTAT.
No tests here as the tests are in patches that uses these.
Reviewed By: Todd Snider, Dave Green
Differential Revision:  https://reviews.llvm.org/D59888

llvm-svn: 360687

5 years ago[AMDGPU] gfx1010 Strengthen some SMEM WAR hazard unit tests. NFC.
Stanislav Mekhanoshin [Tue, 14 May 2019 16:04:03 +0000 (16:04 +0000)]
[AMDGPU] gfx1010 Strengthen some SMEM WAR hazard unit tests. NFC.

Tighten conditions on SMEM WAR hazard unit tests to ensure rejection
of workaround insertion where a s_waitcnt is present in dependency
chain. The current workaround code already conforms to these revise
tests.

llvm-svn: 360686

5 years ago[LLD][ELF] Add the -z ifunc-noplt option
Fangrui Song [Tue, 14 May 2019 15:25:21 +0000 (15:25 +0000)]
[LLD][ELF] Add the -z ifunc-noplt option

Patch by Mark Johnston!

Summary:
When the option is configured, ifunc calls do not go through the PLT;
rather, they appear as regular function calls with relocations
referencing the ifunc symbol, and the resolver is invoked when
applying the relocation.  This is intended for use in freestanding
environments where text relocations are permissible and is incompatible
with the -z text option.  The option is motivated by ifunc usage in the
FreeBSD kernel, where ifuncs are used to elide CPU feature flag bit
checks in hot paths.  Instead of replacing the cost of a branch with that
of an indirect function call, the -z ifunc-noplt option is used to ensure
that ifunc calls carry no hidden overhead relative to normal function
calls.

Test Plan:
I added a couple of regression tests and tested the FreeBSD kernel
build using the latest lld sources.

To demonstrate the effects of the change, I used a micro-benchmark
which results in frequent invocations of a FreeBSD kernel ifunc.  The
benchmark was run with and without IBRS enabled, and with and without
-zifunc-noplt configured.  The observed speedup is small and consistent,
and is significantly larger with IBRS enabled:

https://people.freebsd.org/~markj/ifunc-noplt/noibrs.txt
https://people.freebsd.org/~markj/ifunc-noplt/ibrs.txt

Reviewed By: ruiu, MaskRay

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

llvm-svn: 360685

5 years ago[X86] Disable shouldFoldConstantShiftPairToMask for scalar shifts on AMD targets...
Simon Pilgrim [Tue, 14 May 2019 15:21:28 +0000 (15:21 +0000)]
[X86] Disable shouldFoldConstantShiftPairToMask for scalar shifts on AMD targets (PR40758)

D61068 handled vector shifts, this patch does the same for scalars where there are similar number of pipes for shifts as bit ops - this is true almost entirely for AMD targets where the scalar ALUs are well balanced.

This combine avoids AND immediate mask which usually means we reduce encoding size.

Some tests show use of (slow, scaled) LEA instead of SHL in some cases, but thats due to particular shift immediates - shift+mask generate these just as easily.

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

llvm-svn: 360684

5 years ago[AArch64][SVE2] Asm: add SQRDMLAH/SQRDMLSH instructions
Cullen Rhodes [Tue, 14 May 2019 15:10:16 +0000 (15:10 +0000)]
[AArch64][SVE2] Asm: add SQRDMLAH/SQRDMLSH instructions

Summary:
This patch adds support for the indexed and unpredicated vectors forms of the
SQRDMLAH and SQRDMLSH instructions.

The specification can be found here:
https://developer.arm.com/docs/ddi0602/latest

Reviewed By: rovka

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

llvm-svn: 360683

5 years ago[AArch64][SVE2] Asm: add integer multiply-add/subtract (indexed) instructions
Cullen Rhodes [Tue, 14 May 2019 15:01:00 +0000 (15:01 +0000)]
[AArch64][SVE2] Asm: add integer multiply-add/subtract (indexed) instructions

Summary:
This patch adds support for the following instructions:

  MLA mul-add, writing addend (Zda = Zda +  Zn * Zm[idx])
  MLS mul-sub, writing addend (Zda = Zda + -Zn * Zm[idx])

Predicated forms of these instructions were added in SVE.

The specification can be found here:
https://developer.arm.com/docs/ddi0602/latest

Reviewed By: rovka

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

llvm-svn: 360682

5 years ago[Sema] CodeSynthesisContext - add missing variable initialization to constructor...
Simon Pilgrim [Tue, 14 May 2019 14:58:47 +0000 (14:58 +0000)]
[Sema] CodeSynthesisContext - add missing variable initialization to constructor. NFCI.

SavedInNonInstantiationSFINAEContext isn't used outside of specific contexts but this fixes cppcheck and scan-build warnings.

llvm-svn: 360681

5 years agoReplace lit feature keyword 'not_COFF' with 'uses_COFF'.
Paul Robinson [Tue, 14 May 2019 14:51:54 +0000 (14:51 +0000)]
Replace lit feature keyword 'not_COFF' with 'uses_COFF'.

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

llvm-svn: 360680

5 years ago[ELF] --gdb-index: fix SIGSEGV when a DWARFAddressRange has invalid SectionIndex
Fangrui Song [Tue, 14 May 2019 14:41:20 +0000 (14:41 +0000)]
[ELF] --gdb-index: fix SIGSEGV when a DWARFAddressRange has invalid SectionIndex

See D61891: llvm had a bug that might create invalid (DW_AT_low_pc,DW_AT_high_pc) pairs or range list entries due to missing DW_AT_addr_base.

Reviewed By: ruiu

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

llvm-svn: 360679

5 years agoDWARF v5: emit DW_AT_addr_base if DW_AT_low_pc references .debug_addr
Fangrui Song [Tue, 14 May 2019 14:37:26 +0000 (14:37 +0000)]
DWARF v5: emit DW_AT_addr_base if DW_AT_low_pc references .debug_addr

The condition !AddrPool.empty() is tested before attachRangesOrLowHighPC(), which may add an entry to AddrPool. We emit DW_AT_low_pc (DW_FORM_addrx) but may incorrectly omit DW_AT_addr_base for LineTablesOnly. This can be easily reproduced:

clang -gdwarf-5 -gmlt -c a.cc

Fix this by moving !AddrPool.empty() below.

This was discovered while investigating an lld crash (fixed by D61889) on such object files: ld.lld --gdb-index a.o

Reviewed By: probinson

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

llvm-svn: 360678

5 years ago[PowerPC] Custom lower known CR bit spills
Lei Huang [Tue, 14 May 2019 14:27:06 +0000 (14:27 +0000)]
[PowerPC] Custom lower known CR bit spills

For known CRBit spills, CRSET/CRUNSET, it is more efficient to load and spill
the known value instead of extracting the bit.

eg. This sequence is currently used to spill a CRUNSET:
    crclr   4*cr5+lt
    mfocrf  r3,4
    rlwinm  r3,r3,20,0,0
    stw     r3,132(r1)

This patch custom lower it to:
    li  r3,0
    stw r3,132(r1)

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

llvm-svn: 360677

5 years ago[llvm-readobj] - Apply clang format. NFC.
George Rimar [Tue, 14 May 2019 14:22:44 +0000 (14:22 +0000)]
[llvm-readobj] - Apply clang format. NFC.

I am a bit tired of the formatting issues.

llvm-svn: 360676

5 years ago[APFloat] APFloat::Storage::Storage - fix use after move
Simon Pilgrim [Tue, 14 May 2019 14:13:30 +0000 (14:13 +0000)]
[APFloat] APFloat::Storage::Storage - fix use after move

This was mentioned both in https://www.viva64.com/en/b/0629/ and by scan-build checks

llvm-svn: 360675

5 years ago[Driver][Windows] Add dependent lib argument for profile instr generate
Russell Gallop [Tue, 14 May 2019 14:01:40 +0000 (14:01 +0000)]
[Driver][Windows] Add dependent lib argument for profile instr generate

This is needed so lld-link can find clang_rt.profile when self hosting
on Windows with PGO. Using clang-cl as a linker knows to add the library
but self hosting, using -DCMAKE_LINKER=<...>/lld-link.exe doesn't.

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

llvm-svn: 360674

5 years ago[libc++] [test] Use std::nextafter() instead of std::nexttoward()
Michal Gorny [Tue, 14 May 2019 13:56:20 +0000 (13:56 +0000)]
[libc++] [test] Use std::nextafter() instead of std::nexttoward()

Use std::nextafter() instead of std::nexttoward() in midpoint tests.
In the context of this test, this should not cause any difference.
Since nexttowardl() is not implemented on NetBSD 8, the latter function
combined with 'long double' type caused test failure.  nextafterl() does
not have this problem.

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

llvm-svn: 360673

5 years ago[lit][tests]Add feature libcxx-used and use it in llvm-*-fuzzer tests
Xing Xue [Tue, 14 May 2019 13:54:33 +0000 (13:54 +0000)]
[lit][tests]Add feature libcxx-used and use it in llvm-*-fuzzer tests

When a LLVM binary such as llvm-*-fuzzer is built with libc++, it has dependency on libc++. The path to find shared libraries specified in llvm-*-fuzzer is relative. As a result, these binaries cannot be copied to an arbitrary directory and launched from there. Changes in this patch add a LIT feature to indicate that libc++ is used to build and, based on the feature exclude test cases that test by copying llvm-*-fuzzer binaries to a directory.

Reviewers: hubert.reinterpretcast, dberris, amyk, jasonliu, EricWF

Reviewed By: hubert.reinterpretcast, amyk

Subscribers: javed.absar, jsji, llvm-commits

Tags: #llvm

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

llvm-svn: 360672

5 years agoSave the induction binary operator in IVDescriptors for non FP induction variables.
Kit Barton [Tue, 14 May 2019 13:26:36 +0000 (13:26 +0000)]
Save the induction binary operator in IVDescriptors for non FP induction variables.

Summary:
Currently InductionBinOps are only saved for FP induction variables, the PR extends it with non FP induction variable, so user of IVDescriptors can query the InductionBinOps for integer induction variables.

The changes in hasUnsafeAlgebra() and getUnsafeAlgebraInst() are required for the existing LIT test cases to pass. As described in the comment of the two functions, one of the requirement to return true is it is a FP induction variable. The checks was not needed because InductionBinOp was not set on non FP cases before.

https://reviews.llvm.org/D60565 depends on the patch.

Committed on behalf of @Whitney (Whitney Tsang).

Reviewers: jdoerfert, kbarton, fhahn, hfinkel, dmgreen, Meinersbur

Reviewed By: jdoerfert

Subscribers: mgorny, hiraditya, jsji, llvm-commits

Tags: #llvm

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

llvm-svn: 360671

5 years agoTableGen: support #ifndef in addition to #ifdef.
Tim Northover [Tue, 14 May 2019 13:04:25 +0000 (13:04 +0000)]
TableGen: support #ifndef in addition to #ifdef.

TableGen has a limited preprocessor, which only really supports
easier.

llvm-svn: 360670

5 years agoDWARF/NFC: Centralize DIERef conversions
Pavel Labath [Tue, 14 May 2019 12:44:40 +0000 (12:44 +0000)]
DWARF/NFC: Centralize DIERef conversions

apple and manual indexing code were creating a DIERef in a bunch of
places. Though the code itself is not much, it is also easy to simplify
by factoring out the DIERef creation. In HashedNameToDIE I create a
conversion operator from DIEInfo to DIERef, and in ManualDWARFIndex I
just create the DIERef in a global variable up-front.

This also reduces the diff in follow-up patches which change how DIERefs
are constructed.

llvm-svn: 360669

5 years agoMake getObjCEncodingForTypeImpl() take a bitmask instead of 8 bools
Nico Weber [Tue, 14 May 2019 12:32:37 +0000 (12:32 +0000)]
Make getObjCEncodingForTypeImpl() take a bitmask instead of 8 bools

Slightly easier to read, uses slightly less stack space, and makes it
impossible to mix up the order of all those bools.

No behavior change.

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

llvm-svn: 360668

5 years agoAdd a new language mode for C2x; enable [[attribute]] support by default in C2x.
Aaron Ballman [Tue, 14 May 2019 12:09:55 +0000 (12:09 +0000)]
Add a new language mode for C2x; enable [[attribute]] support by default in C2x.

llvm-svn: 360667

5 years agoMove SymbolTable::addFile to InputFiles.cpp.
Rui Ueyama [Tue, 14 May 2019 12:03:13 +0000 (12:03 +0000)]
Move SymbolTable::addFile to InputFiles.cpp.

The symbol table used to be a container of vectors of input files,
but that's no longer the case because the vectors are moved out of
SymbolTable and are now global variables.

Therefore, addFile doesn't have to belong to any class. This patch
moves the function out of the class.

This patch is a preparation for my RFC [1].

[1] http://lists.llvm.org/pipermail/llvm-dev/2019-April/131902.html

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

llvm-svn: 360666

5 years agoReinstate "FileCheck [5/12]: Introduce regular numeric variables"
Thomas Preud'homme [Tue, 14 May 2019 11:58:30 +0000 (11:58 +0000)]
Reinstate "FileCheck [5/12]: Introduce regular numeric variables"

This reinstates r360578 (git e47362c1ec1ea31b626336cc05822035601c3e57),
reverted in r360653 (git 004393681c25e34e921adccc69ae6378090dee54),
with a fix for the list added in FileCheck.rst to build without error.

Copyright:
    - Linaro (changes up to diff 183612 of revision D55940)
    - GraphCore (changes in later versions of revision D55940 and
                 in new revision created off D55940)

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar,
arichardson, rnk

Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar,
arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

Tags: #llvm

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

llvm-svn: 360665

5 years ago[X86] X86TargetLowering::LowerINTRINSIC_WO_CHAIN - ensure rounding control is initial...
Simon Pilgrim [Tue, 14 May 2019 11:30:39 +0000 (11:30 +0000)]
[X86] X86TargetLowering::LowerINTRINSIC_WO_CHAIN - ensure rounding control is initialized. NFCI.

Fixes scan-build warnings

llvm-svn: 360664

5 years agoAArch64: support binutils-like things on arm64_32.
Tim Northover [Tue, 14 May 2019 11:25:44 +0000 (11:25 +0000)]
AArch64: support binutils-like things on arm64_32.

This adds support for the arm64_32 watchOS ABI to LLVM's low level tools,
teaching them about the specific MachO choices and constants needed to
disassemble things.

llvm-svn: 360663

5 years agoGlobalOpt: do not promote globals used atomically to constants.
Tim Northover [Tue, 14 May 2019 11:03:13 +0000 (11:03 +0000)]
GlobalOpt: do not promote globals used atomically to constants.

Some atomic loads are implemented as cmpxchg (particularly if large or
floating), and that usually requires write access to the memory involved
or it will segfault.

We can still propagate the constant value to users we understand though.

llvm-svn: 360662

5 years ago[llvm-objcopy] Cache gnu_debuglink's target CRC
James Henderson [Tue, 14 May 2019 10:59:04 +0000 (10:59 +0000)]
[llvm-objcopy] Cache gnu_debuglink's target CRC

.gnu_debuglink section contains information regarding file with
debugging symbols, identified by its CRC32. This target file is not
intended to ever change or it would invalidate the stored checksum, yet
the checksum is calculated over and over again for each of the objects
inside the archive, usually hundreds of times.

This patch precomputes the CRC32 of the target once and then reuses the
value where required, saving lots of redundant I/O.

The error message reported should stay the same, although now it might
be reported earlier.

Reviewed by: jhenderson, jakehehrlich, MaskRay

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

Patch by Michal Janiszewski

llvm-svn: 360661

5 years ago[test]Make test work on Windows
James Henderson [Tue, 14 May 2019 10:53:35 +0000 (10:53 +0000)]
[test]Make test work on Windows

Previously, the test didn't work because '\' characters appeared in the
sed string, causing bogus escape characters to form in the substituted
string literal. Switching to using '%/p' causes the path to be emitted
with '/' characters instead, so that there are are no escaping issues.

Reviewed by: kzhuravl, grimar

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

llvm-svn: 360660

5 years ago[MemorySanitizer] getMMXVectorTy - assert valid element size. NFCI.
Simon Pilgrim [Tue, 14 May 2019 10:29:18 +0000 (10:29 +0000)]
[MemorySanitizer] getMMXVectorTy - assert valid element size. NFCI.

Fixes scan-build warnings

llvm-svn: 360658

5 years agoRevert r360637 "PR41817: Fix regression in r359260 that caused the MS compatibility"
Hans Wennborg [Tue, 14 May 2019 10:11:33 +0000 (10:11 +0000)]
Revert r360637 "PR41817: Fix regression in r359260 that caused the MS compatibility"

> extension allowing a "static" declaration to follow an "extern"
> declaration to stop working.

It introduced asserts for some "static-following-extern" cases, breaking the
Chromium build. See the cfe-commits thread for reproducer.

llvm-svn: 360657

5 years ago[IRTranslator] Don't hardcode GEP index type
Diana Picus [Tue, 14 May 2019 09:25:17 +0000 (09:25 +0000)]
[IRTranslator] Don't hardcode GEP index type

When breaking up loads and stores of aggregates, the IRTranslator uses
LLT::scalar(64) for the index type of the G_GEP instructions that
compute the addresses. This is unnecessarily large for 32-bit targets.
Use the int ptr type provided by the DataLayout instead.

Note that we're already doing the right thing when translating
getelementptr instructions from the IR. This is just an oversight when
generating new ones while translating loads/stores.

Both x86 and AArch64 already have tests confirming that the old
behaviour is preserved for 64-bit targets.

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

llvm-svn: 360656

5 years agoTestMinidumpNew.py: Use yaml2obj where possible
Pavel Labath [Tue, 14 May 2019 08:59:08 +0000 (08:59 +0000)]
TestMinidumpNew.py: Use yaml2obj where possible

Replace checked-in minidumps with their yaml forms now that yaml2obj
supports the ThreadList stream. I delete the test_modules_in_mini_dump
test altogether as this functionality is covered more systematically in
TestMinidumpUUID.py.

llvm-svn: 360655

5 years agotypedef enum -> enum
Fangrui Song [Tue, 14 May 2019 08:55:50 +0000 (08:55 +0000)]
typedef enum -> enum

Reviewed By: labath

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

llvm-svn: 360654

5 years agoRevert "FileCheck [5/12]: Introduce regular numeric variables"
Thomas Preud'homme [Tue, 14 May 2019 08:43:11 +0000 (08:43 +0000)]
Revert "FileCheck [5/12]: Introduce regular numeric variables"

This reverts r360578 (git e47362c1ec1ea31b626336cc05822035601c3e57) to
solve the sphinx build failure on
http://lab.llvm.org:8011/builders/llvm-sphinx-docs buildbot.

llvm-svn: 360653

5 years ago[CMake] Correctly reinstate LLDB_CAN_USE_LLDB_SERVER
Pavel Labath [Tue, 14 May 2019 08:18:06 +0000 (08:18 +0000)]
[CMake] Correctly reinstate LLDB_CAN_USE_LLDB_SERVER

r360631 introduced a "syntax error" which meant that cmake was still not
honoring the value of LLDB_CAN_USE_LLDB_SERVER variable. The correct
syntax for seting an internal cache variable is "set(VAR value CACHE
INTERNAL)", but the patch omitted the "CACHE" keyword. The "syntax
error" is in quotes because without the CACHE keyword this is still
valid syntax for setting the value of LLDB_CAN_USE_LLDB_SERVER to "1
INTERNAL".

There doesn't seem to be a need for this to be a cache variable so I'm
reverting this variable to a plain one, as it was before r360621.

This will hopefully fix the windows build.

llvm-svn: 360652

5 years agoAdd guidelines/recommendations for organizers of LLVM Socials
Alex Denisov [Tue, 14 May 2019 07:20:58 +0000 (07:20 +0000)]
Add guidelines/recommendations for organizers of LLVM Socials

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

llvm-svn: 360651

5 years ago[X86] Prefer locked stack op over mfence for seq_cst 64-bit stores on 32-bit targets
Philip Reames [Tue, 14 May 2019 04:43:37 +0000 (04:43 +0000)]
[X86] Prefer locked stack op over mfence for seq_cst 64-bit stores on 32-bit targets

This is a follow on to D58632, with the same logic. Given a memory operation which needs ordering, but doesn't need to modify any particular address, prefer to use a locked stack op over an mfence.

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

llvm-svn: 360649

5 years ago[Object] Change ObjectFile::getSectionContents to return Expected<ArrayRef<uint8_t>>
Fangrui Song [Tue, 14 May 2019 04:22:51 +0000 (04:22 +0000)]
[Object] Change ObjectFile::getSectionContents to return Expected<ArrayRef<uint8_t>>

Change
std::error_code getSectionContents(DataRefImpl, StringRef &) const;
to
Expected<ArrayRef<uint8_t>> getSectionContents(DataRefImpl) const;

Many object formats use ArrayRef<uint8_t> as the underlying type, which
is generally better than StringRef to represent binary data, so change
the type to decrease the number of type conversions.

Reviewed By: ruiu, sbc100

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

llvm-svn: 360648

5 years agogn build: add Hexagon target
David L. Jones [Tue, 14 May 2019 04:13:59 +0000 (04:13 +0000)]
gn build: add Hexagon target

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

llvm-svn: 360647

5 years agoARMDefines.h: fix -Wimplicit-fallthrough in -DLLVM_ENABLE_ASSERTIONS=OFF builds
Fangrui Song [Tue, 14 May 2019 04:09:52 +0000 (04:09 +0000)]
ARMDefines.h: fix -Wimplicit-fallthrough in -DLLVM_ENABLE_ASSERTIONS=OFF builds

Reviewed By: JDevlieghere

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

llvm-svn: 360646

5 years agogn build: add Sparc target
David L. Jones [Tue, 14 May 2019 04:02:50 +0000 (04:02 +0000)]
gn build: add Sparc target

llvm-svn: 360645

5 years agogn build: add Lanai target
David L. Jones [Tue, 14 May 2019 03:52:33 +0000 (03:52 +0000)]
gn build: add Lanai target

llvm-svn: 360644

5 years ago[PowerPC][NFC] Fix typos in triples
Jinsong Ji [Tue, 14 May 2019 03:11:24 +0000 (03:11 +0000)]
[PowerPC][NFC] Fix typos in triples

Found by bzEq (Kai Luo).

llvm-svn: 360643

5 years ago[X86] Use X86 instead of X32 as a check prefix in atomic-idempotent.ll. NFC
Craig Topper [Tue, 14 May 2019 03:07:56 +0000 (03:07 +0000)]
[X86] Use X86 instead of X32 as a check prefix in atomic-idempotent.ll. NFC

X32 can refer to a 64-bit ABI that uses 32-bit ints, longs, and pointers.

I plan to add gnux32 command lines to this test so this prepares for that.

Also remove some check lines that have a prefix that is not in any run lines.

llvm-svn: 360642

5 years agoLLDB website: Change the title back to "The LLDB Debugger"
Adrian Prantl [Tue, 14 May 2019 02:31:56 +0000 (02:31 +0000)]
LLDB website: Change the title back to "The LLDB Debugger"

This is what the old homepage also used.

llvm-svn: 360641

5 years ago[SDAG] fix unused variable warning and unneeded indirection; NFC
Sanjay Patel [Tue, 14 May 2019 00:57:31 +0000 (00:57 +0000)]
[SDAG] fix unused variable warning and unneeded indirection; NFC

llvm-svn: 360640

5 years ago[SDAG, x86] allow targets to override test for binop opcodes
Sanjay Patel [Tue, 14 May 2019 00:39:40 +0000 (00:39 +0000)]
[SDAG, x86] allow targets to override test for binop opcodes

This follows the pattern of the existing isCommutativeBinOp().

x86 shows improvements from vector narrowing for the min/max opcodes.

llvm-svn: 360639

5 years ago[Docs] Differentiate between public and private API
Jonas Devlieghere [Tue, 14 May 2019 00:36:05 +0000 (00:36 +0000)]
[Docs] Differentiate between public and private API

On the homepage we should have a clear distinction between the public
and private C++ APIs.

llvm-svn: 360638

5 years agoPR41817: Fix regression in r359260 that caused the MS compatibility
Richard Smith [Tue, 14 May 2019 00:27:16 +0000 (00:27 +0000)]
PR41817: Fix regression in r359260 that caused the MS compatibility
extension allowing a "static" declaration to follow an "extern"
declaration to stop working.

llvm-svn: 360637

5 years ago[coroutines] Fix spills of static array allocas
Gor Nishanov [Mon, 13 May 2019 23:58:24 +0000 (23:58 +0000)]
[coroutines] Fix spills of static array allocas

Summary:
CoroFrame was not considering static array allocas, and was only ever reserving a single element in the coroutine frame.
This meant that stores to the non-zero'th element would corrupt later frame data.

Store static array allocas as field arrays in the coroutine frame.

Added test.

Committed by Gor Nishanov on behalf of ben-clayton
Reviewers: GorNishanov, modocache

Reviewed By: GorNishanov

Subscribers: Orlando, capn, EricWF, llvm-commits

Tags: #llvm

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

llvm-svn: 360636

5 years ago[c++20] P1064R0: Allow virtual function calls in constant expression
Richard Smith [Mon, 13 May 2019 23:35:21 +0000 (23:35 +0000)]
[c++20] P1064R0: Allow virtual function calls in constant expression
evaluation.

This reinstates r360559, reverted in r360580, with a fix to avoid
crashing if evaluation-for-overflow mode encounters a virtual call on an
object of a class with a virtual base class, and to generally not try to
resolve virtual function calls to objects whose (notional) vptrs are not
readable. (The standard rules are unclear here, but this seems like a
reasonable approach.)

llvm-svn: 360635

5 years ago[AMDGPU] gfx1010 clang target
Stanislav Mekhanoshin [Mon, 13 May 2019 23:15:59 +0000 (23:15 +0000)]
[AMDGPU] gfx1010 clang target

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

llvm-svn: 360634

5 years ago[Docs] Fix code formattign in variable.rst
Jonas Devlieghere [Mon, 13 May 2019 23:05:51 +0000 (23:05 +0000)]
[Docs] Fix code formattign in variable.rst

Fixes missing newline between :: and the actual code.

llvm-svn: 360632

5 years ago[CMake] Reinstate LLDB_CAN_USE_LLDB_SERVER
Jonas Devlieghere [Mon, 13 May 2019 22:55:11 +0000 (22:55 +0000)]
[CMake] Reinstate LLDB_CAN_USE_LLDB_SERVER

We cannot manipulate the LLDB_TOOL_LLDB_SERVER_BUILD directly from
LLDBConfig.cmake because this would set the variable before the option
is defined in AddLLVM.cmake. Instead, we need to use the
LLDB_CAN_USE_LLDB_SERVER variable to conditionally add the lldb-server
subdirectory. This should ensure the variable doesn't get cleared.

llvm-svn: 360631

5 years ago[X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`.
Volodymyr Sapsai [Mon, 13 May 2019 22:40:11 +0000 (22:40 +0000)]
[X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`.

Currently `immintrin.h` includes `pconfigintrin.h` and `sgxintrin.h`
which contain inline assembly. It causes failures when building with the
flag `-fno-gnu-inline-asm`.

Fix by excluding functions with inline assembly when this extension is
disabled. So far there was no need to support `_pconfig_u32`,
`_enclu_u32`, `_encls_u32`, `_enclv_u32` on platforms that require
`-fno-gnu-inline-asm`. But if developers start using these functions,
they'll have compile-time undeclared identifier errors which is
preferrable to runtime errors.

rdar://problem/49540880

Reviewers: craig.topper, GBuella, rnk, echristo

Reviewed By: rnk

Subscribers: jkorous, dexonsmith, cfe-commits

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

llvm-svn: 360630

5 years ago[gn] Fix build
Vitaly Buka [Mon, 13 May 2019 22:30:53 +0000 (22:30 +0000)]
[gn] Fix build

llvm-svn: 360629

5 years agoRemoving an unused member variable; NFC.
Aaron Ballman [Mon, 13 May 2019 22:29:16 +0000 (22:29 +0000)]
Removing an unused member variable; NFC.

llvm-svn: 360628

5 years ago[X86] Use ISD::MERGE_VALUES to return from lowerAtomicArith instead of calling Replac...
Craig Topper [Mon, 13 May 2019 22:17:13 +0000 (22:17 +0000)]
[X86] Use ISD::MERGE_VALUES to return from lowerAtomicArith instead of calling ReplaceAllUsesOfValueWith and returning SDValue().

Returning SDValue() makes the caller think that nothing happened and it will
end up executing the Expand path. This generates extra nodes that will need to
be pruned as dead code.

Returning an ISD::MERGE_VALUES will tell the caller that we'd like to make a
change and it will take care of replacing uses. This will prevent falling into
the Expand path.

llvm-svn: 360627

5 years ago[OpenMP][Clang][BugFix] Split declares and math functions inclusion.
Gheorghe-Teodor Bercea [Mon, 13 May 2019 22:11:44 +0000 (22:11 +0000)]
[OpenMP][Clang][BugFix] Split declares and math functions inclusion.

Summary: This patches fixes an issue in which the __clang_cuda_cmath.h header is being included even when cmath or math.h headers are not included.

Reviewers: jdoerfert, ABataev, hfinkel, caomhin, tra

Reviewed By: tra

Subscribers: tra, mgorny, guansong, cfe-commits

Tags: #clang

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

llvm-svn: 360626

5 years agoMake language option `GNUAsm` discoverable with `__has_extension` macro.
Volodymyr Sapsai [Mon, 13 May 2019 22:11:10 +0000 (22:11 +0000)]
Make language option `GNUAsm` discoverable with `__has_extension` macro.

This can be used for better support of `-fno-gnu-inline-asm` builds.

rdar://problem/49540880

Reviewers: aaron.ballman, rsmith

Reviewed By: aaron.ballman

Subscribers: eraman, jkorous, dexonsmith, craig.topper, cfe-commits

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

llvm-svn: 360625

5 years agoDisable TestEnvironment on Windows
Jonas Devlieghere [Mon, 13 May 2019 22:02:09 +0000 (22:02 +0000)]
Disable TestEnvironment on Windows

The input source file seems to be triggering an error in the Visual
Studio headers.

> xstddef:338:2: error: ''auto' return without trailing return type;
> deduced return types are a C++14 extension

I tried converting the test to use the %build stuff Zachary added, but
that seems to be missing some Darwin support. Disabling the test on
Windows in the meantime.

llvm-svn: 360624

5 years ago[AMDGPU] gfx1010 SearchableTableEmitter patch for NSA
Stanislav Mekhanoshin [Mon, 13 May 2019 21:59:03 +0000 (21:59 +0000)]
[AMDGPU] gfx1010 SearchableTableEmitter patch for NSA

This part was accidentally missing from NSA image support commit.

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

llvm-svn: 360623

5 years agoIntroduce the ability to dump the AST to JSON.
Aaron Ballman [Mon, 13 May 2019 21:39:55 +0000 (21:39 +0000)]
Introduce the ability to dump the AST to JSON.

This adds the -ast-dump=json cc1 flag (in addition to -ast-dump=default, which is the default if no dump format is specified), as well as some initial AST dumping functionality and tests.

llvm-svn: 360622

5 years ago[CMake] Simplify lldb-server handling
Jonas Devlieghere [Mon, 13 May 2019 21:25:02 +0000 (21:25 +0000)]
[CMake] Simplify lldb-server handling

We can piggyback off the existing add_lldb_tool_subdirectory to decide
whether or not lldb-server should be built.

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

llvm-svn: 360621

5 years ago[Pass Pipeline][NFC] Add a test prior to committing D61726
Nemanja Ivanovic [Mon, 13 May 2019 21:14:36 +0000 (21:14 +0000)]
[Pass Pipeline][NFC] Add a test prior to committing D61726

This patch just adds a test case to show the differences in code emitted
by opt before and after https://reviews.llvm.org/D61726.

Previous attempt to commit this did not include the registered target
requirement so it caused buildbot breaks.

llvm-svn: 360620

5 years ago[X86] Various type corrections to the code that creates LOCK_OR32mi8/OR32mi8Locked...
Craig Topper [Mon, 13 May 2019 21:01:24 +0000 (21:01 +0000)]
[X86] Various type corrections to the code that creates LOCK_OR32mi8/OR32mi8Locked to the stack for idempotent atomic rmw and atomic fence.

These are updates to match how isel table would emit a LOCK_OR32mi8 node.

-Use i32 for the immediate zero even though only 8 bits are encoded.
-Use i16 for segment register.
-Use LOCK_OR32mi8 for idempotent atomic operations in 32-bit mode to match
64-bit mode. I'm not sure why OR32mi8Locked and LOCK_OR32mi8 both exist. The
only difference seems to be that OR32mi8Locked is marked as UnmodeledSideEffects=1.
-Emit an extra i32 result for the flags output.

I don't know if the types here really matter just noticed it was inconsistent
with normal behavior.

llvm-svn: 360619

5 years ago[JITLink][MachO] Honor the no-dead-strip flag on nlist entries.
Lang Hames [Mon, 13 May 2019 20:52:30 +0000 (20:52 +0000)]
[JITLink][MachO] Honor the no-dead-strip flag on nlist entries.

llvm-svn: 360618

5 years ago[Support] Ensure redirected outputs don't contain output from previous tests.
David L. Jones [Mon, 13 May 2019 20:32:53 +0000 (20:32 +0000)]
[Support] Ensure redirected outputs don't contain output from previous tests.

stdout may be buffered, and may not flush on every write. Explicitly flushing
before redirecting the output ensures that the captured output does not contain
output from other tests.

llvm-svn: 360617

5 years ago[WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel (PR41841)
Nikita Popov [Mon, 13 May 2019 19:40:18 +0000 (19:40 +0000)]
[WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel (PR41841)

Usually this will abort fast-isel at the instruction using the
non-legal result, but if the only use is in a different basic block,
we'll incorrectly assume that the zext/sext is to i32 (rather than
i128 in this case).

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

llvm-svn: 360616

5 years ago[AMDGPU] gfx1010 tests. NFC.
Stanislav Mekhanoshin [Mon, 13 May 2019 19:30:06 +0000 (19:30 +0000)]
[AMDGPU] gfx1010 tests. NFC.

llvm-svn: 360615

5 years agoMake more friendly with unions. Reviewed as https://reviews.llvm.org/D61858
Marshall Clow [Mon, 13 May 2019 19:29:23 +0000 (19:29 +0000)]
Make  more friendly with unions. Reviewed as https://reviews.llvm.org/D61858

llvm-svn: 360614

5 years ago[clang-tidy] readability-redundant-declaration: fix false positive with C "extern...
Matthias Gehre [Mon, 13 May 2019 19:21:57 +0000 (19:21 +0000)]
[clang-tidy] readability-redundant-declaration: fix false positive with C "extern inline"

Summary:
readability-redundant-declaration was diagnosing a redundant declaration
on "extern inline void f();", which is needed in C code to force an external definition
of the inline function f. (This is different to how inline behaves in C++).

Reviewers: alexfh, danielmarjamaki

Subscribers: xazax.hun, cfe-commits

Tags: #clang

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

llvm-svn: 360613

5 years agoMerge target and launch info environments
Jonas Devlieghere [Mon, 13 May 2019 19:17:48 +0000 (19:17 +0000)]
Merge target and launch info environments

Before this change we were overriding the launch info environment with
the target environment. This meant that the environment variables passed
to `process launch --environment <>` were lost. Instead of replacing the
environment, we should merge them.

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

llvm-svn: 360612

5 years agoRemove commented-out code
Jonas Devlieghere [Mon, 13 May 2019 19:17:44 +0000 (19:17 +0000)]
Remove commented-out code

llvm-svn: 360611

5 years agoAdd a new LIBUNWIND_WEAK_PTHREAD Cmake option to force
Sterling Augustine [Mon, 13 May 2019 18:45:03 +0000 (18:45 +0000)]
Add a new LIBUNWIND_WEAK_PTHREAD Cmake option to force
calls into the pthread library use weak symbols.

This option allows libpthread to be a weak dependency rather
than a hard one.

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

llvm-svn: 360610

5 years ago[AMDGPU] Reorder includes per coding standard. NFC.
Stanislav Mekhanoshin [Mon, 13 May 2019 18:05:10 +0000 (18:05 +0000)]
[AMDGPU] Reorder includes per coding standard. NFC.

llvm-svn: 360609

5 years ago[AMDGPU] Remove now unused V2FP16_ONE constant def. NFC.
Stanislav Mekhanoshin [Mon, 13 May 2019 17:52:57 +0000 (17:52 +0000)]
[AMDGPU] Remove now unused V2FP16_ONE constant def. NFC.

llvm-svn: 360608

5 years ago[clang][ASTContext] Call setAttached for comments attached to a declaration
Jan Korous [Mon, 13 May 2019 17:52:09 +0000 (17:52 +0000)]
[clang][ASTContext] Call setAttached for comments attached to a declaration

This is a bug affecting performance when compiling with -Wdocumentation.

In Sema::ActOnDocumentable we're checking whether there are any comments unattached to declaration at the end of comment list whenever we encounter new documentable declaration.
Since this property of RawComment was never set we were trying to find comments every time and that involves at least a couple expensive SourceLocation decompositions.

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

llvm-svn: 360607

5 years agoRevert [X86] Avoid SFB - Fix inconsistent codegen with/without debug info
Robert Lougher [Mon, 13 May 2019 17:36:46 +0000 (17:36 +0000)]
Revert [X86] Avoid SFB - Fix inconsistent codegen with/without debug info

Revert r360436 as it is causing clang-x64-windows-msvc buildbot to fail.

llvm-svn: 360606

5 years ago[InstCombine] try harder to form rotate (funnel shift) (PR20750)
Sanjay Patel [Mon, 13 May 2019 17:28:19 +0000 (17:28 +0000)]
[InstCombine] try harder to form rotate (funnel shift) (PR20750)

We have a similar match for patterns ending in a truncate. This
should be ok for all targets because the default expansion would
still likely be better from replacing 2 'and' ops with 1.

Attempt to show the logic equivalence in Alive (which doesn't
currently have funnel-shift in its vocabulary AFAICT):

  %shamt = zext i8 %i to i32
  %m = and i32 %shamt, 31
  %neg = sub i32 0, %shamt
  %and4 = and i32 %neg, 31
  %shl = shl i32 %v, %m
  %shr = lshr i32 %v, %and4
  %or = or i32 %shr, %shl
  =>
  %a = and i8 %i, 31
  %shamt2 = zext i8 %a to i32
  %neg2 = sub i32 0, %shamt2
  %and4 = and i32 %neg2, 31
  %shl = shl i32 %v, %shamt2
  %shr = lshr i32 %v, %and4
  %or = or i32 %shr, %shl

https://rise4fun.com/Alive/V9r

llvm-svn: 360605

5 years ago[TargetLowering] Handle multi depth GEPs w/ inline asm constraints
Nick Desaulniers [Mon, 13 May 2019 17:27:44 +0000 (17:27 +0000)]
[TargetLowering] Handle multi depth GEPs w/ inline asm constraints

Summary:
X86TargetLowering::LowerAsmOperandForConstraint had better support than
TargetLowering::LowerAsmOperandForConstraint for arbitrary depth
getelementpointers for "i", "n", and "s" extended inline assembly
constraints. Hoist its support from the derived class into the base
class.

Link: https://github.com/ClangBuiltLinux/linux/issues/469
Reviewers: echristo, t.p.northover

Reviewed By: t.p.northover

Subscribers: t.p.northover, E5ten, kees, jyknight, nemanjai, javed.absar, eraman, hiraditya, jsji, llvm-commits, void, craig.topper, nathanchance, srhines

Tags: #llvm

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

llvm-svn: 360604

5 years agoStop defining negative versions of some lit feature keywords:
Paul Robinson [Mon, 13 May 2019 17:18:58 +0000 (17:18 +0000)]
Stop defining negative versions of some lit feature keywords:
zlib/nozlib, asan/not_asan, msan/not_msan, ubsan/not_ubsan.

We still have two other ways to express the absence of a feature.
First, we have the '!' operator to invert the sense of a keyword.  For
example, given a feature that depends on zlib being unavailable, its
test can say:
    REQUIRES: !zlib

Second, if a test doesn't play well with some features, such as
sanitizers, that test can say:
    UNSUPPORTED: asan, msan

The different ways of writing these exclusions both have the same
technical effect, but have different implications to the reader.

llvm-svn: 360603

5 years agofixed typo made by commit r360595
Andrey Churbanov [Mon, 13 May 2019 17:04:32 +0000 (17:04 +0000)]
fixed typo made by commit r360595

llvm-svn: 360602

5 years ago[InstCombine] add tests for rotates with narrow shift amount (PR20750); NFC
Sanjay Patel [Mon, 13 May 2019 17:02:26 +0000 (17:02 +0000)]
[InstCombine] add tests for rotates with narrow shift amount (PR20750); NFC

llvm-svn: 360601

5 years agogn build: Fewer dependencies in llvm/lib/Target
Nico Weber [Mon, 13 May 2019 16:59:43 +0000 (16:59 +0000)]
gn build: Fewer dependencies in llvm/lib/Target

The tablegen groups only need public_deps for inc files included
(possibly transitively) in other targets. Move inc files that are
internan to the MCTargetDesc libraries into regular deps.

Related to the changes that merged InstPrinter into MCTargetDesc
(360484, 360486 etc).

llvm-svn: 360600

5 years ago[DataFormatters] FindLibCppStdFunctionCallableInfo() currently uses FindFunctions...
Shafik Yaghmour [Mon, 13 May 2019 16:48:06 +0000 (16:48 +0000)]
[DataFormatters] FindLibCppStdFunctionCallableInfo() currently uses FindFunctions() in order to find a lambdas operator()() but using FindSymbolsMatchingRegExAndType() is cheaper and if we also anchor the regex using ^ this adds some additional performance gains.

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

llvm-svn: 360599

5 years ago[WebAssembly] Refactor relocation processing. NFC.
Sam Clegg [Mon, 13 May 2019 16:42:52 +0000 (16:42 +0000)]
[WebAssembly] Refactor relocation processing. NFC.

This is the remaining NFC part of https://reviews.llvm.org/D61539 which
was reverted.

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

llvm-svn: 360598

5 years agogn build: Merge r360572
Nico Weber [Mon, 13 May 2019 16:15:40 +0000 (16:15 +0000)]
gn build: Merge r360572

llvm-svn: 360597

5 years ago[X86][SSE] LowerBuildVectorv4x32 - don't insert MOVQ for undef elts
Simon Pilgrim [Mon, 13 May 2019 16:10:11 +0000 (16:10 +0000)]
[X86][SSE] LowerBuildVectorv4x32 - don't insert MOVQ for undef elts

Fixes the regression noted in D61782 where a VZEXT_MOVL was being inserted because we weren't discriminating between 'zeroable' and 'all undef' for the upper elts.

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

llvm-svn: 360596

5 years agoFixed creation of aliases in Windows build.
Andrey Churbanov [Mon, 13 May 2019 16:07:37 +0000 (16:07 +0000)]
Fixed creation of aliases in Windows build.

Changed file extension of the destination of the copy of libomp.lib
(it was mistakely .dll, now it is .lib) in installation on Windows.

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

llvm-svn: 360595

5 years ago[X86][SSE] Relax use limits for lowerAddSubToHorizontalOp (PR32433)
Simon Pilgrim [Mon, 13 May 2019 16:02:45 +0000 (16:02 +0000)]
[X86][SSE] Relax use limits for lowerAddSubToHorizontalOp (PR32433)

Now that we can use HADD/SUB for scalar additions from any pair of extracted elements (D61263), we can relax the one use limit as we will be able to merge multiple uses into using the same HADD/SUB op.

This exposes a couple of missed opportunities in LowerBuildVectorv4x32 which will be committed separately.

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

llvm-svn: 360594

5 years ago[ELF] Full support for -n (--nmagic) and -N (--omagic) via common page
Peter Smith [Mon, 13 May 2019 16:01:26 +0000 (16:01 +0000)]
[ELF] Full support for -n (--nmagic) and -N (--omagic) via common page

The -n (--nmagic) disables page alignment, and acts as a -Bstatic
The -N (--omagic) does what -n does but also marks the executable segment as
writeable. As page alignment is disabled headers are not allocated unless
explicit in the linker script.

To disable page alignment in LLD we choose to set the page sizes to 1 so
that any alignment based on the page size does nothing. To set the
Target->PageSize to 1 we implement -z common-page-size, which has the side
effect of allowing the user to set the value as well.

Setting the page alignments to 1 does mean that any use of
CONSTANT(MAXPAGESIZE) or CONSTANT(COMMONPAGESIZE) in a linker script will
return 1, unlike in ld.bfd. However given that -n and -N disable paging
these probably shouldn't be used in a linker script where -n or -N is in
use.

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

llvm-svn: 360593

5 years ago[TargetLowering] Add SimplifyDemandedBits support for ZERO_EXTEND_VECTOR_INREG
Simon Pilgrim [Mon, 13 May 2019 15:51:26 +0000 (15:51 +0000)]
[TargetLowering] Add SimplifyDemandedBits support for ZERO_EXTEND_VECTOR_INREG

More work for PR39709.

llvm-svn: 360592

5 years ago[X86] Add test case for mask register variant of PR41619 which should be fixed after...
Craig Topper [Mon, 13 May 2019 15:45:20 +0000 (15:45 +0000)]
[X86] Add test case for mask register variant of PR41619 which should be fixed after r360552

llvm-svn: 360591

5 years ago[libcxx] teach type_traits test about long uint32_t
Brian Cain [Mon, 13 May 2019 15:41:18 +0000 (15:41 +0000)]
[libcxx] teach type_traits test about long uint32_t

Patch by Ben Craig.

llvm-svn: 360590

5 years agoRevert "[LSR] Tweak setup cost depth threshold to 10."
Amara Emerson [Mon, 13 May 2019 15:37:18 +0000 (15:37 +0000)]
Revert "[LSR] Tweak setup cost depth threshold to 10."

Changing the threshold might not be the best long term approach. Revert for now.

llvm-svn: 360589