]> granicus.if.org Git - llvm/log
llvm
9 years ago[InstCombine] use m_APInt for div --> ashr fold
Sanjay Patel [Mon, 27 Jun 2016 17:25:57 +0000 (17:25 +0000)]
[InstCombine] use m_APInt for div --> ashr fold
The APInt matcher works with splat vectors, so we get this fold for vectors too.

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

9 years agoUse isPositionIndependent(). NFC.
Rafael Espindola [Mon, 27 Jun 2016 17:21:46 +0000 (17:21 +0000)]
Use isPositionIndependent(). NFC.

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

9 years agoRevert -r273892 "Support arbitrary addrspace pointers in masked load/store intrinsics...
Artur Pilipenko [Mon, 27 Jun 2016 16:54:33 +0000 (16:54 +0000)]
Revert -r273892 "Support arbitrary addrspace pointers in masked load/store intrinsics" since some of the clang tests don't expect to see the updated signatures.

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

9 years ago[PM] Port PartialInlining to the new PM
Easwaran Raman [Mon, 27 Jun 2016 16:50:18 +0000 (16:50 +0000)]
[PM] Port PartialInlining to the new PM

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

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

9 years agoSupport arbitrary addrspace pointers in masked load/store intrinsics
Artur Pilipenko [Mon, 27 Jun 2016 16:29:26 +0000 (16:29 +0000)]
Support arbitrary addrspace pointers in masked load/store intrinsics

This is a resubmittion of 263158 change after fixing the existing problem with intrinsics mangling (see LTO and intrinsics mangling llvm-dev thread for details).

This patch fixes the problem which occurs when loop-vectorize tries to use @llvm.masked.load/store intrinsic for a non-default addrspace pointer. It fails with "Calling a function with a bad signature!" assertion in CallInst constructor because it tries to pass a non-default addrspace pointer to the pointer argument which has default addrspace.

The fix is to add pointer type as another overloaded type to @llvm.masked.load/store intrinsics.

Reviewed By: reames

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

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

9 years ago[X86][SSE] Added extra broadcast tests to cover PR28327
Simon Pilgrim [Mon, 27 Jun 2016 16:15:37 +0000 (16:15 +0000)]
[X86][SSE] Added extra broadcast tests to cover PR28327

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

9 years ago[asan] fix false dynamic-stack-buffer-overflow report with constantly-sized dynamic...
Kuba Brecka [Mon, 27 Jun 2016 15:57:08 +0000 (15:57 +0000)]
[asan] fix false dynamic-stack-buffer-overflow report with constantly-sized dynamic allocas, LLVM part

See the bug report at https://github.com/google/sanitizers/issues/691. When a dynamic alloca has a constant size, ASan instrumentation will treat it as a regular dynamic alloca (insert calls to poison and unpoison), but the backend will turn it into a regular stack variable. The poisoning/unpoisoning is then broken. This patch will treat such allocas as static.

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

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

9 years ago[SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y)
Zhan Jun Liau [Mon, 27 Jun 2016 15:55:30 +0000 (15:55 +0000)]
[SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y)

Summary:
Created a pattern to match 64-bit mode (and (xor x, -1), y)
to a shorter sequence of instructions.

Before the change, the canonical form is translated to:
        xihf    %r3, 4294967295
        xilf    %r3, 4294967295
        ngr     %r2, %r3

After the change, the canonical form is translated to:
        ngr     %r3, %r2
        xgr     %r2, %r3

Reviewers: zhanjunl, uweigand

Subscribers: llvm-commits

Author: assem

Committing on behalf of Assem.

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

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

9 years ago[Hexagon] Equally-sized vectors are equivalent in ISel (except vNi1)
Krzysztof Parzyszek [Mon, 27 Jun 2016 15:08:22 +0000 (15:08 +0000)]
[Hexagon] Equally-sized vectors are equivalent in ISel (except vNi1)

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

9 years ago[mips] Add instruction itineraries for LSA, DLSA
Simon Dardis [Mon, 27 Jun 2016 14:55:07 +0000 (14:55 +0000)]
[mips] Add instruction itineraries for LSA, DLSA

Reviewers: vkalintiris, dsanders

Differential Review: http://reviews.llvm.org/D21679

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

9 years ago[ARM] Fix Thumb text sections' flags under COFF/Windows
Renato Golin [Mon, 27 Jun 2016 14:42:20 +0000 (14:42 +0000)]
[ARM] Fix Thumb text sections' flags under COFF/Windows

The main issue here is that the "thumb" flag wasn't set for some of these
sections, making MSVC's link.exe fails to correctly relocate code
against the symbols inside these sections. link.exe could fail for
instance with the "fixup is not aligned for target 'XX'" error. If
linking doesn't fail, the relocation process goes wrong in the end and
invalid code is generated by the linker.

This patch adds Thumb/ARM information so that the right flags are set
on COFF/Windows.

Patch by Adrien Guinet.

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

9 years agoRevert 273848, it caused PR28329
Nico Weber [Mon, 27 Jun 2016 14:36:46 +0000 (14:36 +0000)]
Revert 273848, it caused PR28329

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

9 years agoLast line of file missing on previous check-in.
Chris Dewhurst [Mon, 27 Jun 2016 14:35:07 +0000 (14:35 +0000)]
Last line of file missing on previous check-in.

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

9 years agoMove isPositionIndependent up to AsmPrinter.
Rafael Espindola [Mon, 27 Jun 2016 14:19:45 +0000 (14:19 +0000)]
Move isPositionIndependent up to AsmPrinter.

Use it in ppc too.

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

9 years ago[Sparc] Formatting and commenting changes per review.
Chris Dewhurst [Mon, 27 Jun 2016 14:19:19 +0000 (14:19 +0000)]
[Sparc] Formatting and commenting changes per review.

Differential Review: http://reviews.llvm.org/rL273108

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

9 years agoUse the isPositionIndependent predicate. NFC.
Rafael Espindola [Mon, 27 Jun 2016 14:05:43 +0000 (14:05 +0000)]
Use the isPositionIndependent predicate. NFC.

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

9 years agoRemoved duplicate assertions note
Simon Pilgrim [Mon, 27 Jun 2016 13:06:18 +0000 (13:06 +0000)]
Removed duplicate assertions note

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

9 years ago[ARM] Use member initializers in ARMSubtarget. NFCI
Diana Picus [Mon, 27 Jun 2016 13:06:10 +0000 (13:06 +0000)]
[ARM] Use member initializers in ARMSubtarget. NFCI

Same as r273556, but with C++11 member initializers.

Change suggested by Matthias Braun (see http://reviews.llvm.org/D21432).

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

9 years agoFix "not all control paths return a value" warning on MSVC
Simon Pilgrim [Mon, 27 Jun 2016 12:58:10 +0000 (12:58 +0000)]
Fix "not all control paths return a value" warning on MSVC

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

9 years agoSimplify getLabelAccessInfo.
Rafael Espindola [Mon, 27 Jun 2016 12:56:02 +0000 (12:56 +0000)]
Simplify getLabelAccessInfo.

It now takes a IsPIC flag instead of computing and returning it.

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

9 years agoUse the isPositionIndependent predicate. NFC.
Rafael Espindola [Mon, 27 Jun 2016 12:48:21 +0000 (12:48 +0000)]
Use the isPositionIndependent predicate. NFC.

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

9 years agoAdd an explanation on how mips is special in here.
Rafael Espindola [Mon, 27 Jun 2016 12:33:33 +0000 (12:33 +0000)]
Add an explanation on how mips is special in here.

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

9 years ago[IRBuilder] Drop unused CreateInvoke overloads.
Benjamin Kramer [Mon, 27 Jun 2016 12:25:26 +0000 (12:25 +0000)]
[IRBuilder] Drop unused CreateInvoke overloads.

The arrayref overload is more flexible with virtually the same
interface. NFC.

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

9 years ago[msan] Tighten up type in StoreList. NFC.
Benjamin Kramer [Mon, 27 Jun 2016 12:25:23 +0000 (12:25 +0000)]
[msan] Tighten up type in StoreList. NFC.

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

9 years agoRemoved extra test from the prev commit.
Elena Demikhovsky [Mon, 27 Jun 2016 11:40:49 +0000 (11:40 +0000)]
Removed extra test from the prev commit.

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

9 years agoFixed consecutive memory access detection in Loop Vectorizer.
Elena Demikhovsky [Mon, 27 Jun 2016 11:19:23 +0000 (11:19 +0000)]
Fixed consecutive memory access detection in Loop Vectorizer.
It did not handle correctly cases without GEP.

The following loop wasn't vectorized:

for (int i=0; i<len; i++)

  *to++ = *from++;

I use getPtrStride() to find Stride for memory access and return 0 is the Stride is not 1 or -1.

Re-commit rL273257 - revision: http://reviews.llvm.org/D20789

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

9 years agoSIMachineFunctionInfo.cpp: Appease msc18 to use std::array.
NAKAMURA Takumi [Mon, 27 Jun 2016 10:26:43 +0000 (10:26 +0000)]
SIMachineFunctionInfo.cpp: Appease msc18 to use std::array.

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

9 years agoReformat.
NAKAMURA Takumi [Mon, 27 Jun 2016 10:26:36 +0000 (10:26 +0000)]
Reformat.

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

9 years agoReformat blank lines.
NAKAMURA Takumi [Mon, 27 Jun 2016 10:26:25 +0000 (10:26 +0000)]
Reformat blank lines.

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

9 years ago[sparc] Simplify slow and verbose string matching code to startswith_lower.
Benjamin Kramer [Mon, 27 Jun 2016 09:38:56 +0000 (09:38 +0000)]
[sparc] Simplify slow and verbose string matching code to startswith_lower.

No functionality change intended, found by cppcheck. PR28274.

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

9 years ago[gold] Fix test to not assume it runs on x86 hardware.
Arnaud A. de Grandmaison [Mon, 27 Jun 2016 09:13:03 +0000 (09:13 +0000)]
[gold] Fix test to not assume it runs on x86 hardware.

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

9 years ago[ARM] Do not test for CPUs, use SubtargetFeatures (Part 2). NFCI
Diana Picus [Mon, 27 Jun 2016 09:08:23 +0000 (09:08 +0000)]
[ARM] Do not test for CPUs, use SubtargetFeatures (Part 2). NFCI

This is a follow-up for r273544.

The end goal is to get rid of the isSwift / isCortexXY / isWhatever methods.

Since the ARM backend seems to have quite a lot of calls to these methods, I
intend to submit 5-6 subtarget features at a time, instead of one big lump.

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

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

9 years agoCachePruning: correct comment about file order. NFC
Pawel Bylica [Mon, 27 Jun 2016 08:46:23 +0000 (08:46 +0000)]
CachePruning: correct comment about file order. NFC

Summary: Actually the list of cached files is sorted by file size, not by last accessed time. Also remove unused file access time param for a helper function.

Reviewers: joker-eph, chandlerc, davide

Subscribers: llvm-commits

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

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

9 years agoAPInt: remove unsued param in private method. NFC
Pawel Bylica [Mon, 27 Jun 2016 08:31:48 +0000 (08:31 +0000)]
APInt: remove unsued param in private method. NFC

Reviewers: davide

Subscribers: davide, llvm-commits

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

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

9 years ago[mips][micromips] Implement LD, LLD, LWU, SD, DSRL, DSRL32 and DSRLV instructions
Hrvoje Varga [Mon, 27 Jun 2016 08:23:28 +0000 (08:23 +0000)]
[mips][micromips] Implement LD, LLD, LWU, SD, DSRL, DSRL32 and DSRLV instructions
Differential Revision: http://reviews.llvm.org/D16625

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

9 years ago[X86][AVX] Peek through bitcasts to find the source of broadcasts
Simon Pilgrim [Mon, 27 Jun 2016 07:44:32 +0000 (07:44 +0000)]
[X86][AVX] Peek through bitcasts to find the source of broadcasts

AVX1 can only broadcast vectors as floats/doubles, so for 256-bit vectors we insert bitcasts if we are shuffling v8i32/v4i64 types. Unfortunately the presence of these bitcasts prevents the current broadcast lowering code from peeking through cases where we have concatenated / extracted vectors to create the 256-bit vectors.

This patch allows us to peek through bitcasts as long as the number of elements doesn't change (i.e. element bitwidth is the same) so the broadcast index is not affected.

Note this bitcast peek is different from the stage later on which doesn't care about the type and is just trying to find a load node.

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

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

9 years ago[ConstantFolding] Fix bitcast vector of i1.
Igor Breger [Mon, 27 Jun 2016 06:42:54 +0000 (06:42 +0000)]
[ConstantFolding] Fix bitcast vector of i1.

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

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

9 years agoMips: Fix access to private functions.
Rafael Espindola [Mon, 27 Jun 2016 03:19:40 +0000 (03:19 +0000)]
Mips: Fix access to private functions.

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

9 years agoadd tests for potential select transforms
Sanjay Patel [Sun, 26 Jun 2016 23:44:21 +0000 (23:44 +0000)]
add tests for potential select transforms

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

9 years agoUse isPositionIndependent predicate. NFC.
Rafael Espindola [Sun, 26 Jun 2016 22:38:44 +0000 (22:38 +0000)]
Use isPositionIndependent predicate. NFC.

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

9 years agoUse isPositionIndependent. NFC.
Rafael Espindola [Sun, 26 Jun 2016 22:32:53 +0000 (22:32 +0000)]
Use isPositionIndependent. NFC.

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

9 years agoUse isPositionIndependent predicate.
Rafael Espindola [Sun, 26 Jun 2016 22:30:06 +0000 (22:30 +0000)]
Use isPositionIndependent predicate.

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

9 years agoUse isPositionIndependent predicate. NFC.
Rafael Espindola [Sun, 26 Jun 2016 22:24:01 +0000 (22:24 +0000)]
Use isPositionIndependent predicate. NFC.

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

9 years agoRefactor a duplicated predicate. NFC.
Rafael Espindola [Sun, 26 Jun 2016 22:13:55 +0000 (22:13 +0000)]
Refactor a duplicated predicate. NFC.

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

9 years ago[lit] Add SANITIZER_IGNORE_CVE_2016_2143 to pass_vars.
Marcin Koscielnicki [Sun, 26 Jun 2016 21:49:58 +0000 (21:49 +0000)]
[lit] Add SANITIZER_IGNORE_CVE_2016_2143 to pass_vars.

This variable is used by ASan (and other sanitizers in the future)
on s390x-linux to override a check for CVE-2016-2143 in the running
kernel (see revision 267747 on compiler-rt).  Since the check simply
checks if the kernel version is in a whitelist of known-good versions,
it may miss distribution kernels, or manually-patched kernels - hence
the need for this variable.  To enable running the ASan testsuite on
such kernels, this variable should be passed from the environment
down to the testcases.

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

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

9 years agoApply clang-tidy's modernize-loop-convert to lib/Analysis.
Benjamin Kramer [Sun, 26 Jun 2016 17:27:42 +0000 (17:27 +0000)]
Apply clang-tidy's modernize-loop-convert to lib/Analysis.

Only minor manual fixes. No functionality change intended.

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

9 years agoRevert r273807 (and r273809, r273810), it caused PR28311
Nico Weber [Sun, 26 Jun 2016 15:10:34 +0000 (15:10 +0000)]
Revert r273807 (and r273809, r273810), it caused PR28311

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

9 years agoApply clang-tidy's modernize-loop-convert to lib/MC.
Benjamin Kramer [Sun, 26 Jun 2016 14:49:00 +0000 (14:49 +0000)]
Apply clang-tidy's modernize-loop-convert to lib/MC.

Only minor manual fixes. No functionality change intended.

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

9 years agoApply clang-tidy's modernize-loop-convert to most of lib/IR.
Benjamin Kramer [Sun, 26 Jun 2016 14:10:56 +0000 (14:10 +0000)]
Apply clang-tidy's modernize-loop-convert to most of lib/IR.

Only minor manual fixes. No functionality change intended.

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

9 years ago[CodeExtractor] Merge DEBUG statements in an attempt to fix the msvc
Benjamin Kramer [Sun, 26 Jun 2016 13:39:33 +0000 (13:39 +0000)]
[CodeExtractor] Merge DEBUG statements in an attempt to fix the msvc
build.

There's a known bug in msvc 2013 that fails to compile do-while loops
inside of ranged for loops.

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

9 years agoFixed build failure (due to unused variable error) in r273807.
Amjad Aboud [Sun, 26 Jun 2016 13:36:23 +0000 (13:36 +0000)]
Fixed build failure (due to unused variable error) in r273807.

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

9 years agoFixed build failure (due to unused variable error) in r273807.
Amjad Aboud [Sun, 26 Jun 2016 12:43:33 +0000 (12:43 +0000)]
Fixed build failure (due to unused variable error) in r273807.

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

9 years agoApply clang-tidy's modernize-loop-convert to most of lib/Transforms.
Benjamin Kramer [Sun, 26 Jun 2016 12:28:59 +0000 (12:28 +0000)]
Apply clang-tidy's modernize-loop-convert to most of lib/Transforms.

Only minor manual fixes. No functionality change intended.

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

9 years ago[codeview] Improved array type support.
Amjad Aboud [Sun, 26 Jun 2016 11:44:45 +0000 (11:44 +0000)]
[codeview] Improved array type support.

Added support for:
1. Multi dimension array.
2. Array of structure type, which previously was declared incompletely.
3. Dynamic size array.

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

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

9 years ago[RSForGC] Appease MSVC
Sanjoy Das [Sun, 26 Jun 2016 05:42:52 +0000 (05:42 +0000)]
[RSForGC] Appease MSVC

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

9 years ago[X86] Rewrite lowerVectorShuffleWithPSHUFB to not require a ZeroableMask to be create...
Craig Topper [Sun, 26 Jun 2016 05:10:56 +0000 (05:10 +0000)]
[X86] Rewrite lowerVectorShuffleWithPSHUFB to not require a ZeroableMask to be created. We can do everything with the starting mask and zeroable bit vector. This removes the last usage of isSingleInputShuffleMask. NFC

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

9 years ago[X86] Replace calls to isSingleInputShuffleMask with just checking if V2 is UNDEF...
Craig Topper [Sun, 26 Jun 2016 05:10:53 +0000 (05:10 +0000)]
[X86] Replace calls to isSingleInputShuffleMask with just checking if V2 is UNDEF. Canonicalization and creation of shuffle vector ensures this is equivalent.

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

9 years ago[SelectionDAG] Use DAG.getCommutedVectorShuffle instead of reimplementing it.
Craig Topper [Sun, 26 Jun 2016 05:10:49 +0000 (05:10 +0000)]
[SelectionDAG] Use DAG.getCommutedVectorShuffle instead of reimplementing it.

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

9 years ago[LoopUnswitch] Unswitch on conditions feeding into guards
Sanjoy Das [Sun, 26 Jun 2016 05:10:45 +0000 (05:10 +0000)]
[LoopUnswitch] Unswitch on conditions feeding into guards

Summary:
This is a straightforward extension of what LoopUnswitch does to
branches to guards.  That is, we unswitch

```
for (;;) {
  ...
  guard(loop_invariant_cond);
  ...
}
```

into

```
if (loop_invariant_cond) {
  for (;;) {
    ...
    // There is no need to emit guard(true)
    ...
  }
} else {
  for (;;) {
    ...
    guard(false);
    // SimplifyCFG will clean this up by adding an
    // unreachable after the guard(false)
    ...
  }
}
```

Reviewers: majnemer

Subscribers: mcrosier, llvm-commits, mzolotukhin

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

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

9 years ago[RSForGC] Bring the BDVState struct up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:35 +0000 (04:55 +0000)]
[RSForGC] Bring the BDVState struct up to code; NFC

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

9 years ago[RSForGC] Bring computeLiveInValues up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:32 +0000 (04:55 +0000)]
[RSForGC] Bring computeLiveInValues up to code; NFC

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

9 years ago[RSForGC] Bring computeLiveOutSeed up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:30 +0000 (04:55 +0000)]
[RSForGC] Bring computeLiveOutSeed up to code; NFC

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

9 years ago[RSForGC] Bring computeLiveInValues up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:26 +0000 (04:55 +0000)]
[RSForGC] Bring computeLiveInValues up to code; NFC

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

9 years ago[RSForGC] Bring recomputeLiveInValues up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:23 +0000 (04:55 +0000)]
[RSForGC] Bring recomputeLiveInValues up to code; NFC

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

9 years ago[RSForGC] Bring containsGCPtrType, isGCPointerType up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:19 +0000 (04:55 +0000)]
[RSForGC] Bring containsGCPtrType, isGCPointerType up to code; NFC

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

9 years ago[RSForGC] Bring analyzeParsePointLiveness up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:17 +0000 (04:55 +0000)]
[RSForGC] Bring analyzeParsePointLiveness up to code; NFC

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

9 years ago[RSForGC] Bring meetBDVStateImpl up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:13 +0000 (04:55 +0000)]
[RSForGC] Bring meetBDVStateImpl up to code; NFC

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

9 years ago[RSForGC] Get rid of the unnecessary MeetBDVStates struct; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:10 +0000 (04:55 +0000)]
[RSForGC] Get rid of the unnecessary MeetBDVStates struct; NFC

All of its implementation is in just one function.

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

9 years ago[RSForGC] Bring findBasePointer up to code; NFC
Sanjoy Das [Sun, 26 Jun 2016 04:55:05 +0000 (04:55 +0000)]
[RSForGC] Bring findBasePointer up to code; NFC

Name-casing and minor style changes to bring the function up to the LLVM
coding style.

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

9 years ago[Object, COFF] An import data directory might not consist soley of imports
David Majnemer [Sun, 26 Jun 2016 04:36:32 +0000 (04:36 +0000)]
[Object, COFF] An import data directory might not consist soley of imports

The last import is the penultimate entry, the last entry is nulled out.
Data beyond the null entry should not be considered to hold import
entries.

This fixes PR28302.

N.B.  I am working on a reduced testcase, the one in PR28302 is too
large.

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

9 years ago[llvm-cov] Simplify the way expansion views are rendered (NFC)
Vedant Kumar [Sun, 26 Jun 2016 02:45:13 +0000 (02:45 +0000)]
[llvm-cov] Simplify the way expansion views are rendered (NFC)

If a sub-view has already been rendered, it's helpful to re-render the
expansion site before rendering the next expansion view. Make this fact
explicit in the rendering interface, instead of hiding it behind an
awkward Optional<LineRef> parameter.

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

9 years ago[X86] Convert ==/!= comparisons with -1 for checking undef in shuffle lowering to...
Craig Topper [Sat, 25 Jun 2016 19:05:29 +0000 (19:05 +0000)]
[X86] Convert ==/!= comparisons with -1 for checking undef in shuffle lowering to comparisons of <0 or >=0. While there do the same for other kinds of index checks that can just check for greater than 0. No functional change intended.

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

9 years ago[X86] Pull similar bitcasts on different paths to earlier shared point. NFC
Craig Topper [Sat, 25 Jun 2016 19:05:23 +0000 (19:05 +0000)]
[X86] Pull similar bitcasts on different paths to earlier shared point. NFC

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

9 years agoAMDGPU/R600: Fix GlobalValue regressions.
Jan Vesely [Sat, 25 Jun 2016 18:24:16 +0000 (18:24 +0000)]
AMDGPU/R600: Fix GlobalValue regressions.

Don't cast GV expression to MCSymbolRefExpr. r272705 changed GV to binary
expressions by including offset even if the offset it 0
(we haven't hit this sooner since tested workloads don't include static offsets)
We don't really care about the type of expression, so set it directly.
Fixes: r272705
Consider section relative relocations. Since all const as data is in one boffer section relative is equivalent to abs32.
Fixes: r273166
Differential Revision: http://reviews.llvm.org/D21633

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

9 years agoupdate tests to use FileCheck
Sanjay Patel [Sat, 25 Jun 2016 17:39:10 +0000 (17:39 +0000)]
update tests to use FileCheck

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

9 years ago[cmake] Port the llvm-config option --build-mode to LLVMConfig.cmake via the variable...
Michael Gottesman [Sat, 25 Jun 2016 11:31:50 +0000 (11:31 +0000)]
[cmake] Port the llvm-config option --build-mode to LLVMConfig.cmake via the variable LLVM_BUILD_TYPE.

This is just a small step in the direction of making LLVMConfig.cmake a complete
replacement for llvm-config.

For those unfamiliar, llvm-config --build-mode prints out CMAKE_BUILD_TYPE. Thus
as one can imagine, LLVM_BUILD_TYPE is @CMAKE_BUILD_TYPE@.

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

9 years agoReapply r273664 with workaround for MSVC
Hubert Tong [Sat, 25 Jun 2016 11:23:59 +0000 (11:23 +0000)]
Reapply r273664 with workaround for MSVC

Reviewers: rsmith, faisalv, aaron.ballman

Subscribers: llvm-commits, cfe-commits, nwilson

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

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

9 years agoJust a small cleanup
David Majnemer [Sat, 25 Jun 2016 08:34:38 +0000 (08:34 +0000)]
Just a small cleanup

No functional change is intended

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

9 years agoRevert "[SimplifyCFG] Stop inserting calls to llvm.trap for UB"
David Majnemer [Sat, 25 Jun 2016 08:19:55 +0000 (08:19 +0000)]
Revert "[SimplifyCFG] Stop inserting calls to llvm.trap for UB"

This reverts commit r273778, it seems to break UBSan :/

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

9 years ago[SimplifyCFG] Stop inserting calls to llvm.trap for UB
David Majnemer [Sat, 25 Jun 2016 08:04:19 +0000 (08:04 +0000)]
[SimplifyCFG] Stop inserting calls to llvm.trap for UB

SimplifyCFG had logic to insert calls to llvm.trap for two very
particular IR patterns: stores and invokes of undef/null.

While InstCombine canonicalizes certain undefined behavior IR patterns
to stores of undef, phase ordering means that this cannot be relied upon
in general.

There are much better tools than llvm.trap: UBSan and ASan.

N.B. I could be argued into reverting this change if a clear argument as
to why it is important that we synthesize llvm.trap for stores, I'd be
hard pressed to see why it'd be useful for invokes...

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

9 years ago[InstSimplify] Replace calls to null with undef
David Majnemer [Sat, 25 Jun 2016 07:37:30 +0000 (07:37 +0000)]
[InstSimplify] Replace calls to null with undef

Calling null is undefined behavior, we can simplify the resulting value
to undef.

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

9 years ago[SimplifyCFG] Replace calls to null/undef with unreachable
David Majnemer [Sat, 25 Jun 2016 07:37:27 +0000 (07:37 +0000)]
[SimplifyCFG] Replace calls to null/undef with unreachable

Calling null is undefined behavior, a call to undef can be trivially
treated as a call to null.

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

9 years agoFix a typo in FindAvailableLoadedValue, introduced by r273734. [-Wdocumentation]
NAKAMURA Takumi [Sat, 25 Jun 2016 06:03:14 +0000 (06:03 +0000)]
Fix a typo in FindAvailableLoadedValue, introduced by r273734. [-Wdocumentation]

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

9 years ago[llvm-cov] Make an API more consistent, NFC
Vedant Kumar [Sat, 25 Jun 2016 05:48:59 +0000 (05:48 +0000)]
[llvm-cov] Make an API more consistent, NFC

Make renderExpansionView() look a bit more like renderLine(), and
clarify its doxygen comment.

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

9 years ago[llvm-cov] Flesh out some doxygen comments, NFC
Vedant Kumar [Sat, 25 Jun 2016 05:48:54 +0000 (05:48 +0000)]
[llvm-cov] Flesh out some doxygen comments, NFC

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

9 years agoTry to fix the MSVC build
Vedant Kumar [Sat, 25 Jun 2016 03:27:29 +0000 (03:27 +0000)]
Try to fix the MSVC build

There's some kind of issue with using "constexpr unsigned" in an
anonymous namespace.

http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/13395

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

9 years ago[AMDGPU] Emit debugger prologue and emit the rest of the debugger fields in the kerne...
Konstantin Zhuravlyov [Sat, 25 Jun 2016 03:11:28 +0000 (03:11 +0000)]
[AMDGPU] Emit debugger prologue and emit the rest of the debugger fields in the kernel code header

Debugger prologue is emitted if -mattr=+amdgpu-debugger-emit-prologue.

Debugger prologue writes work group IDs and work item IDs to scratch memory at fixed location in the following format:
  - offset 0: work group ID x
  - offset 4: work group ID y
  - offset 8: work group ID z
  - offset 16: work item ID x
  - offset 20: work item ID y
  - offset 24: work item ID z

Set
  - amd_kernel_code_t::debug_wavefront_private_segment_offset_sgpr to scratch wave offset reg
  - amd_kernel_code_t::debug_private_segment_buffer_sgpr to scratch rsrc reg
  - amd_kernel_code_t::is_debug_supported to true if all debugger features are enabled

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

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

9 years agollvm-ar: add some tests for llvm-ar default selection
Saleem Abdulrasool [Sat, 25 Jun 2016 03:05:56 +0000 (03:05 +0000)]
llvm-ar: add some tests for llvm-ar default selection

This adds some tests for the smarter llvm-ar selection mode as well as some
additional tests as per Rafael's post commit review comments.

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

9 years ago[llvm-cov] Separate presentation logic from formatting logic, NFC
Vedant Kumar [Sat, 25 Jun 2016 02:58:30 +0000 (02:58 +0000)]
[llvm-cov] Separate presentation logic from formatting logic, NFC

This makes it easier to add renderers for new kinds of output formats.

- Define and document a pure-virtual coverage rendering interface.
- Move the text-based rendering logic into its a new file.
- Re-work the API to better reflect the presentation/formatting split.

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

9 years agoMachineScheduler: Remember top/bottom choice in bidirectional scheduling
Matthias Braun [Sat, 25 Jun 2016 02:03:36 +0000 (02:03 +0000)]
MachineScheduler: Remember top/bottom choice in bidirectional scheduling

Remember the last choice for the top/bottom scheduling boundary in
bidirectional scheduling mode. The top choice should not change if we
schedule at the bottom and vice versa.

This allows us to improve compiletime: We only recalculate the best pick
for one border and re-use the cached top-pick from the other border.

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

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

9 years agoAMDGPU/SI: Make sure not to fold offsets into local address space globals
Tom Stellard [Sat, 25 Jun 2016 01:59:16 +0000 (01:59 +0000)]
AMDGPU/SI: Make sure not to fold offsets into local address space globals

Summary:
Offset folding only works if you are emitting relocations, and we don't
emit relocations for local address space globals.

Reviewers: arsenm, nhaustov

Subscribers: arsenm, llvm-commits, kzhuravl

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

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

9 years ago[PlaceSafepoints] Don't call undef in test case; NFC
Sanjoy Das [Sat, 25 Jun 2016 01:40:54 +0000 (01:40 +0000)]
[PlaceSafepoints] Don't call undef in test case; NFC

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

9 years ago[LoopUnswitch] Avoid exponential behavior
Sanjoy Das [Sat, 25 Jun 2016 01:14:19 +0000 (01:14 +0000)]
[LoopUnswitch] Avoid exponential behavior

Summary: (No semantic change intended).

Reviewers: majnemer, bogner, mzolotukhin

Subscribers: mcrosier, llvm-commits, mzolotukhin

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

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

9 years agoThe absence of noreturn doesn't ensure mayReturn
David Majnemer [Sat, 25 Jun 2016 00:55:12 +0000 (00:55 +0000)]
The absence of noreturn doesn't ensure mayReturn

There are two separate issues:
- LLVM doesn't consider infinite loops to be side effects: we happily
  hoist/sink above/below loops whose bounds are unknown.
- The absence of the noreturn attribute is insufficient for us to know
  if a function will definitely return.  Relying on noreturn in the
  middle-end for any property is an accident waiting to happen.

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

9 years agoIt isn't meaningful for a transform to preserve another transform. NFC.
Michael Kuperstein [Sat, 25 Jun 2016 00:47:21 +0000 (00:47 +0000)]
It isn't meaningful for a transform to preserve another transform. NFC.

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

9 years agoIR: Introduce llvm.type.checked.load intrinsic.
Peter Collingbourne [Sat, 25 Jun 2016 00:23:04 +0000 (00:23 +0000)]
IR: Introduce llvm.type.checked.load intrinsic.

This intrinsic safely loads a function pointer from a virtual table pointer
using type metadata. This intrinsic is used to implement control flow integrity
in conjunction with virtual call optimization. The virtual call optimization
pass will optimize away llvm.type.checked.load intrinsics associated with
devirtualized calls, thereby removing the type check in cases where it is
not needed to enforce the control flow integrity constraint.

This patch also introduces the capability to copy type metadata between
global variables, and teaches the virtual call optimization pass to do so.

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

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

9 years agoMachineScheduler: Fully compare top/bottom candidates
Matthias Braun [Sat, 25 Jun 2016 00:23:00 +0000 (00:23 +0000)]
MachineScheduler: Fully compare top/bottom candidates

In bidirectional scheduling this gives more stable results than just
comparing the "reason" fields of the top/bottom node because the reason
field may be higher depending on what other nodes are in the queue.

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

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

9 years agoReinstate r273711
David Majnemer [Sat, 25 Jun 2016 00:04:10 +0000 (00:04 +0000)]
Reinstate r273711

r273711 was reverted by r273743.  The inliner needs to know about any
call sites in the inlined function.  These were obscured if we replaced
a call to undef with an undef but kept the call around.

This fixes PR28298.

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

9 years agoSilence a -Wsign-compare warning
David Majnemer [Sat, 25 Jun 2016 00:04:06 +0000 (00:04 +0000)]
Silence a -Wsign-compare warning

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

9 years agoAMDGPU: Define a schedule class for COPY.
Matthias Braun [Fri, 24 Jun 2016 23:52:11 +0000 (23:52 +0000)]
AMDGPU: Define a schedule class for COPY.

COPY was lacking a scheduling class, define it to avoid regressions in
the upcoming change to the bidirectional MachineScheduler. Approved by
tstellar on IRC.

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

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