oota-llvm.git
11 years agoAdd llvm::hexDigitValue to convert single characters to hex.
Jordan Rose [Fri, 18 Jan 2013 21:45:30 +0000 (21:45 +0000)]
Add llvm::hexDigitValue to convert single characters to hex.

This is duplicated in a couple places in the codebase. Adopt this in APFloat.

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

11 years agoThis is a resubmittal. For some reason it broke the bots yesterday
Jack Carter [Fri, 18 Jan 2013 21:20:38 +0000 (21:20 +0000)]
This is a resubmittal. For some reason it broke the bots yesterday
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.
Support for Mips register information sections.

Mips ELF object files have a section that is dedicated
to register use info. Some of this information such as
the assumed Global Pointer value is used by the linker
in relocation resolution.

The register info file is .reginfo in o32 and .MIPS.options
in 64 and n32 abi files.

This patch contains the changes needed to create the sections,
but leaves the actual register accounting for a future patch.

Contributer: Jack Carter

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

11 years agoR600: Proper insert S_WAITCNT instructions
Tom Stellard [Fri, 18 Jan 2013 21:15:53 +0000 (21:15 +0000)]
R600: Proper insert S_WAITCNT instructions

Some instructions like memory reads/writes are executed
asynchronously, so we need to insert S_WAITCNT instructions
to block before accessing their results. Previously we have
just inserted S_WAITCNT instructions after each async
instruction, this patch fixes this and adds a prober
insertion pass.

Patch by: Christian König

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172846 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600: Optimize and cleanup KILL on SI
Tom Stellard [Fri, 18 Jan 2013 21:15:50 +0000 (21:15 +0000)]
R600: Optimize and cleanup KILL on SI

We shouldn't insert KILL optimization if we don't have a
kill instruction at all.

Patch by: Christian König

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172845 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoPush some more methods down to hide the use of the Attribute class.
Bill Wendling [Fri, 18 Jan 2013 21:11:39 +0000 (21:11 +0000)]
Push some more methods down to hide the use of the Attribute class.

Because the Attribute class is going to stop representing a collection of
attributes, limit the use of it as an aggregate in favor of using AttributeSet.
This replaces some of the uses for querying the function attributes.

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

11 years agoThis is a resubmittal. For some reason it broke the bots yesterday
Jack Carter [Fri, 18 Jan 2013 20:15:06 +0000 (20:15 +0000)]
This is a resubmittal. For some reason it broke the bots yesterday
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.

Removal of redundant code and formatting fixes.

Contributers: Jack Carter/Vladimir Medic

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

11 years ago[Linker] Zap a dead typedef.
Daniel Dunbar [Fri, 18 Jan 2013 20:08:09 +0000 (20:08 +0000)]
[Linker] Zap a dead typedef.

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

11 years agoSilence GCC warning about dropping off a non-void function.
Benjamin Kramer [Fri, 18 Jan 2013 19:45:22 +0000 (19:45 +0000)]
Silence GCC warning about dropping off a non-void function.

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

11 years ago[Linker] Kill Linker::LoadObject which is dead, and drop the BitReader dependency...
Daniel Dunbar [Fri, 18 Jan 2013 19:37:11 +0000 (19:37 +0000)]
[Linker] Kill Linker::LoadObject which is dead, and drop the BitReader dependency again.

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

11 years ago[MC/Mach-O] Implement integrated assembler support for linker options.
Daniel Dunbar [Fri, 18 Jan 2013 19:37:00 +0000 (19:37 +0000)]
[MC/Mach-O] Implement integrated assembler support for linker options.
 - Also, fixup syntax errors in LangRef and missing newline in the MCAsmStreamer.

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

11 years agoDocumentation: remove all mentions of DejaGNU and Tcl
Dmitri Gribenko [Fri, 18 Jan 2013 19:27:43 +0000 (19:27 +0000)]
Documentation: remove all mentions of DejaGNU and Tcl

We don't have DejaGNU tests now.

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

11 years agoStreamline the mentions of grep and FileCheck in TestingGuide.rst
Eli Bendersky [Fri, 18 Jan 2013 19:01:34 +0000 (19:01 +0000)]
Streamline the mentions of grep and FileCheck in TestingGuide.rst

grep is now only mentioned once in a sentence that explicitly says it's
deprecated. For FileCheck, there's no reason to repeat part of the
documentation that exists in CommandGuide/FileCheck.

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

11 years agoThe IR linker still depends on the bitcode reader.
Benjamin Kramer [Fri, 18 Jan 2013 15:03:03 +0000 (15:03 +0000)]
The IR linker still depends on the bitcode reader.

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

11 years agollvm/test/CodeGen/X86/Atomics-64.ll: Tweak for 2nd RUN not to overwrite %t. It someti...
NAKAMURA Takumi [Fri, 18 Jan 2013 14:52:02 +0000 (14:52 +0000)]
llvm/test/CodeGen/X86/Atomics-64.ll: Tweak for 2nd RUN not to overwrite %t. It sometimes causes spurious failure on lit win32.

Feel free to prune or suppress each output.

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

11 years ago80 columns
Alexey Samsonov [Fri, 18 Jan 2013 12:49:06 +0000 (12:49 +0000)]
80 columns

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

11 years agoMove Blacklist.h to include/ to enable use from clang.
Will Dietz [Fri, 18 Jan 2013 11:29:21 +0000 (11:29 +0000)]
Move Blacklist.h to include/ to enable use from clang.

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

11 years agoAdd basic command line parsing to TestMain.
Manuel Klimek [Fri, 18 Jan 2013 10:18:50 +0000 (10:18 +0000)]
Add basic command line parsing to TestMain.

Summary:
This allows unit tests for components that use Support/Debug.h to print
debug information from test runs by specifying -debug when running the
test.

CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D301

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

11 years agoCalculate vector element size more directly for VINSERTF128/VEXTRACTF128 immediate...
Craig Topper [Fri, 18 Jan 2013 08:41:28 +0000 (08:41 +0000)]
Calculate vector element size more directly for VINSERTF128/VEXTRACTF128 immediate handling. Also use MVT since this only called on legal types during pattern matching.

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

11 years agoMinor formatting fix. No functional change.
Craig Topper [Fri, 18 Jan 2013 07:27:20 +0000 (07:27 +0000)]
Minor formatting fix. No functional change.

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

11 years agoRemove support for Tcl test format since nobody uses it
Dmitri Gribenko [Fri, 18 Jan 2013 06:57:01 +0000 (06:57 +0000)]
Remove support for Tcl test format since nobody uses it

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

11 years agoSpelling fix: extened->extended. Trailing whitespace in same function.
Craig Topper [Fri, 18 Jan 2013 06:50:59 +0000 (06:50 +0000)]
Spelling fix: extened->extended. Trailing whitespace in same function.

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

11 years agoMake more use of is128BitVector/is256BitVector in place of getSizeInBits() == 128...
Craig Topper [Fri, 18 Jan 2013 06:44:29 +0000 (06:44 +0000)]
Make more use of is128BitVector/is256BitVector in place of getSizeInBits() == 128/256.

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

11 years agoCheck for less than 0 in shuffle mask instead of -1. It's more consistent with other...
Craig Topper [Fri, 18 Jan 2013 05:30:07 +0000 (05:30 +0000)]
Check for less than 0 in shuffle mask instead of -1. It's more consistent with other code related to shuffles and easier to implement in compiled code.

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

11 years agoRemove trailing whitespace. Remove new lines between closing brace and 'else'
Craig Topper [Fri, 18 Jan 2013 05:09:16 +0000 (05:09 +0000)]
Remove trailing whitespace. Remove new lines between closing brace and 'else'

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

11 years agoFixed 80+ violation.
Michael Gottesman [Fri, 18 Jan 2013 03:08:39 +0000 (03:08 +0000)]
Fixed 80+ violation.

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

11 years ago[MC/Mach-O] Add support for linker options in Mach-O files.
Daniel Dunbar [Fri, 18 Jan 2013 01:26:07 +0000 (01:26 +0000)]
[MC/Mach-O] Add support for linker options in Mach-O files.

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

11 years ago[MC/Mach-O] Add AsmParser support for .linker_option directive.
Daniel Dunbar [Fri, 18 Jan 2013 01:25:48 +0000 (01:25 +0000)]
[MC/Mach-O] Add AsmParser support for .linker_option directive.

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

11 years ago[MC] Expose ParseEscapedString to target AsmParser implementations.
Daniel Dunbar [Fri, 18 Jan 2013 01:25:33 +0000 (01:25 +0000)]
[MC] Expose ParseEscapedString to target AsmParser implementations.

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

11 years ago[MC] Fix 80-col violas.
Daniel Dunbar [Fri, 18 Jan 2013 01:25:25 +0000 (01:25 +0000)]
[MC] Fix 80-col violas.

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

11 years ago[ms-inline asm] Make the error message more generic now that we support the
Chad Rosier [Fri, 18 Jan 2013 00:50:59 +0000 (00:50 +0000)]
[ms-inline asm] Make the error message more generic now that we support the
'SIZE' and 'LENGTH' operators.

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

11 years ago[Linker] Drop some now-dead component dependencies.
Daniel Dunbar [Thu, 17 Jan 2013 22:05:18 +0000 (22:05 +0000)]
[Linker] Drop some now-dead component dependencies.

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

11 years agoReverting r171325 & r172363. This was causing a mis-compile on the self-hosted LTO...
Bill Wendling [Thu, 17 Jan 2013 21:28:46 +0000 (21:28 +0000)]
Reverting r171325 & r172363. This was causing a mis-compile on the self-hosted LTO build bots.

Okay, here's how to reproduce the problem:

1) Build a Release (or Release+Asserts) version of clang in the normal way.

2) Using the clang & clang++ binaries from (1), build a Release (or
   Release+Asserts) version of the same sources, but this time enable LTO ---
   specify the `-flto' flag on the command line.

3) Run the ARC migrator tests:

    $ arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c++ ./src/tools/clang/test/ARCMT/cxx-rewrite.mm

You'll see that the output isn't correct (the whitespace is off).

The mis-compile is in the function `RewriteBuffer::RemoveText' in the
clang/lib/Rewrite/Core/Rewriter.cpp file. When that function and RewriteRope.cpp
are compiled with LTO and the `arcmt-test' executable is regenerated, you'll see
the error. When those files are not LTO'ed, then the output of the `arcmt-test'
is fine.

It is *really* hard to get a testcase out of this. I'll file a PR with what I
have currently.

--- Reverse-merging r172363 into '.':
U    include/llvm/Analysis/MemoryBuiltins.h
U    lib/Analysis/MemoryBuiltins.cpp

--- Reverse-merging r171325 into '.':
U    test/Transforms/InstCombine/objsize.ll
G    include/llvm/Analysis/MemoryBuiltins.h
G    lib/Analysis/MemoryBuiltins.cpp

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

11 years agoReverting back to the fallback instead of using the 64-bit popcnt instruction as...
Aaron Ballman [Thu, 17 Jan 2013 20:04:28 +0000 (20:04 +0000)]
Reverting back to the fallback instead of using the 64-bit popcnt instruction as it doesn't exist on all x64 CPU architectures.

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

11 years ago[Linker] Drop support for IR-level extended linking support (archives, etc.).
Daniel Dunbar [Thu, 17 Jan 2013 19:52:25 +0000 (19:52 +0000)]
[Linker] Drop support for IR-level extended linking support (archives, etc.).

 - This code is dead, and the "right" way to get this support is to use the
   platform-specific linker-integrated LTO mechanisms, or the forthcoming LLVM
   linker.

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

11 years agoRestore reverted test case, this time with REQUIRES: asserts
Bill Schmidt [Thu, 17 Jan 2013 19:46:51 +0000 (19:46 +0000)]
Restore reverted test case, this time with REQUIRES: asserts

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

11 years agoRemove bad test case
Bill Schmidt [Thu, 17 Jan 2013 19:39:36 +0000 (19:39 +0000)]
Remove bad test case

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

11 years agoThis patch fixes PR13626 by providing i128 support in the return
Bill Schmidt [Thu, 17 Jan 2013 19:34:57 +0000 (19:34 +0000)]
This patch fixes PR13626 by providing i128 support in the return
calling convention.  128-bit integers are now properly returned
in GPR3 and GPR4 on PowerPC.

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

11 years ago[ms-inline asm] Add support for the 'SIZE' and 'LENGTH' operators.
Chad Rosier [Thu, 17 Jan 2013 19:21:48 +0000 (19:21 +0000)]
[ms-inline asm] Add support for the 'SIZE' and 'LENGTH' operators.
Part of rdar://12576868

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

11 years ago[docs] Get rid of some UTF8 characters (non-breaking space maybe).
Daniel Dunbar [Thu, 17 Jan 2013 18:57:32 +0000 (18:57 +0000)]
[docs] Get rid of some UTF8 characters (non-breaking space maybe).

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

11 years ago[utils] Update find-rev utility to take a branch argument (name of the git-svn
Daniel Dunbar [Thu, 17 Jan 2013 18:57:21 +0000 (18:57 +0000)]
[utils] Update find-rev utility to take a branch argument (name of the git-svn
branch).

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

11 years agoAdd indexed load/store instructions for offset validation check.
Jyotsna Verma [Thu, 17 Jan 2013 18:42:37 +0000 (18:42 +0000)]
Add indexed load/store instructions for offset validation check.
This patch fixes bug 14902 - http://llvm.org/bugs/show_bug.cgi?id=14902

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

11 years agoAdded missing const from my last commit.
Michael Gottesman [Thu, 17 Jan 2013 18:36:17 +0000 (18:36 +0000)]
Added missing const from my last commit.

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

11 years ago[ObjCARC] Implemented operator<< for InstructionClass and changed a ``Visited'' Debug...
Michael Gottesman [Thu, 17 Jan 2013 18:32:34 +0000 (18:32 +0000)]
[ObjCARC] Implemented operator<< for InstructionClass and changed a ``Visited'' Debug message to use it.

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

11 years agoReverting back to the fallback instead of using popcnt; this instruction doesn't...
Aaron Ballman [Thu, 17 Jan 2013 18:27:30 +0000 (18:27 +0000)]
Reverting back to the fallback instead of using popcnt; this instruction doesn't exist on all CPU architectures.  Fixes PR14982

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

11 years agoThis patch fixes the PPC calling convention to handle returns of
Bill Schmidt [Thu, 17 Jan 2013 17:45:19 +0000 (17:45 +0000)]
This patch fixes the PPC calling convention to handle returns of
_Complex float and _Complex long double, by simply increasing the
number of floating point registers available for return values.

The test case verifies that the correct registers are loaded.

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

11 years agoASan: add optional 'zero-based shadow' option to ASan passes. Always tell the values...
Alexey Samsonov [Thu, 17 Jan 2013 11:12:32 +0000 (11:12 +0000)]
ASan: add optional 'zero-based shadow' option to ASan passes. Always tell the values of shadow scale and offset to the runtime

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

11 years agoOptimization for the following SIGN_EXTEND pairs:
Elena Demikhovsky [Thu, 17 Jan 2013 09:59:53 +0000 (09:59 +0000)]
Optimization for the following SIGN_EXTEND pairs:
v8i8  -> v8i64,
v8i8  -> v8i32,
v4i8  -> v4i64,
v4i16 -> v4i64
for AVX and AVX2.

Bug 14865.

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

11 years agoCombine AVX and SSE forms of MOVSS and MOVSD into the same multiclasses so they get...
Craig Topper [Thu, 17 Jan 2013 06:59:42 +0000 (06:59 +0000)]
Combine AVX and SSE forms of MOVSS and MOVSD into the same multiclasses so they get instantiated together.

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

11 years agoFix the assembly and dissassembly of DW_FORM_sec_offset. Found this by
Eric Christopher [Thu, 17 Jan 2013 03:00:04 +0000 (03:00 +0000)]
Fix the assembly and dissassembly of DW_FORM_sec_offset. Found this by
changing both the string of the dwo_name to be correct and the type of
the statement list.

Testcases all around.

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

11 years agoAdd the DW_AT_GNU_addr_base for the skeleton cu. Add support for
Eric Christopher [Thu, 17 Jan 2013 02:59:59 +0000 (02:59 +0000)]
Add the DW_AT_GNU_addr_base for the skeleton cu. Add support for
emitting the dwarf32 version of DW_FORM_sec_offset and correct
disassembler support.

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

11 years agoMove MachineTraceMetrics.h into include/llvm/CodeGen.
Jakob Stoklund Olesen [Thu, 17 Jan 2013 01:06:04 +0000 (01:06 +0000)]
Move MachineTraceMetrics.h into include/llvm/CodeGen.

Let targets use it.

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

11 years agoProvide a place for targets to insert ILP optimization passes.
Jakob Stoklund Olesen [Thu, 17 Jan 2013 00:58:38 +0000 (00:58 +0000)]
Provide a place for targets to insert ILP optimization passes.

Move the early if-conversion pass into this group.

ILP optimizations usually need to find the right balance between
register pressure and ILP using the MachineTraceMetrics analysis to
identify critical paths and estimate other costs. Such passes should run
together so they can share dominator tree and loop info analyses.

Besides if-conversion, future passes to run here here could include
expression height reduction and ARM's MLxExpansion pass.

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

11 years agoThis is a resubmittal. For some reason it broke the bots yesterday
Jack Carter [Thu, 17 Jan 2013 00:28:20 +0000 (00:28 +0000)]
This is a resubmittal. For some reason it broke the bots yesterday
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.

The Mips RDHWR (Read Hardware Register) instruction was not
tested for assembler or dissassembler consumption. This patch
adds that functionality.

Contributer: Vladimir Medic

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

11 years ago[IR] Reserve/define the purpose for the "Linker Options" metadata flags.
Daniel Dunbar [Thu, 17 Jan 2013 00:16:27 +0000 (00:16 +0000)]
[IR] Reserve/define the purpose for the "Linker Options" metadata flags.

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

11 years agoUpdate the description of the llvm.fmuladd.* intrinsics to avoid use of the
Lang Hames [Thu, 17 Jan 2013 00:00:49 +0000 (00:00 +0000)]
Update the description of the llvm.fmuladd.* intrinsics to avoid use of the
ambiguous term 'legal'.

Suggested by Andrew Booker. Thanks Andrew!

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

11 years agoDocumentation: fix a typo 'IEE754'
Dmitri Gribenko [Wed, 16 Jan 2013 23:40:37 +0000 (23:40 +0000)]
Documentation: fix a typo 'IEE754'

Reported on IRC by _savage

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

11 years agoWrapping __popcnt64 for MSVC so that it's only used on 64-bit builds.
Aaron Ballman [Wed, 16 Jan 2013 23:17:21 +0000 (23:17 +0000)]
Wrapping __popcnt64 for MSVC so that it's only used on 64-bit builds.

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

11 years ago[IR] Add 'Append' and 'AppendUnique' module flag behaviors.
Daniel Dunbar [Wed, 16 Jan 2013 21:38:56 +0000 (21:38 +0000)]
[IR] Add 'Append' and 'AppendUnique' module flag behaviors.

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

11 years agoChange CostTable model to be global to all targets
Renato Golin [Wed, 16 Jan 2013 21:29:55 +0000 (21:29 +0000)]
Change CostTable model to be global to all targets

Moving the X86CostTable to a common place, so that other back-ends
can share the code. Also simplifying it a bit and commoning up
tables with one and two types on operations.

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

11 years agoAdded test for r172599 which fixes bugzilla://14584,rdar://11744105.
Michael Gottesman [Wed, 16 Jan 2013 21:07:18 +0000 (21:07 +0000)]
Added test for r172599 which fixes bugzilla://14584,rdar://11744105.

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

11 years ago[Support] Include the intrisics header and check for definition properly.
Michael J. Spencer [Wed, 16 Jan 2013 20:50:43 +0000 (20:50 +0000)]
[Support] Include the intrisics header and check for definition properly.

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

11 years agoMake this test X86 only.
Eric Christopher [Wed, 16 Jan 2013 20:31:35 +0000 (20:31 +0000)]
Make this test X86 only.

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

11 years agoMove this to X86.
Eric Christopher [Wed, 16 Jan 2013 20:31:32 +0000 (20:31 +0000)]
Move this to X86.

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

11 years agoAdd testcase missed yesterday from Paul Robinson.
Eric Christopher [Wed, 16 Jan 2013 19:53:47 +0000 (19:53 +0000)]
Add testcase missed yesterday from Paul Robinson.

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

11 years ago[Support] Add MSVC intrinsic for CountPopulation.
Michael J. Spencer [Wed, 16 Jan 2013 19:52:12 +0000 (19:52 +0000)]
[Support] Add MSVC intrinsic for CountPopulation.

Patch by Jakub Staszak.

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

11 years ago[Support] Update MSVC compiler support in Compiler.h.
Michael J. Spencer [Wed, 16 Jan 2013 19:51:59 +0000 (19:51 +0000)]
[Support] Update MSVC compiler support in Compiler.h.

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

11 years agoRemove unneeded include and empty line
Eli Bendersky [Wed, 16 Jan 2013 19:42:16 +0000 (19:42 +0000)]
Remove unneeded include and empty line

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

11 years agoSome small (and mostly cosmetic) fixes.
Eli Bendersky [Wed, 16 Jan 2013 19:32:36 +0000 (19:32 +0000)]
Some small (and mostly cosmetic) fixes.

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

11 years agoClean up some unnecessary headers and forward declarations
Eli Bendersky [Wed, 16 Jan 2013 19:00:21 +0000 (19:00 +0000)]
Clean up some unnecessary headers and forward declarations

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

11 years agoNow that GenericAsmParser was folded into AsmParser, some methods and types can
Eli Bendersky [Wed, 16 Jan 2013 18:56:50 +0000 (18:56 +0000)]
Now that GenericAsmParser was folded into AsmParser, some methods and types can
return into the safe harbor of AsmParser's private areas.

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

11 years ago[Linker] Change module flag linking to be more extensible.
Daniel Dunbar [Wed, 16 Jan 2013 18:39:23 +0000 (18:39 +0000)]
[Linker] Change module flag linking to be more extensible.

 - Instead of computing a bunch of buckets of different flag types, just do an
   incremental link resolving conflicts as they arise.

 - This also has the advantage of making the link result deterministic and not
   dependent on map iteration order.

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

11 years agoWe want the dwarf AT_producer for assembly source files to match clang's
Kevin Enderby [Wed, 16 Jan 2013 17:46:23 +0000 (17:46 +0000)]
We want the dwarf AT_producer for assembly source files to match clang's
AT_producer.  Which includes clang's version information so we can tell
which version of the compiler was used.

This is the first of two steps to allow us to do that.  This is the llvm-mc
change to provide a method to set the AT_producer string.  The second step,
coming soon to a clang near you, will have the clang driver pass the value
of getClangFullVersion() via an flag when invoking the integrated assembler
on assembly source files.

rdar://12955296

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

11 years agoIntroduce llvm::sys::getProcessTriple() function.
Peter Collingbourne [Wed, 16 Jan 2013 17:27:22 +0000 (17:27 +0000)]
Introduce llvm::sys::getProcessTriple() function.

In r143502, we renamed getHostTriple() to getDefaultTargetTriple()
as part of work to allow the user to supply a different default
target triple at configure time.  This change also affected the JIT.
However, it is inappropriate to use the default target triple in the
JIT in most circumstances because this will not necessarily match
the current architecture used by the process, leading to illegal
instruction and other such errors at run time.

Introduce the getProcessTriple() function for use in the JIT and
its clients, and cause the JIT to use it.  On architectures with a
single bitness, the host and process triples are identical.  On other
architectures, the host triple represents the architecture of the
host CPU, while the process triple represents the architecture used
by the host CPU to interpret machine code within the current process.
For example, when executing 32-bit code on a 64-bit Linux machine,
the host triple may be 'x86_64-unknown-linux-gnu', while the process
triple may be 'i386-unknown-linux-gnu'.

This fixes JIT for the 32-on-64-bit (and vice versa) build on non-Apple
platforms.

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

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

11 years agoReplace virtual hasFixups with explicit fragment type checks
Eli Bendersky [Wed, 16 Jan 2013 16:52:08 +0000 (16:52 +0000)]
Replace virtual hasFixups with explicit fragment type checks

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

11 years agoAllow vectors in CreatePointerCast of constants.
Evgeniy Stepanov [Wed, 16 Jan 2013 14:41:46 +0000 (14:41 +0000)]
Allow vectors in CreatePointerCast of constants.

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

11 years agoA test for r172535.
Evgeniy Stepanov [Wed, 16 Jan 2013 14:38:50 +0000 (14:38 +0000)]
A test for r172535.

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

11 years agoRemove unused leftover header (it moved to llvm/IR).
Benjamin Kramer [Wed, 16 Jan 2013 13:43:56 +0000 (13:43 +0000)]
Remove unused leftover header (it moved to llvm/IR).

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

11 years agoMove test that depends on the x86 target into a target-specific directory.
Benjamin Kramer [Wed, 16 Jan 2013 13:25:56 +0000 (13:25 +0000)]
Move test that depends on the x86 target into a target-specific directory.

Should fix the arm buildbot (which only builds the arm target).

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

11 years agoASan: wrap mapping scale and offset in a struct and make it a member of ASan passes...
Alexey Samsonov [Wed, 16 Jan 2013 13:23:28 +0000 (13:23 +0000)]
ASan: wrap mapping scale and offset in a struct and make it a member of ASan passes. Add test for non-default mapping scale and offset. No functionality change

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

11 years agoRemove triple from this test, it makes it fail when X86 TTI is missing.
Benjamin Kramer [Wed, 16 Jan 2013 13:19:59 +0000 (13:19 +0000)]
Remove triple from this test, it makes it fail when X86 TTI is missing.

Without a triple opt falls back to NoTTI which comes closer to LSR's pre-TTI behavior.

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

11 years ago[ObjCARC] Turn off ignoring unwind edges in ObjCARC when -fno-objc-arc-exception...
Michael Gottesman [Wed, 16 Jan 2013 06:32:39 +0000 (06:32 +0000)]
[ObjCARC] Turn off ignoring unwind edges in ObjCARC when -fno-objc-arc-exception is enabled due to it's affect on correctness.

Specifically according to the semantics of ARC -fno-objc-arc-exception simply
states that it is expected that the unwind path out of a call *MAY* not release
objects. Thus we can have the situation where a release gets moved into a catch
block which we ignore when we remove a retain/release pair resulting in (even
though we assume the program is exiting anyways) the cleanup code path
potentially blowing up before program exit.

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

11 years agoreverting 172579
Jack Carter [Wed, 16 Jan 2013 01:29:10 +0000 (01:29 +0000)]
reverting 172579

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

11 years agoDefine metadata interfaces for describing a static data member
Eric Christopher [Wed, 16 Jan 2013 01:22:23 +0000 (01:22 +0000)]
Define metadata interfaces for describing a static data member
of a class. Emit static data member declarations and definitions
through correctly.

Part of PR14471.

Patch by Paul Robinson!

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

11 years agoUse the ExtensionDirectiveHandler type in other places where it makes sense.
Eli Bendersky [Wed, 16 Jan 2013 00:50:52 +0000 (00:50 +0000)]
Use the ExtensionDirectiveHandler type in other places where it makes sense.

Since we already have this type it's a shame to keep dragging a pair of object
and method around explicitly.

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

11 years agoUse --enable-werror
David Greene [Wed, 16 Jan 2013 00:17:38 +0000 (00:17 +0000)]
Use --enable-werror

Use --enable-werror during configure time rather than
--with-extra-options.  This is cleaner and easier to read.

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

11 years agoImprove r172577 by using the correct type when declaring constants
Dmitri Gribenko [Wed, 16 Jan 2013 00:14:15 +0000 (00:14 +0000)]
Improve r172577 by using the correct type when declaring constants

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

11 years agoAkira,
Jack Carter [Wed, 16 Jan 2013 00:07:45 +0000 (00:07 +0000)]
Akira,

Hope you are feeling better.

The Mips RDHWR (Read Hardware Register) instruction was not
tested for assembler or dissassembler consumption. This patch
adds that functionality.

Contributer: Vladimir Medic

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

11 years agoSplit address information for DWARF5 split dwarf proposal. This involves
Eric Christopher [Tue, 15 Jan 2013 23:56:56 +0000 (23:56 +0000)]
Split address information for DWARF5 split dwarf proposal. This involves
using the DW_FORM_GNU_addr_index and a separate .debug_addr section which
stays in the executable and is fully linked.

Sneak in two other small changes:

a) Print out the debug_str_offsets.dwo section.
b) Change form we're expecting the entries in the debug_str_offsets.dwo
   section to take from ULEB128 to U32.

Add tests for all of this in the fission-cu.ll test.

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

11 years agoAvoid Enum Compare Warnings
David Greene [Tue, 15 Jan 2013 23:46:58 +0000 (23:46 +0000)]
Avoid Enum Compare Warnings

Avoid a compiler warning about comparing disjoint enums but casting
them to int first.

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

11 years agoTeach InstCombine to optimize extract of a value from a vector add operation with...
Nadav Rotem [Tue, 15 Jan 2013 23:43:14 +0000 (23:43 +0000)]
Teach InstCombine to optimize extract of a value from a vector add operation with a constant zero.

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

11 years agoOptimize the memory usage of MC bundling, by creating a new type of fragment
Eli Bendersky [Tue, 15 Jan 2013 23:22:09 +0000 (23:22 +0000)]
Optimize the memory usage of MC bundling, by creating a new type of fragment
into which we can emit single instructions without fixups (which is most
instructions). This is an optimization required because MCDataFragment
is prety large (240 bytes on x64), with no change in functionality.

For large programs, this reduces memory usage overhead required for bundling
by 40%.

To make the code as palatable as possible, the MCEncodedFragment interface was
further fragmented (no pun intended) and MCEncodedFragmentWithFixups is used
as the interface to work against when the user expects fixups. MCDataFragment
and MCRelaxableFragment implement this interface, while the new
MCCompactEncodedInstFragment implements MCEncodeFragment.

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

11 years ago[ms-inline asm] Address the FIXME in AsmParser.cpp.
Chad Rosier [Tue, 15 Jan 2013 23:07:53 +0000 (23:07 +0000)]
[ms-inline asm] Address the FIXME in AsmParser.cpp.

// FIXME: Constraints are hard coded to 'm', but we need an 'r'
// constraint for addressof.  This needs to be cleaned up!

Test cases are already in place.  Specifically,
clang/test/CodeGen/ms-inline-asm.c t15(), t16(), and t24().

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

11 years agoRefactor generic Asm directive parsing.
Eli Bendersky [Tue, 15 Jan 2013 22:59:42 +0000 (22:59 +0000)]
Refactor generic Asm directive parsing.

After discussing the refactoring with Jim and Daniel, the following changes were
made:

* All generic directive parsing is now done by AsmParser itself. The previous
  division between it and GenericAsmParser did not have clear boundaries and
  just produced unnatural code of GenericAsmParser juggling the internals of
  AsmParser through an interface.
  The division of responsibilities is now clear: target-specific directives,
  other extensions (used by platform-specific parseres), and generic directives.
* Priority for directive parsing was reshuffled to ask extensions first and
  check the generic directives later.

No change in functionality.

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

11 years ago[Object][ELF] Fix -Wenum-compare.
Michael J. Spencer [Tue, 15 Jan 2013 22:00:16 +0000 (22:00 +0000)]
[Object][ELF] Fix -Wenum-compare.

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

11 years ago1. Hoist minus sign as high as possible in an attempt to reveal
Shuxin Yang [Tue, 15 Jan 2013 21:09:32 +0000 (21:09 +0000)]
1. Hoist minus sign as high as possible in an attempt to reveal
   some optimization opportunities (in the enclosing supper-expressions).

   rule 1. (-0.0 - X ) * Y => -0.0 - (X * Y)
     if expression "-0.0 - X" has only one reference.

   rule 2. (0.0 - X ) * Y => -0.0 - (X * Y)
     if expression "0.0 - X" has only one reference, and
        the instruction is marked "noSignedZero".

2. Eliminate negation (The compiler was already able to handle these
    opt if the 0.0s are replaced with -0.0.)

   rule 3: (0.0 - X) * (0.0 - Y) => X * Y
   rule 4: (0.0 - X) * C => X * -C
   if the expr is flagged "noSignedZero".

3.
  Rule 5: (X*Y) * X => (X*X) * Y
   if X!=Y and the expression is flagged with "UnsafeAlgebra".

   The purpose of this transformation is two-fold:
    a) to form a power expression (of X).
    b) potentially shorten the critical path: After transformation, the
       latency of the instruction Y is amortized by the expression of X*X,
       and therefore Y is in a "less critical" position compared to what it
      was before the transformation.

4. Remove the InstCombine code about simplifiying "X * select".

   The reasons are following:
    a) The "select" is somewhat architecture-dependent, therefore the
       higher level optimizers are not able to precisely predict if
       the simplification really yields any performance improvement
       or not.

    b) The "select" operator is bit complicate, and tends to obscure
       optimization opportunities. It is btter to keep it as low as
       possible in expr tree, and let CodeGen to tackle the optimization.

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

11 years ago[Linker] Drop asserts that are embedded in cast<> and now checked by the verifier.
Daniel Dunbar [Tue, 15 Jan 2013 20:52:09 +0000 (20:52 +0000)]
[Linker] Drop asserts that are embedded in cast<> and now checked by the verifier.

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

11 years ago[IR] Add verification for module flags with the "require" behavior.
Daniel Dunbar [Tue, 15 Jan 2013 20:52:06 +0000 (20:52 +0000)]
[IR] Add verification for module flags with the "require" behavior.

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

11 years agoLoopVectorizer cost model. Honor the user command line flag that selects the vectoriz...
Nadav Rotem [Tue, 15 Jan 2013 18:25:16 +0000 (18:25 +0000)]
LoopVectorizer cost model. Honor the user command line flag that selects the vectorization factor even if the target machine does not have any vector registers.

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

11 years agoDisable Uninitialized Use Warnings for Broken gcc Versions
David Greene [Tue, 15 Jan 2013 18:21:15 +0000 (18:21 +0000)]
Disable Uninitialized Use Warnings for Broken gcc Versions

Some versions of gcc accept unsupported -W flags and run just fine if
there are no warnings, but die with an unsupported flag error if a
warning is encountered.  gcc 4.3 and gcc 4.4 both exhibit this
behavior for -Wno-maybe-uninitialized.  Therefore, if the flag check
for -Wno-maybe-uninitialized succeeds, only use
-Wno-maybe-uninitialized if we are using gcc version 4.7 or greater.
Use -Wno-uninitialized otherwise.

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

11 years ago[msan] Temporarily remove ICmpEQ tests.
Evgeniy Stepanov [Tue, 15 Jan 2013 17:12:04 +0000 (17:12 +0000)]
[msan] Temporarily remove ICmpEQ tests.

They are failing on the bots.

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