oota-llvm.git
11 years agoCleanup testcase and ensure we actually exercise the inliner.
Adrian Prantl [Wed, 24 Apr 2013 01:44:15 +0000 (01:44 +0000)]
Cleanup testcase and ensure we actually exercise the inliner.
rdar://problem/12415623

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

11 years agoMachine model: Generate table entries for super-resources.
Andrew Trick [Tue, 23 Apr 2013 23:45:16 +0000 (23:45 +0000)]
Machine model: Generate table entries for super-resources.

Super-resources and resource groups are two ways of expressing
overlapping sets of processor resources. Now we generate table entries
the same way for both so the scheduler never needs to explicitly check
for super-resources.

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

11 years agoMachine model: verify well-formed processor resource groups.
Andrew Trick [Tue, 23 Apr 2013 23:45:14 +0000 (23:45 +0000)]
Machine model: verify well-formed processor resource groups.

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

11 years agoMachine model: rewrite a tablegen loop to avoid comparing record pointers.
Andrew Trick [Tue, 23 Apr 2013 23:45:11 +0000 (23:45 +0000)]
Machine model: rewrite a tablegen loop to avoid comparing record pointers.

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

11 years agoComment a strange field in ScheduleDAG.
Andrew Trick [Tue, 23 Apr 2013 23:45:08 +0000 (23:45 +0000)]
Comment a strange field in ScheduleDAG.

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

11 years agoFix dependency layering issues caused by r180112.
Eric Christopher [Tue, 23 Apr 2013 22:53:53 +0000 (22:53 +0000)]
Fix dependency layering issues caused by r180112.

Patch by Tom Stellard. (Committed while he's afk per request)

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

11 years agoFixing cmake build for MCJIT unit tests
Andrew Kaylor [Tue, 23 Apr 2013 21:46:56 +0000 (21:46 +0000)]
Fixing cmake build for MCJIT unit tests

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

11 years agoFixing typo in comment.
Andrew Kaylor [Tue, 23 Apr 2013 21:32:32 +0000 (21:32 +0000)]
Fixing typo in comment.

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

11 years agoAdding object caching support to MCJIT
Andrew Kaylor [Tue, 23 Apr 2013 21:26:38 +0000 (21:26 +0000)]
Adding object caching support to MCJIT

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

11 years agoHexagon: Use multiclass for combine and STri[bhwd]_shl_V4 instructions.
Jyotsna Verma [Tue, 23 Apr 2013 21:17:40 +0000 (21:17 +0000)]
Hexagon: Use multiclass for combine and STri[bhwd]_shl_V4 instructions.

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

11 years agoHexagon: Define relations for GP-relative instructions.
Jyotsna Verma [Tue, 23 Apr 2013 21:05:55 +0000 (21:05 +0000)]
Hexagon: Define relations for GP-relative instructions.

No functionality change.

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

11 years agoMake sure the instruction right after an inlined function has a
Adrian Prantl [Tue, 23 Apr 2013 19:56:03 +0000 (19:56 +0000)]
Make sure the instruction right after an inlined function has a
debug location. This solves a problem where range of an inlined
subroutine is emitted wrongly.
Patch by Manman Ren.

Fixes rdar://problem/12415623

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

11 years agoAdd more tests for r179925 to verify correct handling of signext/zeroext; strengthen...
Stephen Lin [Tue, 23 Apr 2013 19:42:25 +0000 (19:42 +0000)]
Add more tests for r179925 to verify correct handling of signext/zeroext; strengthen condition check to require actual MVT::i32 virtual register types, just in case (no actual functionality change)

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

11 years agoFix typo.
Rafael Espindola [Tue, 23 Apr 2013 19:39:34 +0000 (19:39 +0000)]
Fix typo.

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

11 years agoLowercase "is" boolean variable prefix for consistency within function, no functional...
Stephen Lin [Tue, 23 Apr 2013 19:30:12 +0000 (19:30 +0000)]
Lowercase "is" boolean variable prefix for consistency within function, no functionality change.

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

11 years agoSimplify yaml2obj a bit.
Rafael Espindola [Tue, 23 Apr 2013 19:26:43 +0000 (19:26 +0000)]
Simplify yaml2obj a bit.

The COFFParser now contains only a COFFYAML::Object and the string table
(which is recomputed, not serialized).

The structs in COFFParser now all begin with a Header field with what is
actually on the COFF object. The other fields are things that are semantically
part of the struct (relocations in a section for exmaple), but are not actually
represented that way in the object file.

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

11 years agoHexagon: Remove assembler mapped instruction definitions.
Jyotsna Verma [Tue, 23 Apr 2013 19:15:55 +0000 (19:15 +0000)]
Hexagon: Remove assembler mapped instruction definitions.

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

11 years agoChange commentary for PowerPC Boolean vector contents.
Bill Schmidt [Tue, 23 Apr 2013 18:49:44 +0000 (18:49 +0000)]
Change commentary for PowerPC Boolean vector contents.

No functional change intended.

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

11 years ago[mips] Compare splat value with element size instead of calling isUIntN.
Akira Hatanaka [Tue, 23 Apr 2013 18:09:42 +0000 (18:09 +0000)]
[mips] Compare splat value with element size instead of calling isUIntN.

No intended changes in functionality.

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

11 years agoDAGCombine should not aggressively fold SEXT(VSETCC(...)) into a wider VSETCC without...
Owen Anderson [Tue, 23 Apr 2013 18:09:28 +0000 (18:09 +0000)]
DAGCombine should not aggressively fold SEXT(VSETCC(...)) into a wider VSETCC without first checking the target's vector boolean contents.
This exposed an issue with PowerPC AltiVec where it appears it was setting the wrong vector boolean contents.  The included change
fixes the PowerPC tests, and was OK'd by Hal.

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

11 years agoTesting for _XCR_XFEATURE_ENABLED_MASK instead of a specific MSVC version because...
Aaron Ballman [Tue, 23 Apr 2013 17:38:44 +0000 (17:38 +0000)]
Testing for _XCR_XFEATURE_ENABLED_MASK instead of a specific MSVC version because some MSVC 2010 SP1 installations do not have the _xgetbv intrinsic.  Patch thanks to Serge Pavlov!

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

11 years agoR600: Use .AMDGPU.config section to emit stacksize
Vincent Lejeune [Tue, 23 Apr 2013 17:34:12 +0000 (17:34 +0000)]
R600: Use .AMDGPU.config section to emit stacksize

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

11 years agoR600: Add CF_END
Vincent Lejeune [Tue, 23 Apr 2013 17:34:00 +0000 (17:34 +0000)]
R600: Add CF_END

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

11 years agoLoopVectorizer: Fix 15830. When scalarizing and unrolling stores make sure that the...
Nadav Rotem [Tue, 23 Apr 2013 17:12:42 +0000 (17:12 +0000)]
LoopVectorizer: Fix 15830. When scalarizing and unrolling stores make sure that the order in which the elements are scalarized is the same as the original order.
This fixes a miscompilation in FreeBSD's regex library.

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

11 years agoHexagon: Remove duplicate instructions to handle global/immediate values
Jyotsna Verma [Tue, 23 Apr 2013 17:11:46 +0000 (17:11 +0000)]
Hexagon: Remove duplicate instructions to handle global/immediate values
for absolute/absolute-set addressing modes.

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

11 years agoCall the potentially costly isAnnotatedParallel() only once.
Pekka Jaaskelainen [Tue, 23 Apr 2013 16:44:43 +0000 (16:44 +0000)]
Call the potentially costly isAnnotatedParallel() only once.
Made the uniform write test's checks a bit stricter.

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

11 years agoAdd some constraints to use of 'returned':
Stephen Lin [Tue, 23 Apr 2013 16:31:56 +0000 (16:31 +0000)]
Add some constraints to use of 'returned':

1) Disallow 'returned' on parameter that is also 'sret' (no sensible semantics, as far as I can tell).
2) Conservatively disallow tail calls through 'returned' parameters that also are 'zext' or 'sext' (for consistency with treatment of other zero-extending and sign-extending operations in tail call position detection...can be revised later to handle situations that can be determined to be safe).

This is a new attribute that is not yet used, so there is no impact.

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

11 years agoWrite relocations in yaml2obj.
Rafael Espindola [Tue, 23 Apr 2013 15:53:02 +0000 (15:53 +0000)]
Write relocations in yaml2obj.

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

11 years agoWrap.h: Define wrap / unwrap function for ExecutionEngine
Tom Stellard [Tue, 23 Apr 2013 15:13:36 +0000 (15:13 +0000)]
Wrap.h: Define wrap / unwrap function for ExecutionEngine

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

11 years agoc vs c++ mistake in header file typedef for AtomicRMW fix in rev 180100.
Carlo Kok [Tue, 23 Apr 2013 13:45:37 +0000 (13:45 +0000)]
c vs c++ mistake in header file typedef for AtomicRMW fix in rev 180100.

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

11 years agoFixup for r180094: properly use MSan interface functions
Alexey Samsonov [Tue, 23 Apr 2013 13:35:32 +0000 (13:35 +0000)]
Fixup for r180094: properly use MSan interface functions

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

11 years agoExpose IRBuilder::CreateAtomicRMW as LLVMBuildAtomicRMW in llvm-c.
Carlo Kok [Tue, 23 Apr 2013 13:21:19 +0000 (13:21 +0000)]
Expose IRBuilder::CreateAtomicRMW as LLVMBuildAtomicRMW in llvm-c.

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

11 years agoUn-revert the environ copy in ProgramTest after fixing it on OS X
Reid Kleckner [Tue, 23 Apr 2013 13:15:51 +0000 (13:15 +0000)]
Un-revert the environ copy in ProgramTest after fixing it on OS X

This was r180041 and r180046, which was reverted in r180066.
Re-committing this should fix the dragonegg bootstrap, which I presume
needs LD_LIBRARY_PATH to be propagated to the child.

Tested on Linux, Windows, and Mac OS 10.6.

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

11 years agoTell MSan that memory initialized by libz is valid
Alexey Samsonov [Tue, 23 Apr 2013 12:17:46 +0000 (12:17 +0000)]
Tell MSan that memory initialized by libz is valid

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

11 years agoMove test from grep to FileCheck.
Rafael Espindola [Tue, 23 Apr 2013 12:03:27 +0000 (12:03 +0000)]
Move test from grep to FileCheck.

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

11 years agoUse zlib to uncompress debug sections in DWARF parser.
Alexey Samsonov [Tue, 23 Apr 2013 10:17:34 +0000 (10:17 +0000)]
Use zlib to uncompress debug sections in DWARF parser.

This makes llvm-dwarfdump and llvm-symbolizer understand
debug info sections compressed by ld.gold linker.

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

11 years agoAdd llvm_unreachable after fully covered switch to pacify GCC
Hans Wennborg [Tue, 23 Apr 2013 10:12:16 +0000 (10:12 +0000)]
Add llvm_unreachable after fully covered switch to pacify GCC

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

11 years agoAdd more guards around zlib-dependent code
Alexey Samsonov [Tue, 23 Apr 2013 08:57:30 +0000 (08:57 +0000)]
Add more guards around zlib-dependent code

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

11 years agoAdd basic zlib support to LLVM. This would allow to use compression/uncompression...
Alexey Samsonov [Tue, 23 Apr 2013 08:28:39 +0000 (08:28 +0000)]
Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools.

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

11 years agoRefuse to (even try to) vectorize loops which have uniform writes,
Pekka Jaaskelainen [Tue, 23 Apr 2013 08:08:51 +0000 (08:08 +0000)]
Refuse to (even try to) vectorize loops which have uniform writes,
even if erroneously annotated with the parallel loop metadata.

Fixes Bug 15794:
"Loop Vectorizer: Crashes with the use of llvm.loop.parallel metadata"

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

11 years agoAArch64: remove unnecessary check that RS is valid
Tim Northover [Tue, 23 Apr 2013 06:55:15 +0000 (06:55 +0000)]
AArch64: remove unnecessary check that RS is valid

AArch64 always demands a register-scavenger, so the pointer should never be
NULL. However, in the spirit of paranoia, we'll assert it before use just in
case.

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

11 years agoStruct-path aware TBAA: update getMostGenericTBAA
Manman Ren [Mon, 22 Apr 2013 23:00:44 +0000 (23:00 +0000)]
Struct-path aware TBAA: update getMostGenericTBAA

The tag is of type TBAANode when flag EnableStructPathTBAA is off.

Move implementation of MDNode::getMostGenericTBAA to TypeBasedAliasAnalysis.cpp
since it depends on how to interprete the MDNodes for scalar TBAA and
struct-path aware TBAA.

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

11 years agoRevert "Add a missing reference on a std::vector<> out param"
Michael Gottesman [Mon, 22 Apr 2013 22:51:55 +0000 (22:51 +0000)]
Revert "Add a missing reference on a std::vector<> out param"
Revert "[Support] Propagate the environment into the test child process"

This reverts commit r180046.
This reverts commit r180041.

These have broken buildbots for ~3 hours:

http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/763

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

11 years agoRemove unused DwarfSectionOffsetDirective string
Matt Arsenault [Mon, 22 Apr 2013 22:49:11 +0000 (22:49 +0000)]
Remove unused DwarfSectionOffsetDirective string

The value isn't actually used, and setting it emits a COFF specific
directive.

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

11 years agoMove C++ code out of the C headers and into either C++ headers
Eric Christopher [Mon, 22 Apr 2013 22:47:22 +0000 (22:47 +0000)]
Move C++ code out of the C headers and into either C++ headers
or the C++ files themselves. This enables people to use
just a C compiler to interoperate with LLVM.

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

11 years ago[ms-inline asm] Removed this unnecessary check. In the current implementation,
Chad Rosier [Mon, 22 Apr 2013 22:38:35 +0000 (22:38 +0000)]
[ms-inline asm] Removed this unnecessary check.  In the current implementation,
Disp will always be one of MCSymbolRefExpr or MCConstantExpr, and never NULL.

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

11 years agoAdd test case for PR15779, which has previously been fixed.
Chad Rosier [Mon, 22 Apr 2013 22:30:01 +0000 (22:30 +0000)]
Add test case for PR15779, which has previously been fixed.

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

11 years ago[ms-inline asm] Get the OpDecl and remove a redundant lookup.
Chad Rosier [Mon, 22 Apr 2013 22:12:12 +0000 (22:12 +0000)]
[ms-inline asm] Get the OpDecl and remove a redundant lookup.
Part of rdar://13663589

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

11 years ago[ms-inline asm] Add the OpDecl to the InlineAsmIdentifierInfo struct and in turn
Chad Rosier [Mon, 22 Apr 2013 22:04:25 +0000 (22:04 +0000)]
[ms-inline asm] Add the OpDecl to the InlineAsmIdentifierInfo struct and in turn
the MCParsedAsmOperand.
Part of rdar://13663589

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

11 years agoOptimize MachineBasicBlock::getSymbol by caching the symbol. Since the symbol
Eli Bendersky [Mon, 22 Apr 2013 21:21:08 +0000 (21:21 +0000)]
Optimize MachineBasicBlock::getSymbol by caching the symbol. Since the symbol
name computation is expensive, this helps save about 25% of the time spent in
this function.

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

11 years agoAdd a missing reference on a std::vector<> out param
Reid Kleckner [Mon, 22 Apr 2013 20:58:09 +0000 (20:58 +0000)]
Add a missing reference on a std::vector<> out param

Pointed out by Eli.  The test passes for me either way, so I missed
this.

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

11 years agoChanged back (relative to commit 179786) the operations executed when extract(cast...
Anat Shemer [Mon, 22 Apr 2013 20:51:10 +0000 (20:51 +0000)]
Changed back (relative to commit 179786) the operations executed when extract(cast) is transformed to cast(extract). It uses the Builder class as before. In addition the result node is added to the Worklist, so all the previous extract users will become the new scalar cast users.

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

11 years agoFix unused variable warning.
Chad Rosier [Mon, 22 Apr 2013 20:42:32 +0000 (20:42 +0000)]
Fix unused variable warning.

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

11 years agoFix comment that didn't match the method it was above
Eli Bendersky [Mon, 22 Apr 2013 20:30:50 +0000 (20:30 +0000)]
Fix comment that didn't match the method it was above

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

11 years ago[Support] Propagate the environment into the test child process
Reid Kleckner [Mon, 22 Apr 2013 20:23:41 +0000 (20:23 +0000)]
[Support] Propagate the environment into the test child process

Should fix the dragonegg bootstrap builder, which reasonably needs
LD_LIBRARY_PATH to be set.

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

11 years ago80 columns.
Akira Hatanaka [Mon, 22 Apr 2013 20:13:37 +0000 (20:13 +0000)]
80 columns.

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

11 years ago[mips] In performDSPShiftCombine, check that all elements in the vector are
Akira Hatanaka [Mon, 22 Apr 2013 19:58:23 +0000 (19:58 +0000)]
[mips] In performDSPShiftCombine, check that all elements in the vector are
shifted by the same amount and the shift amount is smaller than the element
size.

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

11 years ago[ms-inline asm] Remove the identifier parsing logic from the AsmParser. This is
Chad Rosier [Mon, 22 Apr 2013 19:42:15 +0000 (19:42 +0000)]
[ms-inline asm] Remove the identifier parsing logic from the AsmParser.  This is
now taken care of by the frontend, which allows us to parse arbitrary C/C++
variables.
Part of rdar://13663589

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

11 years ago[Support] Fix argv string escape bug on Windows
Reid Kleckner [Mon, 22 Apr 2013 19:03:55 +0000 (19:03 +0000)]
[Support] Fix argv string escape bug on Windows

Summary:
This is http://llvm.org/PR15802.  Backslashes preceding double quotes in
arguments must be escaped.  The interesting bit is that all other
backslashes should *not* be escaped, because the un-escaping logic is
only triggered by the presence of a double quote character.

Reviewers: Bigcheese

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

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

11 years agoCOFF: Fix weak external aliases.
Peter Collingbourne [Mon, 22 Apr 2013 18:48:56 +0000 (18:48 +0000)]
COFF: Fix weak external aliases.

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

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

11 years agoExtra paranoid test for r179925 (verify that tail calls are not generated to 'this...
Stephen Lin [Mon, 22 Apr 2013 17:23:49 +0000 (17:23 +0000)]
Extra paranoid test for r179925 (verify that tail calls are not generated to 'this'-returning constructors of objects with different 'this' pointers than the caller)

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

11 years agoDocument the -filetype option of llc (PR #12902)
Eli Bendersky [Mon, 22 Apr 2013 17:16:35 +0000 (17:16 +0000)]
Document the -filetype option of llc (PR #12902)

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

11 years agoFix for PR 14965: Better error message for GEP with partially defined contents
Eli Bendersky [Mon, 22 Apr 2013 17:03:42 +0000 (17:03 +0000)]
Fix for PR 14965: Better error message for GEP with partially defined contents

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

11 years ago[ms-inline asm] Refactor/clean up the SemaLookup interface. No functional
Chad Rosier [Mon, 22 Apr 2013 17:01:46 +0000 (17:01 +0000)]
[ms-inline asm] Refactor/clean up the SemaLookup interface.  No functional
change indended.
Part of rdar://13663589

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

11 years agoAdd AArch64 into $llvm_cv_target_arch in configure, reviewed by Tim Northover & Eric...
Jia Liu [Mon, 22 Apr 2013 16:26:15 +0000 (16:26 +0000)]
Add AArch64 into $llvm_cv_target_arch in configure, reviewed by Tim Northover & Eric Christopher

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

11 years agotypo
Jia Liu [Mon, 22 Apr 2013 15:40:16 +0000 (15:40 +0000)]
typo

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

11 years agoMake doxygen comment match declaration.
Benjamin Kramer [Mon, 22 Apr 2013 15:21:03 +0000 (15:21 +0000)]
Make doxygen comment match declaration.

Found by -Wdocumentation.

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

11 years agoAlso verify llvm.compiler_used.
Rafael Espindola [Mon, 22 Apr 2013 15:16:51 +0000 (15:16 +0000)]
Also verify llvm.compiler_used.

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

11 years agoClarify that llvm.used can contain aliases.
Rafael Espindola [Mon, 22 Apr 2013 14:58:02 +0000 (14:58 +0000)]
Clarify that llvm.used can contain aliases.

Also add a check for llvm.used in the verifier and simplify clients now that
they can assume they have a ConstantArray.

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

11 years agoNo really, don't store anything to this since it's unconditionally
Eric Christopher [Mon, 22 Apr 2013 14:11:25 +0000 (14:11 +0000)]
No really, don't store anything to this since it's unconditionally
set below.

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

11 years agoRemove variable store that is never read.
Eric Christopher [Mon, 22 Apr 2013 13:51:44 +0000 (13:51 +0000)]
Remove variable store that is never read.

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

11 years agoRemove variable store that is never read.
Eric Christopher [Mon, 22 Apr 2013 13:46:33 +0000 (13:46 +0000)]
Remove variable store that is never read.

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

11 years agoFix for 5.5 Parameter Passing --> Stage C:
Stepan Dyatkovskiy [Mon, 22 Apr 2013 13:06:52 +0000 (13:06 +0000)]
Fix for 5.5 Parameter Passing --> Stage C:
 -- C.4 and C.5 statements, when NSAA is not equal to SP.
 -- C.1.cp statement for VA functions. Note: There are no VFP CPRCs in a
    variadic procedure.

Before this patch "NSAA != 0" means "don't use GPRs anymore ". But there are
some exceptions in AAPCS.
1. For non VA function: allocate all VFP regs for CPRC. When all VFPs are allocated
   CPRCs would be sent to stack, while non CPRCs may be still allocated in GRPs.
2. Check that for VA functions all params uses GPRs and then stack.
   No exceptions, no CPRCs here.

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

11 years agoAdd .ll as a valid test suffix for Object, this allows .ll -> object
Eric Christopher [Mon, 22 Apr 2013 10:45:06 +0000 (10:45 +0000)]
Add .ll as a valid test suffix for Object, this allows .ll -> object
and then dumping as tests.

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

11 years agoAdd the same todo about a command iterator interface into the
Eric Christopher [Mon, 22 Apr 2013 10:27:32 +0000 (10:27 +0000)]
Add the same todo about a command iterator interface into the
other mach-o object file as well.

TODO: One interface to rule them all.

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

11 years agoAdd a TODO about wanting an iterator interface.
Eric Christopher [Mon, 22 Apr 2013 10:25:25 +0000 (10:25 +0000)]
Add a TODO about wanting an iterator interface.

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

11 years agollvm-readobj: Dump more COFF auxiliary records
Nico Rieck [Mon, 22 Apr 2013 08:35:11 +0000 (08:35 +0000)]
llvm-readobj: Dump more COFF auxiliary records

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

11 years agollvm-readobj: Check for null section pointer
Nico Rieck [Mon, 22 Apr 2013 08:34:59 +0000 (08:34 +0000)]
llvm-readobj: Check for null section pointer

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

11 years agollvm-readobj: Do not print NULL StringRefs
Nico Rieck [Mon, 22 Apr 2013 08:34:46 +0000 (08:34 +0000)]
llvm-readobj: Do not print NULL StringRefs

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

11 years agoCleanup: test source files do not need to be executable
Arnaud A. de Grandmaison [Mon, 22 Apr 2013 08:02:43 +0000 (08:02 +0000)]
Cleanup: test source files do not need to be executable

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

11 years agoTidy.
Eric Christopher [Mon, 22 Apr 2013 07:51:08 +0000 (07:51 +0000)]
Tidy.

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

11 years agoUpdate comment. Whitespace.
Eric Christopher [Mon, 22 Apr 2013 07:47:40 +0000 (07:47 +0000)]
Update comment. Whitespace.

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

11 years agoRevert "Revert "PR14606: debug info imported_module support""
David Blaikie [Mon, 22 Apr 2013 06:12:31 +0000 (06:12 +0000)]
Revert "Revert "PR14606: debug info imported_module support""

This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll

I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even
though the debug info was clearly invalid on all of them, but this ought to fix
it.

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

11 years agoConvert windows line endings to linux/unix line endings.
Craig Topper [Mon, 22 Apr 2013 05:38:01 +0000 (05:38 +0000)]
Convert windows line endings to linux/unix line endings.

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

11 years agoFix indentation. No functional change.
Craig Topper [Mon, 22 Apr 2013 04:24:02 +0000 (04:24 +0000)]
Fix indentation. No functional change.

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

11 years agoPut 'else' on same line as preceding curly brace per coding standards. No functional...
Craig Topper [Mon, 22 Apr 2013 04:22:40 +0000 (04:22 +0000)]
Put 'else' on same line as preceding curly brace per coding standards. No functional change.

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

11 years agoRemove an unreachable 'break' following a 'return'.
Craig Topper [Mon, 22 Apr 2013 04:06:59 +0000 (04:06 +0000)]
Remove an unreachable 'break' following a 'return'.

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

11 years agoLegalize vector truncates by parts rather than just splitting.
Jim Grosbach [Sun, 21 Apr 2013 23:47:41 +0000 (23:47 +0000)]
Legalize vector truncates by parts rather than just splitting.

Rather than just splitting the input type and hoping for the best, apply
a bit more cleverness. Just splitting the types until the source is
legal often leads to an illegal result time, which is then widened and a
scalarization step is introduced which leads to truly horrible code
generation. With the loop vectorizer, these sorts of operations are much
more common, and so it's worth extra effort to do them well.

Add a legalization hook for the operands of a TRUNCATE node, which will
be encountered after the result type has been legalized, but if the
operand type is still illegal. If simple splitting of both types
ends up with the result type of each half still being legal, just
do that (v16i16 -> v16i8 on ARM, for example). If, however, that would
result in an illegal result type (v8i32 -> v8i8 on ARM, for example),
we can get more clever with power-two vectors. Specifically,
split the input type, but also widen the result element size, then
concatenate the halves and truncate again.  For example on ARM,
To perform a "%res = v8i8 trunc v8i32 %in" we transform to:
  %inlo = v4i32 extract_subvector %in, 0
  %inhi = v4i32 extract_subvector %in, 4
  %lo16 = v4i16 trunc v4i32 %inlo
  %hi16 = v4i16 trunc v4i32 %inhi
  %in16 = v8i16 concat_vectors v4i16 %lo16, v4i16 %hi16
  %res = v8i8 trunc v8i16 %in16

This allows instruction selection to generate three VMOVN instructions
instead of a sequences of moves, stores and loads.

Update the ARMTargetTransformInfo to take this improved legalization
into account.

Consider the simplified IR:

define <16 x i8> @test1(<16 x i32>* %ap) {
  %a = load <16 x i32>* %ap
  %tmp = trunc <16 x i32> %a to <16 x i8>
  ret <16 x i8> %tmp
}

define <8 x i8> @test2(<8 x i32>* %ap) {
  %a = load <8 x i32>* %ap
  %tmp = trunc <8 x i32> %a to <8 x i8>
  ret <8 x i8> %tmp
}

Previously, we would generate the truly hideous:
.syntax unified
.section __TEXT,__text,regular,pure_instructions
.globl _test1
.align 2
_test1:                                 @ @test1
@ BB#0:
push {r7}
mov r7, sp
sub sp, sp, #20
bic sp, sp, #7
add r1, r0, #48
add r2, r0, #32
vld1.64 {d24, d25}, [r0:128]
vld1.64 {d16, d17}, [r1:128]
vld1.64 {d18, d19}, [r2:128]
add r1, r0, #16
vmovn.i32 d22, q8
vld1.64 {d16, d17}, [r1:128]
vmovn.i32 d20, q9
vmovn.i32 d18, q12
vmov.u16 r0, d22[3]
strb r0, [sp, #15]
vmov.u16 r0, d22[2]
strb r0, [sp, #14]
vmov.u16 r0, d22[1]
strb r0, [sp, #13]
vmov.u16 r0, d22[0]
vmovn.i32 d16, q8
strb r0, [sp, #12]
vmov.u16 r0, d20[3]
strb r0, [sp, #11]
vmov.u16 r0, d20[2]
strb r0, [sp, #10]
vmov.u16 r0, d20[1]
strb r0, [sp, #9]
vmov.u16 r0, d20[0]
strb r0, [sp, #8]
vmov.u16 r0, d18[3]
strb r0, [sp, #3]
vmov.u16 r0, d18[2]
strb r0, [sp, #2]
vmov.u16 r0, d18[1]
strb r0, [sp, #1]
vmov.u16 r0, d18[0]
strb r0, [sp]
vmov.u16 r0, d16[3]
strb r0, [sp, #7]
vmov.u16 r0, d16[2]
strb r0, [sp, #6]
vmov.u16 r0, d16[1]
strb r0, [sp, #5]
vmov.u16 r0, d16[0]
strb r0, [sp, #4]
vldmia sp, {d16, d17}
vmov r0, r1, d16
vmov r2, r3, d17
mov sp, r7
pop {r7}
bx lr

.globl _test2
.align 2
_test2:                                 @ @test2
@ BB#0:
push {r7}
mov r7, sp
sub sp, sp, #12
bic sp, sp, #7
vld1.64 {d16, d17}, [r0:128]
add r0, r0, #16
vld1.64 {d20, d21}, [r0:128]
vmovn.i32 d18, q8
vmov.u16 r0, d18[3]
vmovn.i32 d16, q10
strb r0, [sp, #3]
vmov.u16 r0, d18[2]
strb r0, [sp, #2]
vmov.u16 r0, d18[1]
strb r0, [sp, #1]
vmov.u16 r0, d18[0]
strb r0, [sp]
vmov.u16 r0, d16[3]
strb r0, [sp, #7]
vmov.u16 r0, d16[2]
strb r0, [sp, #6]
vmov.u16 r0, d16[1]
strb r0, [sp, #5]
vmov.u16 r0, d16[0]
strb r0, [sp, #4]
ldm sp, {r0, r1}
mov sp, r7
pop {r7}
bx lr

Now, however, we generate the much more straightforward:
.syntax unified
.section __TEXT,__text,regular,pure_instructions
.globl _test1
.align 2
_test1:                                 @ @test1
@ BB#0:
add r1, r0, #48
add r2, r0, #32
vld1.64 {d20, d21}, [r0:128]
vld1.64 {d16, d17}, [r1:128]
add r1, r0, #16
vld1.64 {d18, d19}, [r2:128]
vld1.64 {d22, d23}, [r1:128]
vmovn.i32 d17, q8
vmovn.i32 d16, q9
vmovn.i32 d18, q10
vmovn.i32 d19, q11
vmovn.i16 d17, q8
vmovn.i16 d16, q9
vmov r0, r1, d16
vmov r2, r3, d17
bx lr

.globl _test2
.align 2
_test2:                                 @ @test2
@ BB#0:
vld1.64 {d16, d17}, [r0:128]
add r0, r0, #16
vld1.64 {d18, d19}, [r0:128]
vmovn.i32 d16, q8
vmovn.i32 d17, q9
vmovn.i16 d16, q8
vmov r0, r1, d16
bx lr

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

11 years agoARM: Split out cost model vcvt testcases.
Jim Grosbach [Sun, 21 Apr 2013 23:47:37 +0000 (23:47 +0000)]
ARM: Split out cost model vcvt testcases.

They had a separate RUN line already, so may as well be in a separate file.

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

11 years agoPassing arguments to varags functions under the SPARC v9 ABI.
Jakob Stoklund Olesen [Sun, 21 Apr 2013 21:36:49 +0000 (21:36 +0000)]
Passing arguments to varags functions under the SPARC v9 ABI.

Arguments after the fixed arguments never use the floating point
registers.

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

11 years agoTidy up comment grammar.
Jim Grosbach [Sun, 21 Apr 2013 21:23:01 +0000 (21:23 +0000)]
Tidy up comment grammar.

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

11 years agoFix the SETHIimm pattern for 64-bit code.
Jakob Stoklund Olesen [Sun, 21 Apr 2013 21:18:03 +0000 (21:18 +0000)]
Fix the SETHIimm pattern for 64-bit code.

Don't ignore the high 32 bits of the immediate.

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

11 years agoRemove unused, undefined ArgFlagsTy::getArgFlagsString; add a comment about 'returned'
Stephen Lin [Sun, 21 Apr 2013 18:05:20 +0000 (18:05 +0000)]
Remove unused, undefined ArgFlagsTy::getArgFlagsString; add a comment about 'returned'

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

11 years agoSROA: Don't crash on a select with two identical operands.
Benjamin Kramer [Sun, 21 Apr 2013 17:48:39 +0000 (17:48 +0000)]
SROA: Don't crash on a select with two identical operands.

This is an edge case that can happen if we modify a chain of multiple selects.
Update all operands in that case and remove the assert. PR15805.

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

11 years agoRevert "SimplifyCFG: If convert single conditional stores"
Arnold Schwaighofer [Sun, 21 Apr 2013 13:09:04 +0000 (13:09 +0000)]
Revert "SimplifyCFG: If convert single conditional stores"

There is the temptation to make this tranform dependent on target information as
it is not going to be beneficial on all (sub)targets. Therefore, we should
probably do this in MI Early-Ifconversion.

This reverts commit r179957. Original commit message:

"SimplifyCFG: If convert single conditional stores

This transformation will transform a conditional store with a preceeding
uncondtional store to the same location:

a[i] =
may-alias with a[i] load
if (cond)
    a[i] = Y
into an unconditional store.

a[i] = X
may-alias with a[i] load
tmp = cond ? Y : X;
a[i] = tmp

We assume that on average the cost of a mispredicted branch is going to be
higher than the cost of a second store to the same location, and that the
secondary benefits of creating a bigger basic block for other optimizations to
work on outway the potential case were the branch would be correctly predicted
and the cost of the executing the second store would be noticably reflected in
performance.

hmmer's execution time improves by 30% on an imac12,2 on ref data sets. With
this change we are on par with gcc's performance (gcc also performs this
transformation). There was a 1.2 % performance improvement on a ARM swift chip.
Other tests in the test-suite+external seem to be mostly uninfluenced in my
experiments:
This optimization was triggered on 41 tests such that the executable was
different before/after the patch. Only 1 out of the 40 tests (dealII) was
reproducable below 100% (by about .4%). Given that hmmer benefits so much I
believe this to be a fair trade off.

I am going to watch performance numbers across the builtbots and will revert
this if anything unexpected comes up."

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

11 years agoARM: fix part of test which actually needed an asserts build
Tim Northover [Sun, 21 Apr 2013 12:20:19 +0000 (12:20 +0000)]
ARM: fix part of test which actually needed an asserts build

This should fix a buildbot failure that occurred after r179977.

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

11 years agoARM: Use ldrd/strd to spill 64-bit pairs when available.
Tim Northover [Sun, 21 Apr 2013 11:57:07 +0000 (11:57 +0000)]
ARM: Use ldrd/strd to spill 64-bit pairs when available.

This allows common sp-offsets to be part of the instruction and is
probably faster on modern CPUs too.

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

11 years agoRemove the executable bit on cmake files
Sylvestre Ledru [Sun, 21 Apr 2013 09:04:59 +0000 (09:04 +0000)]
Remove the executable bit on cmake files

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

11 years agoSLPVectorize: Add support for vectorization of casts.
Nadav Rotem [Sun, 21 Apr 2013 08:05:59 +0000 (08:05 +0000)]
SLPVectorize: Add support for vectorization of casts.

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

11 years agoSLPVectorizer: Fix a bug in the code that scans the tree in search of nodes with...
Nadav Rotem [Sun, 21 Apr 2013 07:37:56 +0000 (07:37 +0000)]
SLPVectorizer: Fix a bug in the code that scans the tree in search of nodes with multiple users.
We did not terminate the switch case and we executed the search routine twice.

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