oota-llvm.git
10 years ago[AArch64] Implement FrameAddr and ReturnAddr
Weiming Zhao [Tue, 29 Oct 2013 17:00:25 +0000 (17:00 +0000)]
[AArch64] Implement FrameAddr and ReturnAddr

Fixes PR17690

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

10 years ago[ARM] Make sure HasCRC is initialized to false in Subtarget.
Amara Emerson [Tue, 29 Oct 2013 16:54:52 +0000 (16:54 +0000)]
[ARM] Make sure HasCRC is initialized to false in Subtarget.

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

10 years agoSupport for microMIPS jump instructions
Zoran Jovanovic [Tue, 29 Oct 2013 16:38:59 +0000 (16:38 +0000)]
Support for microMIPS jump instructions

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

10 years agoR600/SI: Add compute support for CI v2
Tom Stellard [Tue, 29 Oct 2013 16:37:28 +0000 (16:37 +0000)]
R600/SI: Add compute support for CI v2

v2:
  - Fix LDS size calculation

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193621 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoR600: Expand vector FSQRT ops
Tom Stellard [Tue, 29 Oct 2013 16:37:20 +0000 (16:37 +0000)]
R600: Expand vector FSQRT ops

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

10 years agoDWARF parser: propery handle DW_FORM_ref_sig8 and fix Windows build.
Alexey Samsonov [Tue, 29 Oct 2013 16:32:19 +0000 (16:32 +0000)]
DWARF parser: propery handle DW_FORM_ref_sig8 and fix Windows build.

Based on D2050 by Timur Iskhodzhanov.

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

10 years agoThe asm printer has a mangler. Use it.
Rafael Espindola [Tue, 29 Oct 2013 16:24:21 +0000 (16:24 +0000)]
The asm printer has a mangler. Use it.

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

10 years agoThe AsmPrinter has a Mangler. Use it.
Rafael Espindola [Tue, 29 Oct 2013 16:18:15 +0000 (16:18 +0000)]
The AsmPrinter has a Mangler. Use it.

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

10 years agoThe asm printer has a mangler. Don't keep a second pointer to it.
Rafael Espindola [Tue, 29 Oct 2013 16:11:22 +0000 (16:11 +0000)]
The asm printer has a mangler. Don't keep a second pointer to it.

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

10 years agoSupport names like llvm-ar-3.4 and llvm-ranlib-3.4.
Rafael Espindola [Tue, 29 Oct 2013 14:25:43 +0000 (14:25 +0000)]
Support names like llvm-ar-3.4 and llvm-ranlib-3.4.

They are used in some packages. For example:
http://packages.ubuntu.com/saucy/i386/llvm-3.4/filelist

This fixes pr17721.

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

10 years agoTest cleanup for v8 instructions
Bernard Ogden [Tue, 29 Oct 2013 14:16:09 +0000 (14:16 +0000)]
Test cleanup for v8 instructions

Add some missing tests, factor out a test not specific to v8 into
its own file.

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

10 years agoClarify that GlobalVariables definitions must have an initializer.
Rafael Espindola [Tue, 29 Oct 2013 13:44:11 +0000 (13:44 +0000)]
Clarify that GlobalVariables definitions must have an initializer.

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

10 years agoQuick-fix DebugInfo build on Windows
Timur Iskhodzhanov [Tue, 29 Oct 2013 12:13:22 +0000 (12:13 +0000)]
Quick-fix DebugInfo build on Windows

MSVC can't comprehend
  template<typename T, size_t N>
  ArrayRef<T> makeArrayRef(const T (&Arr)[N]) {
    return ArrayRef<T>(Arr);
  }
if Arr is
  static const uint8_t sizes[];
declared in a templated and defined a few lines later.

I'll send a proper fix (i.e. get rid of unnecessary templates) for review soon.

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

10 years agoARM: Add subtarget feature for CRC
Bernard Ogden [Tue, 29 Oct 2013 09:47:35 +0000 (09:47 +0000)]
ARM: Add subtarget feature for CRC

Adds a subtarget feature for the CRC instructions (optional in v8-A) to the ARM (32-bit) backend.

Differential Revision: http://llvm-reviews.chandlerc.com/D2036

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

10 years agoFix misapplied patch in r193597
Anders Waldenborg [Tue, 29 Oct 2013 09:37:28 +0000 (09:37 +0000)]
Fix misapplied patch in r193597

Sorry Peter Zotov, entirely my fault.

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

10 years agollvm-c: Make LLVM{Get,Set}Alignment work on {Load,Store}Inst too
Anders Waldenborg [Tue, 29 Oct 2013 09:02:02 +0000 (09:02 +0000)]
llvm-c: Make LLVM{Get,Set}Alignment work on {Load,Store}Inst too

Patch by Peter Zotov

Differential Revision: http://llvm-reviews.chandlerc.com/D1910

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

10 years agoAArch64: add 'a' inline asm operand modifier
Tim Northover [Tue, 29 Oct 2013 08:22:33 +0000 (08:22 +0000)]
AArch64: add 'a' inline asm operand modifier

This is used in the Linux kernel, and effectively just means "print an
address".

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

10 years agoDebug Info: instead of calling addToContextOwner which constructs the context
Manman Ren [Tue, 29 Oct 2013 05:49:41 +0000 (05:49 +0000)]
Debug Info: instead of calling addToContextOwner which constructs the context
after the DIE creation, we construct the context first.

This touches creation of namespaces and global variables. The purpose is to
handle all DIE creations similarly: constructs the context first, then creates
the DIE and immediately adds the DIE to its parent.

We use createAndAddDIE to wrap around "new DIE(".

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

10 years agoAdd llvm/test/Transforms/SLPVectorizer/ARM/lit.local.cfg. Tests there require ARM...
NAKAMURA Takumi [Tue, 29 Oct 2013 02:46:00 +0000 (02:46 +0000)]
Add llvm/test/Transforms/SLPVectorizer/ARM/lit.local.cfg. Tests there require ARM in targets.

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

10 years agoFix "existant" typos
Alp Toker [Tue, 29 Oct 2013 02:35:28 +0000 (02:35 +0000)]
Fix "existant" typos

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

10 years agoClean up.
Richard Smith [Tue, 29 Oct 2013 01:44:23 +0000 (01:44 +0000)]
Clean up.

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

10 years agoDWARFFormValue.cpp: Appease gcc to give explicit constructors.
NAKAMURA Takumi [Tue, 29 Oct 2013 01:43:05 +0000 (01:43 +0000)]
DWARFFormValue.cpp: Appease gcc to give explicit constructors.

  error: conversion from `const uint8_t*' to non-scalar type `llvm::ArrayRef<unsigned char>' requested

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

10 years agoARM cost model: Unaligned vectorized double stores are expensive
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:57 +0000 (01:33 +0000)]
ARM cost model: Unaligned vectorized double stores are expensive

Updated a test case that assumed that <2 x double> would vectorize to use
<4 x float>.

radar://15338229

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

10 years agoARM cost model: Account for zero cost scalar SROA instructions
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:53 +0000 (01:33 +0000)]
ARM cost model: Account for zero cost scalar SROA instructions

By vectorizing a series of srl, or, ... instructions we have obfuscated the
intention so much that the backend does not know how to fold this code away.

radar://15336950

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

10 years agoSLPVectorizer: Use vector type for vectorized memory operations
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:50 +0000 (01:33 +0000)]
SLPVectorizer: Use vector type for vectorized memory operations

No test case, because with the current cost model we don't see a difference.
An upcoming ARM memory cost model change will expose and test this bug.

radar://15332579

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

10 years agoCleaning up comments in lli
Andrew Kaylor [Tue, 29 Oct 2013 01:33:14 +0000 (01:33 +0000)]
Cleaning up comments in lli

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

10 years agoAdding a workaround for __main linking with remote lli and Cygwin/MinGW
Andrew Kaylor [Tue, 29 Oct 2013 01:29:56 +0000 (01:29 +0000)]
Adding a workaround for __main linking with remote lli and Cygwin/MinGW

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

10 years agoMove the STT_FILE symbols out of the normal symbol table processing for
Joerg Sonnenberger [Tue, 29 Oct 2013 01:06:17 +0000 (01:06 +0000)]
Move the STT_FILE symbols out of the normal symbol table processing for
ELF. They can overlap with the other symbols, e.g. if a source file
"foo.c" contains a function "foo" with a static variable "c".

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

10 years agoDebug Info: use createAndAddDIE to wrap around "new DIE" in DwarfDebug.
Manman Ren [Tue, 29 Oct 2013 01:03:01 +0000 (01:03 +0000)]
Debug Info: use createAndAddDIE to wrap around "new DIE" in DwarfDebug.

This commit ensures DIEs are constructed within a compile unit and
immediately added to their parents.

Reviewed off-list by Eric.

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

10 years agoDebug Info: use createAndAddDIE for newly-created Subprogram DIEs.
Manman Ren [Tue, 29 Oct 2013 00:58:04 +0000 (00:58 +0000)]
Debug Info: use createAndAddDIE for newly-created Subprogram DIEs.

More patches will be submitted to convert "new DIE(" to use createAddAndDIE in
DwarfCompileUnit.cpp. This will simplify implementation of addDIEEntry where
we have to decide between ref4 and ref_addr, because DIEs that can be shared
across CU will be added to a CU already.

Reviewed off-list by Eric.

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

10 years agoDebug Info: add a helper function createAndAddDIE.
Manman Ren [Tue, 29 Oct 2013 00:53:03 +0000 (00:53 +0000)]
Debug Info: add a helper function createAndAddDIE.

It wraps around "new DIE(" and handles the bookkeeping part of the newly-created
DIE. It adds the DIE to its parent, and calls insertDIE if necessary. It makes
sure that bookkeeping is done at the earliest time and we should not see
parentless DIEs if all constructions of DIEs go through this helper function.

Later on, we can use an allocator for DIE allocation, and will only need to
change createAndAddDIE instead of modifying all the "new DIE(".

Reviewed off-list by Eric.

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

10 years agoMerge DWARFDIE::extractFast and DWARFDIE::extract into one function.
Alexey Samsonov [Mon, 28 Oct 2013 23:58:58 +0000 (23:58 +0000)]
Merge DWARFDIE::extractFast and DWARFDIE::extract into one function.

Complicated CU-DIE-specific logic in the latter was never used,
and it makes sense to have safety checks for broken dwarf in the former.

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

10 years agoRenaming MCJIT .ir files to .ll and moving them to Inputs
Andrew Kaylor [Mon, 28 Oct 2013 23:51:03 +0000 (23:51 +0000)]
Renaming MCJIT .ir files to .ll and moving them to Inputs

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

10 years agoDWARF parser: Use ArrayRef to represent form sizes and simplify DWARFDIE::extractFast...
Alexey Samsonov [Mon, 28 Oct 2013 23:41:49 +0000 (23:41 +0000)]
DWARF parser: Use ArrayRef to represent form sizes and simplify DWARFDIE::extractFast() interface. No functionality change.

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

10 years agolit: add missing substitutions for recently added tools
Alp Toker [Mon, 28 Oct 2013 23:37:49 +0000 (23:37 +0000)]
lit: add missing substitutions for recently added tools

llvm-mcmarkup, obj2yaml and yaml2obj were missing from the substitutions list,
causing the test suite to fail in a sandboxed environment.

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

10 years agoQuote potential shell expansions found in tests
Alp Toker [Mon, 28 Oct 2013 23:37:45 +0000 (23:37 +0000)]
Quote potential shell expansions found in tests

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

10 years agoDWARF parser: since DWARF4, DW_AT_high_pc may be a constant representing function...
Alexey Samsonov [Mon, 28 Oct 2013 23:15:15 +0000 (23:15 +0000)]
DWARF parser: since DWARF4, DW_AT_high_pc may be a constant representing function size

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

10 years agoDebugInfo: Introduce the notion of "form classes"
Alexey Samsonov [Mon, 28 Oct 2013 23:01:48 +0000 (23:01 +0000)]
DebugInfo: Introduce the notion of "form classes"

Summary:
Use DWARF4 table of form classes to fetch attributes from DIE
in a more consistent way. This shouldn't change the functionality and
serves as a refactoring for upcoming change: DW_AT_high_pc has different
semantics depending on its form class.

Reviewers: dblaikie, echristo

Reviewed By: echristo

CC: echristo, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1961

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

10 years agoFix the lli --extra-module value_desc
Alp Toker [Mon, 28 Oct 2013 22:51:25 +0000 (22:51 +0000)]
Fix the lli --extra-module value_desc

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

10 years agoAdd a few tests for StringRef::{start,end}with.
Rui Ueyama [Mon, 28 Oct 2013 22:42:54 +0000 (22:42 +0000)]
Add a few tests for StringRef::{start,end}with.

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

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Mon, 28 Oct 2013 22:17:19 +0000 (22:17 +0000)]
Convert another llc -filetype=obj test.

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

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Mon, 28 Oct 2013 22:11:47 +0000 (22:11 +0000)]
Convert another llc -filetype=obj test.

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

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Mon, 28 Oct 2013 22:05:05 +0000 (22:05 +0000)]
Convert another llc -filetype=obj test.

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

10 years agoStandardizing lli's extra module command line option
Andrew Kaylor [Mon, 28 Oct 2013 21:58:15 +0000 (21:58 +0000)]
Standardizing lli's extra module command line option

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

10 years agoRemove stray '_'.
Bill Wendling [Mon, 28 Oct 2013 21:43:54 +0000 (21:43 +0000)]
Remove stray '_'.

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

10 years agoUse the correct reference. Spotted by Sean Silva.
Bill Wendling [Mon, 28 Oct 2013 21:43:11 +0000 (21:43 +0000)]
Use the correct reference. Spotted by Sean Silva.

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

10 years agoRemove 2.4 from the list of supported Python versions.
Bill Wendling [Mon, 28 Oct 2013 21:22:23 +0000 (21:22 +0000)]
Remove 2.4 from the list of supported Python versions.

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

10 years ago[mips] Simplify LowerFormalArguments using getRegClassFor.
Akira Hatanaka [Mon, 28 Oct 2013 21:21:36 +0000 (21:21 +0000)]
[mips] Simplify LowerFormalArguments using getRegClassFor.

No functionality change.

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

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Mon, 28 Oct 2013 21:12:15 +0000 (21:12 +0000)]
Convert another llc -filetype=obj test.

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

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Mon, 28 Oct 2013 21:06:12 +0000 (21:06 +0000)]
Convert another llc -filetype=obj test.

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

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Mon, 28 Oct 2013 20:59:41 +0000 (20:59 +0000)]
Convert another llc -filetype=obj test.

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

10 years agoConvert another llc -filetype=obj test.
Rafael Espindola [Mon, 28 Oct 2013 20:54:33 +0000 (20:54 +0000)]
Convert another llc -filetype=obj test.

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

10 years agoReturn early from getUnconditionalBranchTargetOpValue if the branch target is
Lang Hames [Mon, 28 Oct 2013 20:51:11 +0000 (20:51 +0000)]
Return early from getUnconditionalBranchTargetOpValue if the branch target is
an MCExpr, in order to avoid writing an encoded zero value in the immediate
field.

When getUnconditionalBranchTargetOpValue is called with an MCExpr target, we
don't know what the final immediate field value should be. We shouldn't
explicitly set the immediate field to an encoded zero value as zero is encoded
with a non-zero bit pattern. This leads to bits being set that pollute the
final immediate value. The nature of the encoding is such that the polluted
bits only affect very large immediate values, explaining why this hasn't
caused problems earlier.

Fixes <rdar://problem/15155975>.

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

10 years agoConvert a llc -filetype=obj test into a llvm-mc test.
Rafael Espindola [Mon, 28 Oct 2013 20:40:20 +0000 (20:40 +0000)]
Convert a llc -filetype=obj test into a llvm-mc test.

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

10 years agoTableGen: remove unused variable.
Ahmed Bougacha [Mon, 28 Oct 2013 18:19:04 +0000 (18:19 +0000)]
TableGen: remove unused variable.

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

10 years agoTableGen: Refactor DAG patterns to enable parsing one pattern at a time.
Ahmed Bougacha [Mon, 28 Oct 2013 18:07:21 +0000 (18:07 +0000)]
TableGen: Refactor DAG patterns to enable parsing one pattern at a time.

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

10 years agoTableGen: Refactor AsmWriterEmitter to keep AsmWriterInsts.
Ahmed Bougacha [Mon, 28 Oct 2013 18:07:17 +0000 (18:07 +0000)]
TableGen: Refactor AsmWriterEmitter to keep AsmWriterInsts.

These used to be referenced by the CGI->AWI map (in AsmWriterEmitter), but
stored in a vector local to EmitPrintInstruction. Move the vector to
AsmWriterEmitter too.

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

10 years ago[arm] Implement eabi_attribute, cpu, and fpu directives.
Logan Chien [Mon, 28 Oct 2013 17:51:12 +0000 (17:51 +0000)]
[arm] Implement eabi_attribute, cpu, and fpu directives.

This commit allows the ARM integrated assembler to parse
and assemble the code with .eabi_attribute, .cpu, and
.fpu directives.

To implement the feature, this commit moves the code from
AttrEmitter to ARMTargetStreamers, and several new test
cases related to cortex-m4, cortex-r5, and cortex-a15 are
added.

Besides, this commit also change the Subtarget->isFPOnlySP()
to Subtarget->hasD16() to match the usage of .fpu directive.

This commit changes the test cases:

* Several .eabi_attribute directives in
  2010-09-29-mc-asm-header-test.ll are removed because the .fpu
  directive already cover the functionality.

* In the Cortex-A15 test case, the value for
  Tag_Advanced_SIMD_arch has be changed from 1 to 2,
  which is more precise.

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

10 years agosimplify ConstantRange::getSetSize()
Nuno Lopes [Mon, 28 Oct 2013 16:52:38 +0000 (16:52 +0000)]
simplify ConstantRange::getSetSize()

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

10 years ago[SystemZ] Set usaAA to true
Richard Sandiford [Mon, 28 Oct 2013 13:53:37 +0000 (13:53 +0000)]
[SystemZ] Set usaAA to true

useAA significantly improves the handling of vector code that has TBAA
information attached.  It also helps other cases, as shown by the testsuite
changes here.  The only real downside I've seen is that it interferes with
MergeConsecutiveStores.  The problem is that that optimization works top
down, starting at the first store in the chain, and looks for cases where
the chain result is only used by a single related store.  These related
stores don't alias, so useAA will have rewritten all the later stores to
use a different chain input (typically the same one as the first store).

I think the advantages outweigh the disadvantages though, so for now I've
just disabled alias analysis for the unaligned-01.ll test.

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

10 years ago[DAGCombiner] Respect volatility when checking for aliases
Richard Sandiford [Mon, 28 Oct 2013 12:00:00 +0000 (12:00 +0000)]
[DAGCombiner] Respect volatility when checking for aliases

Making useAA() default to true for SystemZ showed that the combiner alias
analysis wasn't handling volatile accesses.  This hit many of the SystemZ
tests, but I arbitrarily picked one for the purpose of this patch.

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

10 years agoKeep TBAA info when rewriting SelectionDAG loads and stores
Richard Sandiford [Mon, 28 Oct 2013 11:17:59 +0000 (11:17 +0000)]
Keep TBAA info when rewriting SelectionDAG loads and stores

Most SelectionDAG code drops the TBAA info when creating a new form of a
load and store (e.g. during legalization, or when converting a plain
load to an extending one).  This patch tries to catch all cases where
the TBAA information can legitimately be carried over.

The patch adds alternative forms of getLoad() and getExtLoad() that take
a MachineMemOperand instead of individual fields.  (The corresponding
getTruncStore() already exists.)  The idea is to use the MachineMemOperand
forms when all fields are carried over (size, pointer info, isVolatile,
isNonTemporal, alignment and TBAA info).  If some adjustment is being
made, e.g. to narrow the load, then we still pass the individual fields
but also pass the TBAA info.

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

10 years agolit: multiprocessing platform fix attempt
Alp Toker [Mon, 28 Oct 2013 10:26:13 +0000 (10:26 +0000)]
lit: multiprocessing platform fix attempt

The error raised by Python varies by platform(!), so let's just catch any
exception and fall back.

Thanks to Sylvestre Ledru for noticing this on a Debian / Python 2.7 system
running code coverage.

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

10 years agoSCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive.
Benjamin Kramer [Mon, 28 Oct 2013 07:30:06 +0000 (07:30 +0000)]
SCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive.

We can't do this for the general case as saying a GEP with a negative index
doesn't have unsigned wrap isn't valid for negative indices.
  %gep = getelementptr inbounds i32* %p, i64 -1

But an inbounds GEP cannot run past the end of address space. So we check for
the very common case of a positive index and make GEPs derived from that NUW.
Together with Andy's recent non-unit stride work this lets us analyze loops
like

  void foo3(int *a, int *b) {
    for (; a < b; a++) {}
  }

PR12375, PR12376.

Differential Revision: http://llvm-reviews.chandlerc.com/D2033

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

10 years agoPrune utf8 chars in comments.
NAKAMURA Takumi [Mon, 28 Oct 2013 04:07:38 +0000 (04:07 +0000)]
Prune utf8 chars in comments.

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

10 years agoPrune trailing linefeeds.
NAKAMURA Takumi [Mon, 28 Oct 2013 04:07:31 +0000 (04:07 +0000)]
Prune trailing linefeeds.

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

10 years agoTarget/R600: Un-tab-ify.
NAKAMURA Takumi [Mon, 28 Oct 2013 04:07:23 +0000 (04:07 +0000)]
Target/R600: Un-tab-ify.

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

10 years agoMake first substantial checkin of my port of ARM constant islands code to Mips.
Reed Kotler [Sun, 27 Oct 2013 21:57:36 +0000 (21:57 +0000)]
Make first substantial checkin of my port of ARM constant islands code to Mips.
Before I just ported the shell of the pass. I've tried to keep everything
nearly identical to the ARM version. I think it will be very easy to eventually
merge these two and create a new more general pass that other targets can
use. I have some improvements I would like to make to allow pools to
be shared across functions and some other things. When I'm all done we
can think about making a more general pass. More to be ported but the
basic mechanism works now almost as good as gcc mips16.

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

10 years agoClarify the comment about BSD versions in r193465
Alp Toker [Sun, 27 Oct 2013 20:49:19 +0000 (20:49 +0000)]
Clarify the comment about BSD versions in r193465

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

10 years agoNVPTX: Remove unused globals.
Benjamin Kramer [Sun, 27 Oct 2013 11:31:46 +0000 (11:31 +0000)]
NVPTX: Remove unused globals.

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

10 years agoHexagon: Remove global state.
Benjamin Kramer [Sun, 27 Oct 2013 11:16:09 +0000 (11:16 +0000)]
Hexagon: Remove global state.

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

10 years agoMCJIT-remote: __main should be resolved in child context.
NAKAMURA Takumi [Sun, 27 Oct 2013 10:22:52 +0000 (10:22 +0000)]
MCJIT-remote: __main should be resolved in child context.

  - Mark tests as XFAIL:cygming in test/ExecutionEngine/MCJIT/remote.
    Rather to suppress them, I'd like to leave them running as XFAIL.
  - Revert r193472. RecordMemoryManager no longer resolves __main on cygming.

There are a couple of issues.

  - X86 Codegen emits "call __main" in @main for targeting cygming.
    It is useless in JIT. FYI, tests are passing when emitting __main is disabled.
  - Current remote JIT does not resolve any symbols in child context.

FIXME: __main should be disabled, or remote JIT should resolve __main.

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

10 years agoAVX-512: PMIN/PMAX intrinsics and patterns
Elena Demikhovsky [Sun, 27 Oct 2013 08:18:37 +0000 (08:18 +0000)]
AVX-512: PMIN/PMAX intrinsics and patterns
Patch by Cameron McInally <cameron.mcinally@nyu.edu>

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

10 years agoA small grammar-os fixed.
Bill Wendling [Sun, 27 Oct 2013 05:09:12 +0000 (05:09 +0000)]
A small grammar-os fixed.

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

10 years agoUpdate to current output.
Bill Wendling [Sun, 27 Oct 2013 04:50:34 +0000 (04:50 +0000)]
Update to current output.
PR14039

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

10 years agoFix Sphinx warning.
Bill Wendling [Sun, 27 Oct 2013 04:25:02 +0000 (04:25 +0000)]
Fix Sphinx warning.

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

10 years agoUpdate to specify that both metadata and label types aren't proper return types.
Bill Wendling [Sun, 27 Oct 2013 04:19:29 +0000 (04:19 +0000)]
Update to specify that both metadata and label types aren't proper return types.

PR15447

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

10 years agoUpdate the Python version. And Perl isn't used anymore.
Bill Wendling [Sun, 27 Oct 2013 04:02:21 +0000 (04:02 +0000)]
Update the Python version. And Perl isn't used anymore.
PR17608

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

10 years agoUpdate link.
Bill Wendling [Sun, 27 Oct 2013 03:57:10 +0000 (03:57 +0000)]
Update link.
PR17608

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

10 years agoRevert r193251 : Use address-taken to disambiguate global variable and indirect memops.
Shuxin Yang [Sun, 27 Oct 2013 03:08:44 +0000 (03:08 +0000)]
Revert r193251 : Use address-taken to disambiguate global variable and indirect memops.

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

10 years agolli/RemoteMemoryManager.cpp: Resurrect __main stuff removed in r192504 to unbreak...
NAKAMURA Takumi [Sat, 26 Oct 2013 13:52:31 +0000 (13:52 +0000)]
lli/RemoteMemoryManager.cpp: Resurrect __main stuff removed in r192504 to unbreak mingw32.

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

10 years agoself.path may be empty or otherwise miss the normal system directories,
Joerg Sonnenberger [Sat, 26 Oct 2013 13:25:45 +0000 (13:25 +0000)]
self.path may be empty or otherwise miss the normal system directories,
so try PATH next. Assume it is sane enough to cover the usual system
bash locations too, but the old list is not good enough for NetBSD.

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

10 years agolit: Issue a note when multiprocessing fails to load
Alp Toker [Sat, 26 Oct 2013 09:29:58 +0000 (09:29 +0000)]
lit: Issue a note when multiprocessing fails to load

If multiprocessing was requested, detected as available and subsequently failed
to initialize it's worth letting the user know about it before falling back to
threads.

This condition can arise in certain OpenBSD / FreeBSD Python versions.

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

10 years agoFix a referenced before assignment in r193463
Alp Toker [Sat, 26 Oct 2013 08:46:05 +0000 (08:46 +0000)]
Fix a referenced before assignment in r193463

Some versions of Python on the builders seem strict about this.

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

10 years agolit: handle late multiprocessing errors gracefully
Alp Toker [Sat, 26 Oct 2013 08:22:44 +0000 (08:22 +0000)]
lit: handle late multiprocessing errors gracefully

This should be a better fix for lit multiprocessing failures, replacing the
OpenBSD and FreeBSD workarounds in r193413 and r193457.

Reference: http://bugs.python.org/issue3770

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

10 years agoQuick look-up for block in loop.
Wan Xiaofei [Sat, 26 Oct 2013 03:08:02 +0000 (03:08 +0000)]
Quick look-up for block in loop.

This patch implements quick look-up for block in loop by maintaining a hash set for blocks.
It improves the efficiency of loop analysis a lot, the biggest improvement could be 5-6%(458.sjeng).
Below are the compilation time for our benchmark in llc before & after the patch.

Benchmark llc - trunk llc - patched
401.bzip2 0.339081 100.00% 0.329657 102.86%
403.gcc 19.853966 100.00% 19.605466 101.27%
429.mcf 0.049823 100.00% 0.048451 102.83%
433.milc 0.514898 100.00% 0.510217 100.92%
444.namd 1.109328 100.00% 1.103481 100.53%
445.gobmk 4.988028 100.00% 4.929114 101.20%
456.hmmer 0.843871 100.00% 0.825865 102.18%
458.sjeng 0.754238 100.00% 0.714095 105.62%
464.h264ref 2.9668 100.00% 2.90612 102.09%
471.omnetpp 4.556533 100.00% 4.511886 100.99%
bitmnp01 0.038168 100.00% 0.0357 106.91%
idctrn01 0.037745 100.00% 0.037332 101.11%
libquake2 3.78689 100.00% 3.76209 100.66%
libquake_ 2.251525 100.00% 2.234104 100.78%
linpack 0.033159 100.00% 0.032788 101.13%
matrix01 0.045319 100.00% 0.043497 104.19%
nbench 0.333161 100.00% 0.329799 101.02%
tblook01 0.017863 100.00% 0.017666 101.12%
ttsprk01 0.054337 100.00% 0.053057 102.41%

Reviewer : Andrew Trick <atrick@apple.com>, Hal Finkel <hfinkel@anl.gov>
Approver : Andrew Trick <atrick@apple.com>
Test : Pass make check-all & llvm test-suite

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

10 years agollvm/test/lit.cfg: Tighten conditions to enable 'native'.
NAKAMURA Takumi [Sat, 26 Oct 2013 02:50:20 +0000 (02:50 +0000)]
llvm/test/lit.cfg: Tighten conditions to enable 'native'.

I saw the case that 'native' was mis-enabled when x86_64-pc-win32 on x86_64-linux.

FIXME: Consider cases that target can be executed even if host_triple were different from target_triple.

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

10 years agollvm/test/Other/close-stderr.ll: Remove "XFAIL:win32". It reverts r173509.
NAKAMURA Takumi [Sat, 26 Oct 2013 02:50:14 +0000 (02:50 +0000)]
llvm/test/Other/close-stderr.ll: Remove "XFAIL:win32". It reverts r173509.

"REQUIRES: shell" should cover if this failed.

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

10 years agoAttempt to fix the FreeBSD build, disable multiprocessing
Alp Toker [Sat, 26 Oct 2013 02:43:08 +0000 (02:43 +0000)]
Attempt to fix the FreeBSD build, disable multiprocessing

Speculative quick fix based on clang-X86_64-freebsd output:

  File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 33, in <module>
    " function, see issue 3770.")
ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.

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

10 years agoFix SCEVExpander: don't try to expand quadratic recurrences outside a loop.
Andrew Trick [Fri, 25 Oct 2013 21:35:56 +0000 (21:35 +0000)]
Fix SCEVExpander: don't try to expand quadratic recurrences outside a loop.

Partial fix for PR17459: wrong code at -O3 on x86_64-linux-gnu
(affecting trunk and 3.3)

When SCEV expands a recurrence outside of a loop it attempts to scale
by the stride of the recurrence. Chained recurrences don't work that
way. We could compute binomial coefficients, but would hve to
guarantee that the chained AddRec's are in a perfectly reduced form.

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

10 years agoFix LSR: don't normalize quadratic recurrences.
Andrew Trick [Fri, 25 Oct 2013 21:35:52 +0000 (21:35 +0000)]
Fix LSR: don't normalize quadratic recurrences.

Partial fix for PR17459: wrong code at -O3 on x86_64-linux-gnu
(affecting trunk and 3.3)

ScalarEvolutionNormalization was attempting to normalize by adding and
subtracting strides. Chained recurrences don't work that way.

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

10 years agoHandle calls and invokes in GlobalStatus.
Rafael Espindola [Fri, 25 Oct 2013 21:29:52 +0000 (21:29 +0000)]
Handle calls and invokes in GlobalStatus.

This patch teaches GlobalStatus to analyze a call that uses the global value as
a callee, not as an argument.

With this change internalize call handle the common use of linkonce_odr
functions. This reduces the number of linkonce_odr functions in a LTO build of
clang (checked with the emit-llvm gold plugin option) from 1730 to 60.

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

10 years agoLoopVectorizer: Don't attempt to vectorize extractelement instructions
Hal Finkel [Fri, 25 Oct 2013 20:40:15 +0000 (20:40 +0000)]
LoopVectorizer: Don't attempt to vectorize extractelement instructions

The loop vectorizer does not currently understand how to vectorize
extractelement instructions. The existing check, which excluded all
vector-valued instructions, did not catch extractelement instructions because
it checked only the return value. As a result, vectorization would proceed,
producing illegal instructions like this:

  %58 = extractelement <2 x i32> %15, i32 0
  %59 = extractelement i32 %58, i32 0

where the second extractelement is illegal because its first operand is not a vector.

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

10 years agoDIEHash: Summary hashing of member functions
David Blaikie [Fri, 25 Oct 2013 20:04:25 +0000 (20:04 +0000)]
DIEHash: Summary hashing of member functions

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

10 years agoTry to fix the build on windows.
Rafael Espindola [Fri, 25 Oct 2013 19:47:55 +0000 (19:47 +0000)]
Try to fix the build on windows.

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

10 years agoChange MemoryBuffer::getFile to take a Twine.
Rafael Espindola [Fri, 25 Oct 2013 19:06:52 +0000 (19:06 +0000)]
Change MemoryBuffer::getFile to take a Twine.

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

10 years agoDIEHash: Summary hashing of nested types
David Blaikie [Fri, 25 Oct 2013 18:38:43 +0000 (18:38 +0000)]
DIEHash: Summary hashing of nested types

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

10 years ago[X86][AVX512] Add patterns that match the AVX512 floating point register vbroadcast...
Quentin Colombet [Fri, 25 Oct 2013 18:04:12 +0000 (18:04 +0000)]
[X86][AVX512] Add patterns that match the AVX512 floating point register vbroadcast intrinsics.

Patch by Cameron McInally <cameron.mcinally@nyu.edu>

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

10 years ago[X86][AVX512] Add patterns that match the AVX512 floating point vbroadcast intrinsics.
Quentin Colombet [Fri, 25 Oct 2013 17:47:18 +0000 (17:47 +0000)]
[X86][AVX512] Add patterns that match the AVX512 floating point vbroadcast intrinsics.

Patch by Cameron McInally <cameron.mcinally@nyu.edu>

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

10 years ago[bugpoint] Increase the default memory limit for subprocesses to 300MB.
Daniel Sanders [Fri, 25 Oct 2013 17:41:41 +0000 (17:41 +0000)]
[bugpoint] Increase the default memory limit for subprocesses to 300MB.

Summary:
Currently shared library builds (BUILD_SHARED_LIBS=ON in cmake) fail three
bugpoint tests (BugPoint/remove_arguments_test.ll,
BugPoint/crash-narrowfunctiontest.ll, and BugPoint/metadata.ll).

If I run the bugpoint commands that llvm-lit runs with without -silence-passes
I see errors such as this:
    opt: error while loading shared libraries: libLLVMSystemZInfo.so: failed to
    map segment from shared object: Cannot allocate memory

It seems that the increased size of the binaries in a shared library build is
causing the subprocess to exceed the 100MB memory limit. This patch therefore
increases the default limit to a level at which these tests pass.

Reviewers: dsanders

Reviewed By: dsanders

CC: llvm-commits, rafael
Differential Revision: http://llvm-reviews.chandlerc.com/D2013

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