OSDN Git Service

android-x86/external-llvm.git
8 years ago[X86][SSE] Simplify zero'th index extract element matching
Simon Pilgrim [Sun, 15 May 2016 20:22:50 +0000 (20:22 +0000)]
[X86][SSE] Simplify zero'th index extract element matching

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

8 years ago[X86][SSE] Removed duplicate variables. NFCI.
Simon Pilgrim [Sun, 15 May 2016 20:11:10 +0000 (20:11 +0000)]
[X86][SSE] Removed duplicate variables. NFCI.

Removed duplicate getOperand / getSimpleValueType calls.

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

8 years ago[AVX512] Change 512-bit insertf32x4/inserti32x4 builtin name to match gcc.
Craig Topper [Sun, 15 May 2016 20:09:34 +0000 (20:09 +0000)]
[AVX512] Change 512-bit insertf32x4/inserti32x4 builtin name to match gcc.

Clang doesn't currently use this builtin. Will fix that soon.

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

8 years ago[profile] Header file cleanup /NFC
Xinliang David Li [Sun, 15 May 2016 20:06:11 +0000 (20:06 +0000)]
[profile] Header file cleanup /NFC

Remove runtime specific decls from the common header.
This change also syncs up InstrProfData.inc between
llvm and compiler_rt.

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

8 years ago[X86][SSE] Added constant index tests for 128-bit integer vector types
Simon Pilgrim [Sun, 15 May 2016 19:27:28 +0000 (19:27 +0000)]
[X86][SSE] Added constant index tests for 128-bit integer vector types

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

8 years ago[X86][SSE] Added variable index tests for 128-bit integer vector types
Simon Pilgrim [Sun, 15 May 2016 19:12:39 +0000 (19:12 +0000)]
[X86][SSE] Added variable index tests for 128-bit integer vector types

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

8 years agoFixed typo in test
Simon Pilgrim [Sun, 15 May 2016 18:50:22 +0000 (18:50 +0000)]
Fixed typo in test

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

8 years agoadd test to show missing optimization
Sanjay Patel [Sun, 15 May 2016 18:41:18 +0000 (18:41 +0000)]
add test to show missing optimization

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

8 years ago[X86][SSE] Added extra extractelement tests
Simon Pilgrim [Sun, 15 May 2016 18:22:21 +0000 (18:22 +0000)]
[X86][SSE] Added extra extractelement tests

Added constant index tests for all 256-bit integer vector types (touching lower / upper 128-bits)

Added variable index tests for all 256-bit integer vector types

Added out-of-range index tests for all 256-bit integer vector types

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

8 years agoregenerate checks
Sanjay Patel [Sun, 15 May 2016 18:05:10 +0000 (18:05 +0000)]
regenerate checks

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

8 years ago[X86][SSE] Regenerate extractelement tests
Simon Pilgrim [Sun, 15 May 2016 18:02:39 +0000 (18:02 +0000)]
[X86][SSE] Regenerate extractelement tests

Added SSE2/AVX2 target tests

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

8 years ago[CostModel][X86] Added scalar bitreverse tests
Simon Pilgrim [Sun, 15 May 2016 17:40:48 +0000 (17:40 +0000)]
[CostModel][X86] Added scalar bitreverse tests

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

8 years agoMove helper classes into anonymous namespaces. NFC.
Benjamin Kramer [Sun, 15 May 2016 15:18:11 +0000 (15:18 +0000)]
Move helper classes into anonymous namespaces. NFC.

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

8 years agoVector GEP - fixed a crash on InstSimplify Pass.
Elena Demikhovsky [Sun, 15 May 2016 12:30:25 +0000 (12:30 +0000)]
Vector GEP - fixed a crash on InstSimplify Pass.
Vector GEP with mixed (vector and scalar) indices failed on the InstSimplify Pass when all indices are constants.

Differential revision http://reviews.llvm.org/D20149

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

8 years ago[PM/SCCP] Fix pass dependencies.
Davide Italiano [Sun, 15 May 2016 08:04:28 +0000 (08:04 +0000)]
[PM/SCCP] Fix pass dependencies.

TargetLibraryInfoWrapperPass is a dependency of
SCCP but it's not listed as such. Chandler pointed
out this is an easy mistake to make which only
surfaces in weird crashes with some flag combinations.
This code will go away anyway at some point in the
future, but as long as it's (still) exercised, try
to make it correct.

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

8 years agoThinLTOCodeGenerator: fix race condition found using TSAN
Mehdi Amini [Sun, 15 May 2016 05:49:47 +0000 (05:49 +0000)]
ThinLTOCodeGenerator: fix race condition found using TSAN

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoRename pass name to prepare to new PM porting /NFC
Xinliang David Li [Sun, 15 May 2016 01:04:24 +0000 (01:04 +0000)]
Rename pass name to prepare to new PM porting /NFC

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

8 years agoRevert "Revert "Revert 220932.": "Removing the static initializer in ManagedStatic...
Mehdi Amini [Sat, 14 May 2016 23:44:21 +0000 (23:44 +0000)]
Revert "Revert "Revert 220932.": "Removing the static initializer in ManagedStatic.cpp by using llvm_call_once to initialize the ManagedStatic mutex""

This reverts commit r269577.
Broke NetBSD, waiting for Kamil to investigate

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years ago[PM] Add newline at the end of the file, for consistency. NFC.
Davide Italiano [Sat, 14 May 2016 23:24:17 +0000 (23:24 +0000)]
[PM] Add newline at the end of the file, for consistency. NFC.

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

8 years ago[PM] Refactor cross-registration of AM into an helper.
Davide Italiano [Sat, 14 May 2016 23:21:50 +0000 (23:21 +0000)]
[PM] Refactor cross-registration of AM into an helper.

Requested by: Chandler Carruth.

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

8 years ago[AVX512] Make the permd intrinsics take a 32-bit immediate to match the software...
Craig Topper [Sat, 14 May 2016 21:13:20 +0000 (21:13 +0000)]
[AVX512] Make the permd intrinsics take a 32-bit immediate to match the software spec.

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

8 years ago[SCCP] Use range-based for loops. NFC.
Davide Italiano [Sat, 14 May 2016 20:59:09 +0000 (20:59 +0000)]
[SCCP] Use range-based for loops. NFC.

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

8 years agoRevert "Revert 220932.": "Removing the static initializer in ManagedStatic.cpp by...
Mehdi Amini [Sat, 14 May 2016 20:55:52 +0000 (20:55 +0000)]
Revert "Revert 220932.": "Removing the static initializer in ManagedStatic.cpp by using llvm_call_once to initialize the ManagedStatic mutex"

This reverts commit r221331 and reinstate r220932 as discussed in D19271.
Original commit message was:

This patch adds an llvm_call_once which is a wrapper around
std::call_once on platforms where it is available and devoid
of bugs. The patch also migrates the ManagedStatic mutex to
be allocated using llvm_call_once.

These changes are philosophically equivalent to the changes
added in r219638, which were reverted due to a hang on Win32
which was the result of a bug in the Windows implementation
of std::call_once.

Differential Revision: http://reviews.llvm.org/D5922

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoARM: support export directives for Windows
Saleem Abdulrasool [Sat, 14 May 2016 18:58:34 +0000 (18:58 +0000)]
ARM: support export directives for Windows

It seems that cl will emit the export directives for Windows ARM targets.  The
fact that it did this had originally been missed and this functionality was
never implemented.  This makes it possible to rely solely on the source code for
indicating what the exported interfaces are and brings us more compatibility
with cl.

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

8 years ago[AArch64] Update local variable names to conform to coding standard. NFC.
Chad Rosier [Sat, 14 May 2016 18:56:28 +0000 (18:56 +0000)]
[AArch64] Update local variable names to conform to coding standard. NFC.

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

8 years agoFixed lowering of _comi_ intrinsics from all sets - SSE/SSE2/AVX/AVX-512
Elena Demikhovsky [Sat, 14 May 2016 15:06:09 +0000 (15:06 +0000)]
Fixed lowering of _comi_ intrinsics from all sets - SSE/SSE2/AVX/AVX-512

Differential revision http://reviews.llvm.org/D19261

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

8 years agoRevert "[llc] New diagnostic handler"
Renato Golin [Sat, 14 May 2016 14:37:11 +0000 (14:37 +0000)]
Revert "[llc] New diagnostic handler"

This reverts commit r269563. Even though now it passes all LLDB bots
after a local fix, there's a new buildbot it fails with tests that we
hadn't seen locally:

http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/15647

Adding those tests to the list to investigate.

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

8 years agoRe-enable llvm/test/ThinLTO/X86/cache.ll.
NAKAMURA Takumi [Sat, 14 May 2016 14:28:17 +0000 (14:28 +0000)]
Re-enable llvm/test/ThinLTO/X86/cache.ll.

This reverts;
  r269548, "XFAIL ThinLTO Caching test on Windows."
  r269561, "Rework r269548, "XFAIL ThinLTO Caching test on Windows.", not to use XFAIL, for now."

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

8 years ago[Docs] Add some requirements to the Testing Guide
Renato Golin [Sat, 14 May 2016 14:27:40 +0000 (14:27 +0000)]
[Docs] Add some requirements to the Testing Guide

Patch by Diana Picus.

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

8 years agoCachePruning.cpp: Don't use errno.
NAKAMURA Takumi [Sat, 14 May 2016 14:21:39 +0000 (14:21 +0000)]
CachePruning.cpp: Don't use errno.

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

8 years agoRevert changes after test commit.
Dima Stepanov [Sat, 14 May 2016 13:29:52 +0000 (13:29 +0000)]
Revert changes after test commit.

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

8 years ago[llc] New diagnostic handler
Renato Golin [Sat, 14 May 2016 13:15:22 +0000 (13:15 +0000)]
[llc] New diagnostic handler

Without a diagnostic handler installed, llc's behaviour is to exit on the first
error that it encounters. This is very different from the behaviour of clang
and other front ends, which try to gather as many errors as possible before
exiting.

This commit adds a diagnostic handler to llc, allowing it to find and report
more than one error. The old behaviour is preserved under a flag (-exit-on-error).

Some of the tests fail with the new diagnostic handler, so they have to use the
new flag in order to run under the previous behaviour. Some of these are known
bugs, others need further investigation. Ideally, we should fix the tests and
remove the flag at some point in the future.

Reapplied after fixing the LLDB build that was broken due to the new
DiagnosticSeverity in LLVMContext.h.

Patch by Diana Picus.

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

8 years agoRework r269548, "XFAIL ThinLTO Caching test on Windows.", not to use XFAIL, for now.
NAKAMURA Takumi [Sat, 14 May 2016 12:47:40 +0000 (12:47 +0000)]
Rework r269548, "XFAIL ThinLTO Caching test on Windows.", not to use XFAIL, for now.

It was passing (and is XPASSing) with --host=linux --target=win32.

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

8 years ago[mips] Enable IAS by default for 32-bit MIPS targets (O32).
Daniel Sanders [Sat, 14 May 2016 12:43:08 +0000 (12:43 +0000)]
[mips] Enable IAS by default for 32-bit MIPS targets (O32).

Summary:
The MIPS IAS can now pass 'ninja check-all', recurse, build a bootable linux
kernel, and pass a variety of LNT testing.

Unfortunately we can't enable it by default for 64-bit targets yet since the N32
ABI is still very buggy and this also means we can't enable it for N64 either
because we can't distinguish between N32 and N64 in the relevant code.

Reviewers: vkalintiris

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D18759
Differential Revision: http://reviews.llvm.org/D18761

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

8 years agoTest commt: remove a blank line.
Dima Stepanov [Sat, 14 May 2016 10:30:54 +0000 (10:30 +0000)]
Test commt: remove a blank line.

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

8 years agollvm/Support/MachO.h: Fix warnings. [-Wpedantic]
NAKAMURA Takumi [Sat, 14 May 2016 08:00:11 +0000 (08:00 +0000)]
llvm/Support/MachO.h: Fix warnings. [-Wpedantic]

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

8 years agoXFAIL ThinLTO Caching test on Windows.
Mehdi Amini [Sat, 14 May 2016 05:38:58 +0000 (05:38 +0000)]
XFAIL ThinLTO Caching test on Windows.

I have no idea what's going on on Windows here.

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoRevert "Retry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC""
Chandler Carruth [Sat, 14 May 2016 05:26:26 +0000 (05:26 +0000)]
Revert "Retry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC""

This reverts commit r269491. It triggers warnings with Clang, breaking
builds for -Werror users including several build bots.

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

8 years agoAdd testing in llvm-lto for ThinLTO caching.
Mehdi Amini [Sat, 14 May 2016 05:16:41 +0000 (05:16 +0000)]
Add testing in llvm-lto for ThinLTO caching.

Trying to improve code coverage for `make check`

From: mehdi_amini <mehdi_amini@91177308-0d34-0410-b5e6-96231b3b80d8>

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

8 years agoThinLTOCodeGenerator: handle cases where temporary files can't be renamed
Mehdi Amini [Sat, 14 May 2016 05:16:35 +0000 (05:16 +0000)]
ThinLTOCodeGenerator: handle cases where temporary files can't be renamed

For instance when they're on different filesystem.

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoRevert "Add testing in llvm-lto for ThinLTO caching."
Mehdi Amini [Sat, 14 May 2016 05:07:44 +0000 (05:07 +0000)]
Revert "Add testing in llvm-lto for ThinLTO caching."

This reverts commit r269538 and r269542.
"rename()" is expected to fail across filesystems, will handle this.

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoIncrease verbosity in the test output to help debugging windows issues
Mehdi Amini [Sat, 14 May 2016 05:01:36 +0000 (05:01 +0000)]
Increase verbosity in the test output to help debugging windows issues

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoThinLTOCodeGenerator: handle std::error_code instead of silently dropping it.
Mehdi Amini [Sat, 14 May 2016 04:58:38 +0000 (04:58 +0000)]
ThinLTOCodeGenerator: handle std::error_code instead of silently dropping it.

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoStripDebugInfo: uses isa<DbgInfoIntrinsic> instead of matching against llvm.dbg....
Mehdi Amini [Sat, 14 May 2016 04:58:35 +0000 (04:58 +0000)]
StripDebugInfo: uses isa<DbgInfoIntrinsic> instead of matching against llvm.dbg.* (NFC)

Suggested by Adrian. This is NFC right now but is more clean and
robust against future potential new debug info intrinsics.

From: mehdi_amini <mehdi_amini@91177308-0d34-0410-b5e6-96231b3b80d8>

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

8 years agoRevert "StripDebugInfo: uses isa<DbgInfoIntrinsic> instead of matching against llvm...
Mehdi Amini [Sat, 14 May 2016 04:42:51 +0000 (04:42 +0000)]
Revert "StripDebugInfo: uses isa<DbgInfoIntrinsic> instead of matching against llvm.dbg.* (NFC)"

This reverts commit r269537, was not ready to be commited and went through by mistake

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoAdd testing in llvm-lto for ThinLTO caching.
Mehdi Amini [Sat, 14 May 2016 04:41:26 +0000 (04:41 +0000)]
Add testing in llvm-lto for ThinLTO caching.

Trying to improve code coverage for `make check`

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoStripDebugInfo: uses isa<DbgInfoIntrinsic> instead of matching against llvm.dbg....
Mehdi Amini [Sat, 14 May 2016 04:41:21 +0000 (04:41 +0000)]
StripDebugInfo: uses isa<DbgInfoIntrinsic> instead of matching against llvm.dbg.* (NFC)

Suggested by Adrian. This is NFC right now but is more clean and
robust against future potential new debug info intrinsics.

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoRemove unwanted fprintf debug
Mehdi Amini [Sat, 14 May 2016 04:41:14 +0000 (04:41 +0000)]
Remove unwanted fprintf debug

From: Mehdi Amini <mehdi.amini@apple.com>

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

8 years agoRevert r269534 "Silence a -Wundefined-var-template build warning." The bots didn...
Craig Topper [Sat, 14 May 2016 03:59:25 +0000 (03:59 +0000)]
Revert r269534 "Silence a -Wundefined-var-template build warning." The bots didn't like that.

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

8 years agoSilence a -Wundefined-var-template build warning.
Craig Topper [Sat, 14 May 2016 03:48:43 +0000 (03:48 +0000)]
Silence a -Wundefined-var-template build warning.

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

8 years ago[WebAssembly] Fix legalization of i128 shifts.
Dan Gohman [Sat, 14 May 2016 02:15:47 +0000 (02:15 +0000)]
[WebAssembly] Fix legalization of i128 shifts.

compiler-rt/libgcc shift routines expect the shift count to be an i32, so
use i32 as the shift count for shifts that are legalized to libcalls. This
also reverts r268991, now that the signatures are correct.

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

8 years ago[AVX512] Fix types for pshufd intrinsics. The immediate is the second argument and...
Craig Topper [Sat, 14 May 2016 00:47:18 +0000 (00:47 +0000)]
[AVX512] Fix types for pshufd intrinsics. The immediate is the second argument and the mask is the 4th argument. Also move the 128/256 tests to the right test file.

Prior to this the immediate was a strange 16-bits and the 512-bit intrinsic couldn't receive the full 16 mask bits it needs.

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

8 years ago[WebAssembly] Update expected torture test failures
Derek Schuff [Sat, 14 May 2016 00:22:17 +0000 (00:22 +0000)]
[WebAssembly] Update expected torture test failures

NFC; the waterfall just changed the way they are built.

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

8 years ago[codeview] Add type stream merging prototype
Reid Kleckner [Sat, 14 May 2016 00:02:53 +0000 (00:02 +0000)]
[codeview] Add type stream merging prototype

Summary:
This code is intended to be used as part of LLD's PDB writing. Until
that exists, this is exposed via llvm-readobj for testing purposes.

Type stream merging uses the following algorithm:

- Begin with a new empty stream, and a new empty hash table that maps
  from type record contents to new type index.
- For each new type stream, maintain a map from source type index to
  destination type index.
- For each record, copy it and rewrite its type indices to be valid in
  the destination type stream.
- If the new type record is not already present in the destination
  stream hash table, append it to the destination type stream, assign it
  the next type index, and update the two hash tables.
- If the type record already exists in the destination stream, discard
  it and update the type index map to forward the source type index to
  the existing destination type index.

Reviewers: zturner, ruiu

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D20122

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

8 years agoSDAG: Implement Select instead of SelectImpl in MipsDAGToDAGISel
Justin Bogner [Fri, 13 May 2016 23:55:59 +0000 (23:55 +0000)]
SDAG: Implement Select instead of SelectImpl in MipsDAGToDAGISel

- Where we were returning a node before, call ReplaceNode instead.
- Where we would return null to fall back to another selector, rename
  the method to try* and return a bool for success.
- Where we were calling SelectNodeTo, just return afterwards.

Part of llvm.org/pr26808.

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

8 years ago[MSan] [PowerPC] Implement PowerPC64 vararg helper.
Marcin Koscielnicki [Fri, 13 May 2016 23:55:33 +0000 (23:55 +0000)]
[MSan] [PowerPC] Implement PowerPC64 vararg helper.

Differential Revision: http://reviews.llvm.org/D20000

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

8 years agoSDAG: Clean up a dead node I missed earlier in X86
Justin Bogner [Fri, 13 May 2016 23:26:28 +0000 (23:26 +0000)]
SDAG: Clean up a dead node I missed earlier in X86

H.J. Lu pointed out that I missed this in r269236. Thanks!

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

8 years ago[MachO] More missing swapStruct implementations
Chris Bieneman [Fri, 13 May 2016 23:01:22 +0000 (23:01 +0000)]
[MachO] More missing swapStruct implementations

Added swapStruct for ident_command, fvmlib and fvmlib_command.

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

8 years ago[MachO] Filling in some structs I missed in r269499
Chris Bieneman [Fri, 13 May 2016 23:01:19 +0000 (23:01 +0000)]
[MachO] Filling in some structs I missed in r269499

I missed the fvmlib_command and the sub_framework_command, as well as a few uses of the dylib_command, dylinker_command, and linkedit_data_command.

This should now be a pretty complete listing. The only case I'm not sure about is LC_PREPAGE which doesn't seem to be referenced directly anywhere in LLVM.

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

8 years ago[AArch64] Simplify logic to reduce vertical space. NFC.
Chad Rosier [Fri, 13 May 2016 22:53:13 +0000 (22:53 +0000)]
[AArch64] Simplify logic to reduce vertical space. NFC.

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

8 years ago[PM] Port LowerAtomic to the new pass manager.
Davide Italiano [Fri, 13 May 2016 22:52:35 +0000 (22:52 +0000)]
[PM] Port LowerAtomic to the new pass manager.

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

8 years agoSDAG: Implement Select instead of SelectImpl in XCoreDAGToDAGISel
Justin Bogner [Fri, 13 May 2016 22:49:18 +0000 (22:49 +0000)]
SDAG: Implement Select instead of SelectImpl in XCoreDAGToDAGISel

- Where we were returning a node before, call ReplaceNode instead.
- Where we would return null to fall back to another selector, rename
  the method to try* and return a bool for success.
- Where we were calling SelectNodeTo, just return afterwards.

Part of llvm.org/pr26808.

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

8 years ago[LAA] Include MaxSafeDepDistBytes in the analysis print-out
Adam Nemet [Fri, 13 May 2016 22:49:13 +0000 (22:49 +0000)]
[LAA] Include MaxSafeDepDistBytes in the analysis print-out

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

8 years ago[LAA] Prepare the code to print more things in the summary. NFC
Adam Nemet [Fri, 13 May 2016 22:49:09 +0000 (22:49 +0000)]
[LAA] Prepare the code to print more things in the summary. NFC

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

8 years agoSDAG: Implement Select instead of SelectImpl in WebAssemblyDAGToDAGISel
Justin Bogner [Fri, 13 May 2016 22:44:57 +0000 (22:44 +0000)]
SDAG: Implement Select instead of SelectImpl in WebAssemblyDAGToDAGISel

This backend doesn't do anything custom here yet, so we just modernize
the boilerplate.

Part of llvm.org/pr26808.

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

8 years agoSDAG: Implement Select instead of SelectImpl in SystemZDAGToDAGISel
Justin Bogner [Fri, 13 May 2016 22:42:08 +0000 (22:42 +0000)]
SDAG: Implement Select instead of SelectImpl in SystemZDAGToDAGISel

- Where we were returning a node before, call ReplaceNode instead.
- Where we would return null to fall back to another selector, rename
  the method to try* and return a bool for success.

Part of llvm.org/pr26808.

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

8 years agoAnother attempt to fix MSVC by explicitly disabling the conversion
Chandler Carruth [Fri, 13 May 2016 22:20:43 +0000 (22:20 +0000)]
Another attempt to fix MSVC by explicitly disabling the conversion
operator when the value type can't be initialized from the argument
type. Testing with the online MSVC compiler is finally happy with this,
let's see if the build bot will tolerate it.

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

8 years ago[MachO] Adding a few missing swapStruct functions
Chris Bieneman [Fri, 13 May 2016 22:12:44 +0000 (22:12 +0000)]
[MachO] Adding a few missing swapStruct functions

MachO.h was missing the swapStruct functions for a few load command structures.

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

8 years ago[MachO] Adding struct field to MachO.def
Chris Bieneman [Fri, 13 May 2016 22:12:41 +0000 (22:12 +0000)]
[MachO] Adding struct field to MachO.def

This provides a mapping from load command names to the data structures.

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

8 years ago[libFuzzer] do the merge faster and a bit less precise
Kostya Serebryany [Fri, 13 May 2016 22:11:23 +0000 (22:11 +0000)]
[libFuzzer] do the merge faster and a bit less precise

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

8 years agouse 'match' for less indenting; NFCI
Sanjay Patel [Fri, 13 May 2016 21:51:17 +0000 (21:51 +0000)]
use 'match' for less indenting; NFCI

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

8 years agoRetry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"
Vedant Kumar [Fri, 13 May 2016 21:50:56 +0000 (21:50 +0000)]
Retry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"

Transition InstrProf and Coverage over to the stricter Error/Expected
interface.

Changes since the initial commit:
- Fix error message printing in llvm-profdata.
- Check errors in loadTestingFormat() + annotateAllFunctions().
- Defer error handling in InstrProfIterator to InstrProfReader.

Differential Revision: http://reviews.llvm.org/D19901

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

8 years agoSDAG: Implement Select instead of SelectImpl in SparcDAGToDAGISel
Justin Bogner [Fri, 13 May 2016 21:46:22 +0000 (21:46 +0000)]
SDAG: Implement Select instead of SelectImpl in SparcDAGToDAGISel

- Where we were returning a node before, call ReplaceNode instead.
- Where we would return null to fall back to another selector, rename
  the method to try* and return a bool for success.
- Where we were calling SelectNodeTo, just return afterwards.

Part of llvm.org/pr26808.

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

8 years ago[Support][Unittests] Add unittest for recursive_directory_iterator::level()
Bruno Cardoso Lopes [Fri, 13 May 2016 21:31:32 +0000 (21:31 +0000)]
[Support][Unittests] Add unittest for recursive_directory_iterator::level()

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

8 years agoRevert "Revert "[Unroll] Implement a conservative and monotonically increasing cost...
Michael Zolotukhin [Fri, 13 May 2016 21:23:25 +0000 (21:23 +0000)]
Revert "Revert "[Unroll] Implement a conservative and monotonically increasing cost tracking system during the full unroll heuristic analysis that avoids counting any instruction cost until that instruction becomes "live" through a side-effect or use outside the...""

This reverts commit r269395.

Try to reapply with a fix from chapuni.

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

8 years agofix documentation comments; NFC
Sanjay Patel [Fri, 13 May 2016 21:23:08 +0000 (21:23 +0000)]
fix documentation comments; NFC

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

8 years agopdbdump: Print "Publics" stream.
Rui Ueyama [Fri, 13 May 2016 21:21:53 +0000 (21:21 +0000)]
pdbdump: Print "Publics" stream.

Publics stream seems to contain information as to public symbols.
It actually contains a serialized hash table along with fixed-sized
headers. This patch is not complete. It scans only till the end of
the stream and dump the header information. I'll write code to
de-serialize the hash table later.

Reviewers: zturner

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D20256

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

8 years agoSDAG: Implement Select instead of SelectImpl in NVPTXDAGToDAGISel
Justin Bogner [Fri, 13 May 2016 21:12:53 +0000 (21:12 +0000)]
SDAG: Implement Select instead of SelectImpl in NVPTXDAGToDAGISel

- Where we were returning a node before, call ReplaceNode instead.
- Where we would return null to fall back to another selector, rename
  the method to try* and return a bool for success.

Part of llvm.org/pr26808.

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

8 years agoCorrect spelling in comment (NFC)
Matthew Simpson [Fri, 13 May 2016 21:01:07 +0000 (21:01 +0000)]
Correct spelling in comment (NFC)

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

8 years agoAMDGPU: Unify LowerGlobalAddress
Jan Vesely [Fri, 13 May 2016 20:39:34 +0000 (20:39 +0000)]
AMDGPU: Unify LowerGlobalAddress

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19794

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

8 years agoAMDGPU/R600: Fold global address operand
Jan Vesely [Fri, 13 May 2016 20:39:31 +0000 (20:39 +0000)]
AMDGPU/R600: Fold global address operand

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19793

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

8 years agoAMDGPU/R600: Implement memory loads from constant AS
Jan Vesely [Fri, 13 May 2016 20:39:29 +0000 (20:39 +0000)]
AMDGPU/R600: Implement memory loads from constant AS

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19792

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

8 years agoAMDGPU/R600: Add support for emitting MCExpr
Jan Vesely [Fri, 13 May 2016 20:39:26 +0000 (20:39 +0000)]
AMDGPU/R600: Add support for emitting MCExpr

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19791

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

8 years agoAMDGPU: Add support for MCExpr to instruction printer
Jan Vesely [Fri, 13 May 2016 20:39:24 +0000 (20:39 +0000)]
AMDGPU: Add support for MCExpr to instruction printer

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19790

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

8 years agoAMDGPU/R600: Use machine operands instead of ints to track literals
Jan Vesely [Fri, 13 May 2016 20:39:22 +0000 (20:39 +0000)]
AMDGPU/R600: Use machine operands instead of ints to track literals

This will be used for global addresses

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19789

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

8 years agoAMDGPU/R600: There are other uses for ALU_LITERAL besides Imm
Jan Vesely [Fri, 13 May 2016 20:39:20 +0000 (20:39 +0000)]
AMDGPU/R600: There are other uses for ALU_LITERAL besides Imm

This will be used for GV

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19788

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

8 years agoAMDGPU: Make CONST_DATA_PTR available to R600
Jan Vesely [Fri, 13 May 2016 20:39:18 +0000 (20:39 +0000)]
AMDGPU: Make CONST_DATA_PTR available to R600

Rename to AMDGPUconstdata_ptr

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19786

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

8 years agoAMDGPU/EG,CM: Add instruction to read from constant AS (VTX2)
Jan Vesely [Fri, 13 May 2016 20:39:16 +0000 (20:39 +0000)]
AMDGPU/EG,CM: Add instruction to read from constant AS (VTX2)

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19785

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

8 years agouse range-loops; NFCI
Sanjay Patel [Fri, 13 May 2016 20:24:53 +0000 (20:24 +0000)]
use range-loops; NFCI

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

8 years agoDisable test from r269436 on unsupported platforms
Steven Wu [Fri, 13 May 2016 20:10:51 +0000 (20:10 +0000)]
Disable test from r269436 on unsupported platforms

Fixing bots failure. test/ExecutionEngine/RuntimeDyld/SystemZ/cfi-relo-pc64.s
requires SystemZ backend. Mark the test as unsupported if the backend is not
available.

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

8 years agoRevert "(HEAD -> master, origin/master, origin/HEAD) [ProfileData] (llvm) Use Error...
Vedant Kumar [Fri, 13 May 2016 20:09:39 +0000 (20:09 +0000)]
Revert "(HEAD -> master, origin/master, origin/HEAD) [ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"

This reverts commit r269462. It fails two llvm-profdata tests.

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

8 years ago[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC
Vedant Kumar [Fri, 13 May 2016 20:01:27 +0000 (20:01 +0000)]
[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC

Transition InstrProf and Coverage over to the stricter Error/Expected
interface.

Differential Revision: http://reviews.llvm.org/D19901

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

8 years ago[codeview] Align class and print names of types
Reid Kleckner [Fri, 13 May 2016 19:37:07 +0000 (19:37 +0000)]
[codeview] Align class and print names of types

Summary: This way we can get rid of one of the fields in the .def file.

Reviewers: llvm-commits

Subscribers: zturner

Differential Revision: http://reviews.llvm.org/D20251

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

8 years agoARM: use callee-saved list in the order they're actually saved.
Tim Northover [Fri, 13 May 2016 19:16:14 +0000 (19:16 +0000)]
ARM: use callee-saved list in the order they're actually saved.

When setting the frame pointer, the offset from SP is calculated based on the
stack slot it gets allocated, but this slot is in turn based on the order of
the CSR list so that list should match the order we actually save the registers
in. Mostly it did, but in the edge-case of MachO AAPCS targets it was wrong.

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

8 years ago[Hexagon] Remove dead nodes from SelectionDAG to avoid cycles
Krzysztof Parzyszek [Fri, 13 May 2016 18:48:15 +0000 (18:48 +0000)]
[Hexagon] Remove dead nodes from SelectionDAG to avoid cycles

Recent changes to the instruction selection code exposed a problem where
a dead node was not removed on time. This node had both input and output
chains, which lead to an apparent cycle.

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

8 years agoRename getLargestLegalIntTypeSize to getLargestLegalIntTypeSizeInBits(). NFC.
Jun Bum Lim [Fri, 13 May 2016 18:38:35 +0000 (18:38 +0000)]
Rename getLargestLegalIntTypeSize to getLargestLegalIntTypeSizeInBits(). NFC.

Summary: Rename DataLayout::getLargestLegalIntTypeSize to DataLayout::getLargestLegalIntTypeSizeInBits() to prevent similar mistakes  fixed in r269433.

Reviewers: joker.eph, mcrosier

Subscribers: mcrosier, llvm-commits

Differential Revision: http://reviews.llvm.org/D20248

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

8 years ago[AMDGPU] Update nop insertion for debugger usage
Konstantin Zhuravlyov [Fri, 13 May 2016 18:21:28 +0000 (18:21 +0000)]
[AMDGPU] Update nop insertion for debugger usage
- Insert one nop for each high level statement instead of two
- Do not insert nop before prologue

Differential Revision: http://reviews.llvm.org/D20215

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

8 years agoRevert "[ARM,AArch64] NFC. Add extra test cases for bswap lowering."
Renato Golin [Fri, 13 May 2016 18:19:42 +0000 (18:19 +0000)]
Revert "[ARM,AArch64] NFC. Add extra test cases for bswap lowering."

This reverts commit r269425, as it fails on Windows (Thumb only).

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

8 years ago[libFuzzer] print the file name before executing the input so that if there is a...
Kostya Serebryany [Fri, 13 May 2016 18:10:33 +0000 (18:10 +0000)]
[libFuzzer] print the file name before executing the input so that if there is a crash we know which files has caused it

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

8 years agoregenerate checks and add a run to show missed shrinkage
Sanjay Patel [Fri, 13 May 2016 18:04:39 +0000 (18:04 +0000)]
regenerate checks and add a run to show missed shrinkage

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