oota-llvm.git
10 years ago[PowerPC] Miscellaneous fast-isel test cases.
Bill Schmidt [Fri, 30 Aug 2013 02:43:08 +0000 (02:43 +0000)]
[PowerPC] Miscellaneous fast-isel test cases.

Here are a few more tests that now pass after the recent fast-isel
commits.

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

10 years ago[PowerPC] Add loads, stores, and related things to fast-isel.
Bill Schmidt [Fri, 30 Aug 2013 02:29:45 +0000 (02:29 +0000)]
[PowerPC] Add loads, stores, and related things to fast-isel.

This is the next big chunk of fast-isel code.  The primary purpose is
to implement selection of loads and stores, but there is a lot of
drag-along to support this.  The common code to analyze addresses for
both loads and stores is substantial.  It's also necessary to add the
materialization code for global values.

Related to load-store processing is the code to fold loads into
integer extends, since otherwise we generate lots of redundant
instructions.  We also need to add some overrides to some FastEmit
routines to ensure we don't assign GPR 0 to a virtual register when
this would change the meaning of an instruction.

I added handling selection of a few binary arithmetic instructions, to
enable committing some test cases I wrote a while back.

Finally, ap couple of miscellaneous changes:
 * I cleaned up some poor style from a previous patch in
   PPCISelLowering.cpp, pointed out by David Blaikie.
 * I enlarged the Addr.Offset field to avoid sign problems with 32-bit
   offsets.

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

10 years agocomment typo
Andrew Trick [Fri, 30 Aug 2013 02:02:12 +0000 (02:02 +0000)]
comment typo

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

10 years agoRandom cleanup: No need to use a std::vector here, since createInternalizePass uses...
Bill Wendling [Fri, 30 Aug 2013 00:48:37 +0000 (00:48 +0000)]
Random cleanup: No need to use a std::vector here, since createInternalizePass uses an ArrayRef.

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

10 years agoDon't bother emitting the pubtypes section on darwin since there aren't
Eric Christopher [Fri, 30 Aug 2013 00:40:17 +0000 (00:40 +0000)]
Don't bother emitting the pubtypes section on darwin since there aren't
any maintained consumers of it on that platform.

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

10 years agoReformat slightly.
Eric Christopher [Fri, 30 Aug 2013 00:39:57 +0000 (00:39 +0000)]
Reformat slightly.

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

10 years agoChange default # of digits for APFloat::toString
Eli Friedman [Thu, 29 Aug 2013 23:44:34 +0000 (23:44 +0000)]
Change default # of digits for APFloat::toString

This is a re-commit of r189442; I'll follow up with clang changes.

The previous default was almost, but not quite enough digits to
represent a floating-point value in a manner which preserves the
representation when it's read back in.  The larger default is much
less confusing.

I spent some time looking into printing exactly the right number of
digits if a precision isn't specified, but it's kind of complicated,
and I'm not really sure I understand what APFloat::toString is supposed
to output for FormatPrecision != 0 (or maybe the current API specification
is just silly, not sure which).  I have a WIP patch if anyone is interested.

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

10 years agoDIBuilder: retain a type when created with a unique identifier.
Manman Ren [Thu, 29 Aug 2013 23:17:54 +0000 (23:17 +0000)]
DIBuilder: retain a type when created with a unique identifier.

createClassType, createStructType, createUnionType, createEnumerationType,
and createForwardDecl will retain a type when created with a unique identifier,
to make sure they are treated as used even when all uses are replaced with
the identifiers.

Use TrackingVH<MDNode> instead of MDNode in AllRetainTypes, since the created
node can later be updated.

The change will be tested when clients of DIBuilder start to pass in non-empty
unique identifier.

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

10 years agoARM: Improve pattern for isel mul of vector by scalar.
Jim Grosbach [Thu, 29 Aug 2013 22:41:46 +0000 (22:41 +0000)]
ARM: Improve pattern for isel mul of vector by scalar.

In addition to recognizing when the multiply's second argument is
coming from an explicit VDUPLANE, also look for a plain scalar
f32 reference and reference it via the corresponding vector
lane.

rdar://14870054

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

10 years agoTidy up. Comment grammar.
Jim Grosbach [Thu, 29 Aug 2013 22:41:43 +0000 (22:41 +0000)]
Tidy up. Comment grammar.

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

10 years agoTidy up. Trailing whitespace.
Jim Grosbach [Thu, 29 Aug 2013 22:41:39 +0000 (22:41 +0000)]
Tidy up. Trailing whitespace.

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

10 years agoSubstitute LLVM's version into the msbuild property file at config time
Reid Kleckner [Thu, 29 Aug 2013 22:09:43 +0000 (22:09 +0000)]
Substitute LLVM's version into the msbuild property file at config time

Requires shuffling the CPack code up before add_subdirectory(tools), but
that's where the version settings are anyway.

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

10 years agoModified ms-build configuration file to be version locked to the VS2010 toolchain...
Warren Hunt [Thu, 29 Aug 2013 21:23:53 +0000 (21:23 +0000)]
Modified ms-build configuration file to be version locked to the VS2010 toolchain, this avoids conflicts with having VS2012 and
Win7SDK used at the same time.

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

10 years agoClean up some usage of Triple. The base class has methods for determining if the...
Cameron Esfahani [Thu, 29 Aug 2013 20:23:14 +0000 (20:23 +0000)]
Clean up some usage of Triple.  The base class has methods for determining if the target is iOS and Linux.

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

10 years agoFix the following error when NDEBUG is defined:
Kaelyn Uhrain [Thu, 29 Aug 2013 18:49:35 +0000 (18:49 +0000)]
Fix the following error when NDEBUG is defined:

include/llvm/Support/UnicodeCharRanges.h:56:5: error:
use of this statement in a constexpr constructor is a C++1y extension
[-Werror,-Wc++1y-extensions]
     assert(rangesAreValid());
          ^

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

10 years agoComment and revise the cyclic critical path code.
Andrew Trick [Thu, 29 Aug 2013 18:04:49 +0000 (18:04 +0000)]
Comment and revise the cyclic critical path code.

This should be much more clear now. It's still disabled pending testing.

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

10 years agoAdd unique identifier field to Composite Types and Format.
Manman Ren [Thu, 29 Aug 2013 17:07:49 +0000 (17:07 +0000)]
Add unique identifier field to Composite Types and Format.

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

10 years agoisCharInSet refactoring.
Alexander Kornienko [Thu, 29 Aug 2013 12:12:13 +0000 (12:12 +0000)]
isCharInSet refactoring.

Summary:
Made UnicodeCharSet a class, perform validity checking inside its
constructor instead of each isCharInSet call, use std::binary_search instead of
own implementation.
This patch comes with a necessary change in clang (sent separately).

Reviewers: jordan_rose, klimek

Reviewed By: klimek

CC: cfe-commits, rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D1534

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

10 years agoAVX-512: added extend and truncate instructions.
Elena Demikhovsky [Thu, 29 Aug 2013 11:56:53 +0000 (11:56 +0000)]
AVX-512: added extend and truncate instructions.

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

10 years agoMove StringToOffsetTable into the TableGen include directory so I can use it in clang.
Craig Topper [Thu, 29 Aug 2013 05:09:55 +0000 (05:09 +0000)]
Move StringToOffsetTable into the TableGen include directory so I can use it in clang.

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

10 years agoRevert: r189565 - Add getUnrollingPreferences to TTI
Hal Finkel [Thu, 29 Aug 2013 03:33:15 +0000 (03:33 +0000)]
Revert: r189565 - Add getUnrollingPreferences to TTI

Revert unintentional commit (of an unreviewed change).

Original commit message:

Add getUnrollingPreferences to TTI

Allow targets to customize the default behavior of the generic loop unrolling
transformation. This will be used by the PowerPC backend when targeting the A2
core (which is in-order with a deep pipeline), and using more aggressive
defaults is important.

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

10 years agoAdd getUnrollingPreferences to TTI
Hal Finkel [Thu, 29 Aug 2013 03:29:57 +0000 (03:29 +0000)]
Add getUnrollingPreferences to TTI

Allow targets to customize the default behavior of the generic loop unrolling
transformation. This will be used by the PowerPC backend when targeting the A2
core (which is in-order with a deep pipeline), and using more aggressive
defaults is important.

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

10 years agoUse TargetSubtargetInfo::useAA() in DAGCombine
Hal Finkel [Thu, 29 Aug 2013 03:29:55 +0000 (03:29 +0000)]
Use TargetSubtargetInfo::useAA() in DAGCombine

This uses the TargetSubtargetInfo::useAA() function to control the defaults of
the -combiner-alias-analysis and -combiner-global-alias-analysis options.

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

10 years agoAdd useAA() to TargetSubtargetInfo
Hal Finkel [Thu, 29 Aug 2013 03:25:05 +0000 (03:25 +0000)]
Add useAA() to TargetSubtargetInfo

There are several optional (off-by-default) features in CodeGen that can make
use of alias analysis. These features are important for generating code for
some kinds of cores (for example the (in-order) PPC A2 core). This adds a
useAA() function to TargetSubtargetInfo to allow these features to be enabled
by default on a per-subtarget basis.

Here is the first use of this function: To control the default of the
-enable-aa-sched-mi feature.

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

10 years ago[lit] [tests] Add missing test input file.
Daniel Dunbar [Thu, 29 Aug 2013 03:02:34 +0000 (03:02 +0000)]
[lit] [tests] Add missing test input file.

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

10 years ago[tests] Use multiple statements instead of 'echo -e', which is not part of BSD echo.
Daniel Dunbar [Thu, 29 Aug 2013 03:02:30 +0000 (03:02 +0000)]
[tests] Use multiple statements instead of 'echo -e', which is not part of BSD echo.

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

10 years ago[lit] Fix internal shell's argv[0] handling.
Daniel Dunbar [Thu, 29 Aug 2013 02:52:10 +0000 (02:52 +0000)]
[lit] Fix internal shell's argv[0] handling.

 - At least on OS X, it is important for correct behavior of /bin/[ that argv[0]
   is passed as written, and not as the full executable path.

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

10 years ago[lit] Add support for multiprocessing, under --use-processes for now.
Daniel Dunbar [Thu, 29 Aug 2013 00:54:23 +0000 (00:54 +0000)]
[lit] Add support for multiprocessing, under --use-processes for now.

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

10 years ago[lit] Implement --max-time support by using provider cancel method.
Daniel Dunbar [Thu, 29 Aug 2013 00:54:19 +0000 (00:54 +0000)]
[lit] Implement --max-time support by using provider cancel method.

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

10 years ago[lit] Refactor test execution logic into lit.run.Run.
Daniel Dunbar [Thu, 29 Aug 2013 00:54:15 +0000 (00:54 +0000)]
[lit] Refactor test execution logic into lit.run.Run.

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

10 years ago[lit] Put display lock inside the ThreadResultsConsumer.
Daniel Dunbar [Thu, 29 Aug 2013 00:54:09 +0000 (00:54 +0000)]
[lit] Put display lock inside the ThreadResultsConsumer.

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

10 years ago[lit] Factor out a results consumer interface for test execution.
Daniel Dunbar [Thu, 29 Aug 2013 00:54:02 +0000 (00:54 +0000)]
[lit] Factor out a results consumer interface for test execution.
 - Also, change TestProvider interface to operate on test indices.

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

10 years ago[lit] Move top-level execute code into Run object.
Daniel Dunbar [Thu, 29 Aug 2013 00:48:55 +0000 (00:48 +0000)]
[lit] Move top-level execute code into Run object.

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

10 years ago[lit] Factor out Run class to capture configuration + discovered tests.
Daniel Dunbar [Thu, 29 Aug 2013 00:48:45 +0000 (00:48 +0000)]
[lit] Factor out Run class to capture configuration + discovered tests.

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

10 years ago[lit] Change lit.Test.ResultCode to be unique across pickling.
Daniel Dunbar [Thu, 29 Aug 2013 00:48:39 +0000 (00:48 +0000)]
[lit] Change lit.Test.ResultCode to be unique across pickling.

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

10 years agoFix a test to not fail for users with my name. :)
Daniel Dunbar [Thu, 29 Aug 2013 00:41:22 +0000 (00:41 +0000)]
Fix a test to not fail for users with my name. :)

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

10 years ago[lit] Add a TODO.
Daniel Dunbar [Thu, 29 Aug 2013 00:41:15 +0000 (00:41 +0000)]
[lit] Add a TODO.

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

10 years ago[lit] Update shtest format to return lit.Test.Result objects.
Daniel Dunbar [Thu, 29 Aug 2013 00:41:09 +0000 (00:41 +0000)]
[lit] Update shtest format to return lit.Test.Result objects.

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

10 years ago[lit] Update LitTestCase to support lit.Test.Result.
Daniel Dunbar [Thu, 29 Aug 2013 00:40:59 +0000 (00:40 +0000)]
[lit] Update LitTestCase to support lit.Test.Result.

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

10 years agoThe darwin integrated assembler for X86 in 64-bit mode is not rejecting
Kevin Enderby [Thu, 29 Aug 2013 00:19:03 +0000 (00:19 +0000)]
The darwin integrated assembler for X86 in 64-bit mode is not rejecting
32-bit absolute addressing in instructions likei this:

mov $_f, %rsi

which is not supported in 64-bit mode.

rdar://8827134

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

10 years ago[Object/COFF] Add coff_aux_weak_external.
Rui Ueyama [Wed, 28 Aug 2013 23:49:30 +0000 (23:49 +0000)]
[Object/COFF] Add coff_aux_weak_external.

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

10 years agoVectorizer/PassManager: I am working on moving the vectorizer out of the SCC passes...
Nadav Rotem [Wed, 28 Aug 2013 23:40:29 +0000 (23:40 +0000)]
Vectorizer/PassManager:  I am working on moving the vectorizer out of the SCC passes. This patch moves the SLP-vectorizer and BB-vectorizer back into SCC passes for two reasons:
1. They are a kind of cannonicalization.
2. The performance measurements show that it is better to keep them in.

There should be no functional change if you are not enabling the LateVectorization mode.

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

10 years agoConvert tests to FileCheck
Matt Arsenault [Wed, 28 Aug 2013 23:04:41 +0000 (23:04 +0000)]
Convert tests to FileCheck

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

10 years agoAdding VCIncludeDir and WindowsSDKDir to the msbuild configuration file. This allows...
Warren Hunt [Wed, 28 Aug 2013 22:54:13 +0000 (22:54 +0000)]
Adding VCIncludeDir and WindowsSDKDir to the msbuild configuration file.  This allows clang to find windows.h and other files in the
sdk and visutal studio includes.

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

10 years agoHandle address spaces in TargetTransformInfo
Matt Arsenault [Wed, 28 Aug 2013 22:41:57 +0000 (22:41 +0000)]
Handle address spaces in TargetTransformInfo

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

10 years agoFix a typo and coding style of a previous commit. No functional change.
Juergen Ributzka [Wed, 28 Aug 2013 22:33:58 +0000 (22:33 +0000)]
Fix a typo and coding style of a previous commit. No functional change.

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

10 years agoFix typo.
Matt Arsenault [Wed, 28 Aug 2013 22:17:26 +0000 (22:17 +0000)]
Fix typo.

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

10 years ago[doxygen] Use correct variable names for external variable configuration and make...
Michael Gottesman [Wed, 28 Aug 2013 21:55:26 +0000 (21:55 +0000)]
[doxygen] Use correct variable names for external variable configuration and make EXTRA_SEARCH_MAPPINGS a "dumb" variable.

I do not think the massaging that I was doing for EXTRA_SEARCH_MAPPINGS was
truly necessary.

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

10 years agoFix name matching to work on windows.
Rafael Espindola [Wed, 28 Aug 2013 21:00:03 +0000 (21:00 +0000)]
Fix name matching to work on windows.

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

10 years agoPeriod.
David Blaikie [Wed, 28 Aug 2013 20:45:45 +0000 (20:45 +0000)]
Period.

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

10 years agor189495: Pull out some debug logic into a function for legibility
David Blaikie [Wed, 28 Aug 2013 20:42:43 +0000 (20:42 +0000)]
r189495: Pull out some debug logic into a function for legibility

Code review feedback from Eric Christopher.

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

10 years ago[doxygen] Added support for doxygen external search.
Michael Gottesman [Wed, 28 Aug 2013 20:28:35 +0000 (20:28 +0000)]
[doxygen] Added support for doxygen external search.

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

10 years ago[cmake] Created an aggregate doxygen target for generating doxygen documentation...
Michael Gottesman [Wed, 28 Aug 2013 20:28:32 +0000 (20:28 +0000)]
[cmake] Created an aggregate doxygen target for generating doxygen documentation for llvm/all subprojects. Renamed llvm's doxygen generation command to doxygen-llvm.

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

10 years agoOption parsing: support case-insensitive option matching.
Rui Ueyama [Wed, 28 Aug 2013 20:04:31 +0000 (20:04 +0000)]
Option parsing: support case-insensitive option matching.

Re-submitting r189416 with fix for Windows build on where strcasecmp is not defined.

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

10 years agoDisable unrolling in the loop vectorizer when disabled in the pass manager
Hal Finkel [Wed, 28 Aug 2013 18:33:10 +0000 (18:33 +0000)]
Disable unrolling in the loop vectorizer when disabled in the pass manager

When unrolling is disabled in the pass manager, the loop vectorizer should also
not unroll loops. This will allow the -fno-unroll-loops option in Clang to
behave as expected (even for vectorizable loops). The loop vectorizer's
-force-vector-unroll option will (continue to) override the pass-manager
setting (including -force-vector-unroll=0 to force use of the internal
auto-selection logic).

In order to test this, I added a flag to opt (-disable-loop-unrolling) to force
disable unrolling through opt (the analog of -fno-unroll-loops in Clang). Also,
this fixes a small bug in opt where the loop vectorizer was enabled only after
the pass manager populated the queue of passes (the global_alias.ll test needed
a slight update to the RUN line as a result of this fix).

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

10 years agoThe integrated darwin assembler can hang in an infinite loop (or get an assert
Kevin Enderby [Wed, 28 Aug 2013 17:50:59 +0000 (17:50 +0000)]
The integrated darwin assembler can hang in an infinite loop (or get an assert
with a debug build) with this buggy .indirect_symbol directive usage:

% cat test.s
x: .indirect_symbol _y

The assertion is because it is trying to get the symbol index for the
symbol _y when it is writing out the indirect symbol table. This line of
code in MachObjectWriter::WriteObject() :

        Write32(Asm.getSymbolData(*it->Symbol).getIndex());

And while there is a symbol _y it does not have any getSymbolData set which
is only done in MachObjectWriter::BindIndirectSymbols() for pointer sections
or stub sections.  I added a check and an error in there to catch this in case
something slips through.

But to get a better error the parser should detect when a .indirect_symbol
directive is used and it is not in a pointer section or stub section.  To make
that work I moved the handling of the indirect symbol out of the target
independent AsmParser code into the DarwinAsmParser code that can check
for the proper Mach-O section types.

rdar://14825505

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

10 years agoPR16995: DebugInfo: Don't overwrite existing member lists when adding template arguments
David Blaikie [Wed, 28 Aug 2013 17:28:16 +0000 (17:28 +0000)]
PR16995: DebugInfo: Don't overwrite existing member lists when adding template arguments

With the added debug assertions this fix is covered by existing Clang
tests. (& found some other issues, also fixed)

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

10 years agocmake: Prevent semicolon separated lists in llvm-config (PR17020)
Hans Wennborg [Wed, 28 Aug 2013 17:04:06 +0000 (17:04 +0000)]
cmake: Prevent semicolon separated lists in llvm-config (PR17020)

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

10 years ago[ARMv8]
Joey Gouly [Wed, 28 Aug 2013 16:39:20 +0000 (16:39 +0000)]
[ARMv8]
Fix a few things in one swoop.

# Add some negative tests.
# Fix some formatting issues.
# Add some missing IsThumb / ARMv8
# Fix some outs / ins mistakes.

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

10 years agoAdd a minimal implementation of ranlib.
Rafael Espindola [Wed, 28 Aug 2013 16:22:16 +0000 (16:22 +0000)]
Add a minimal implementation of ranlib.

This is just enough to get "llvm-ranlib foo.a" working and tested. Making
llvm-ranlib a symbolic link to llvm-ar doesn't work so well with llvm's option
parsing, but ar's option parsing is mostly custom anyway.

This patch also removes the -X32_64 option. Looks like it was just added in
r10297 as part of implementing the current command line parsing. I can add it
back (with a test) if someone really has AIX portability problems without it.

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

10 years agoARM: Use "dmb sy" for barriers on M-class CPUs
Tim Northover [Wed, 28 Aug 2013 14:39:19 +0000 (14:39 +0000)]
ARM: Use "dmb sy" for barriers on M-class CPUs

The usual default of "dmb ish" (inner-shareable) isn't even a valid instruction
on v6M or v7M (well, it does the same thing but software is strongly
discouraged from using it) so we should emit a full-system barrier there.

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

10 years ago[ARMv8] Add a missing IsThumb to t2LDAEXD.
Joey Gouly [Wed, 28 Aug 2013 14:33:35 +0000 (14:33 +0000)]
[ARMv8] Add a missing IsThumb to t2LDAEXD.

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

10 years agoARM: remove unused v(add|sub)hn and vqdml[as]l intrinsics.
Tim Northover [Wed, 28 Aug 2013 14:33:33 +0000 (14:33 +0000)]
ARM: remove unused v(add|sub)hn and vqdml[as]l intrinsics.

Clang is now generating cleaner IR, so this removes the old variants which
should be completely unused.

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

10 years agoARM: add patterns for vqdmlal with separate vqdmull and vqadds
Tim Northover [Wed, 28 Aug 2013 12:15:16 +0000 (12:15 +0000)]
ARM: add patterns for vqdmlal with separate vqdmull and vqadds

The vqdmlal and vqdmlls instructions are really just a fused pair consisting of
a vqdmull.sN and a vqadd.sN. This adds patterns to LLVM so that we can switch
Clang's CodeGen over to generating these instead of the special vqdmlal
intrinsics.

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

10 years ago[mips][msa] Added bnz.df, bnz.v, bz.df, and bz.v
Daniel Sanders [Wed, 28 Aug 2013 12:14:50 +0000 (12:14 +0000)]
[mips][msa] Added bnz.df, bnz.v, bz.df, and bz.v

These intrinsics are legalized to V(ALL|ANY)_(NON)?ZERO nodes,
are matched as SN?Z_[BHWDV]_PSEUDO pseudo's, and emitted as
a branch/mov sequence to evaluate to 0 or 1.

Note: The resulting code is sub-optimal since it doesnt seem to be possible
to feed the result of an intrinsic directly into a brcond. At the moment
it uses (SETCC (VALL_ZERO $ws), 0, SETEQ) and similar which unnecessarily
evaluates the boolean twice.

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

10 years ago[mips][msa] Added load/store intrinsics.
Daniel Sanders [Wed, 28 Aug 2013 12:04:29 +0000 (12:04 +0000)]
[mips][msa] Added load/store intrinsics.

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

10 years ago80 cols
Alexey Samsonov [Wed, 28 Aug 2013 11:25:12 +0000 (11:25 +0000)]
80 cols

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

10 years agoAVX-512: added SQRT, VRSQRT14, VCOMISS, VUCOMISS, VRCP14, VPABS
Elena Demikhovsky [Wed, 28 Aug 2013 11:21:58 +0000 (11:21 +0000)]
AVX-512: added SQRT, VRSQRT14, VCOMISS, VUCOMISS, VRCP14, VPABS

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

10 years ago[mips][msa] Added move.v
Daniel Sanders [Wed, 28 Aug 2013 10:44:47 +0000 (10:44 +0000)]
[mips][msa] Added move.v

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

10 years ago[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL
Richard Sandiford [Wed, 28 Aug 2013 10:31:43 +0000 (10:31 +0000)]
[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL

For now just handles simple comparisons of an ANDed value with zero.
The CC value provides enough information to do any comparison for a
2-bit mask, and some nonzero comparisons with more populated masks,
but that's all future work.

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

10 years ago[mips][msa] Added cfcmsa, and ctcmsa
Daniel Sanders [Wed, 28 Aug 2013 10:26:24 +0000 (10:26 +0000)]
[mips][msa] Added cfcmsa, and ctcmsa

The MSA control registers have been added as reserved registers,
and are only used via ISD::Copy(To|From)Reg. The intrinsics are lowered
into these nodes.

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

10 years ago[mips][msa] Added f[cs]af, f[cs]or, f[cs]ueq, f[cs]ul[et], f[cs]une, fsun, ftrunc_...
Daniel Sanders [Wed, 28 Aug 2013 10:12:09 +0000 (10:12 +0000)]
[mips][msa] Added f[cs]af, f[cs]or, f[cs]ueq, f[cs]ul[et], f[cs]une, fsun, ftrunc_[su], hadd_[su], hsub_[su], sr[al]r, sr[al]ri

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

10 years ago[mips][msa] Summarize tests
Daniel Sanders [Wed, 28 Aug 2013 10:02:29 +0000 (10:02 +0000)]
[mips][msa] Summarize tests

Adds a comment to the start of each test summarizing the area the test covers.

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

10 years ago[SystemZ] Extend memcmp support to all constant lengths
Richard Sandiford [Wed, 28 Aug 2013 09:01:51 +0000 (09:01 +0000)]
[SystemZ] Extend memcmp support to all constant lengths

This uses the infrastructure added for memcpy and memmove in r189331.

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

10 years agoFix use of uninitialized value added in r189400 (found by MemorySanitizer)
Alexey Samsonov [Wed, 28 Aug 2013 08:30:47 +0000 (08:30 +0000)]
Fix use of uninitialized value added in r189400 (found by MemorySanitizer)

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

10 years agoAdd missing include
Craig Topper [Wed, 28 Aug 2013 07:03:02 +0000 (07:03 +0000)]
Add missing include

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

10 years agoRevert r189442 "Change default # of digits for APFloat::toString"
Ted Kremenek [Wed, 28 Aug 2013 06:21:46 +0000 (06:21 +0000)]
Revert r189442 "Change default # of digits for APFloat::toString"

This is breaking numerous Clang tests on the buildbot.

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

10 years agoChange default # of digits for APFloat::toString
Eli Friedman [Wed, 28 Aug 2013 05:23:51 +0000 (05:23 +0000)]
Change default # of digits for APFloat::toString

The previous default was almost, but not quite enough digits to
represent a floating-point value in a manner which preserves the
representation when it's read back in.  The larger default is much
less confusing.

I spent some time looking into printing exactly the right number of
digits if a precision isn't specified, but it's kind of complicated,
and I'm not really sure I understand what APFloat::toString is supposed
to output for FormatPrecision != 0 (or maybe the current API specification
is just silly, not sure which).  I have a WIP patch if anyone is interested.

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

10 years agoRemove support for the .debug_inlined section. No known software
Eric Christopher [Wed, 28 Aug 2013 04:04:28 +0000 (04:04 +0000)]
Remove support for the .debug_inlined section. No known software
in use supports it.

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

10 years agoX86JITInfo.cpp: Apply x64 version of X86CompilationCallback() to Cygwin64.
NAKAMURA Takumi [Wed, 28 Aug 2013 03:04:09 +0000 (03:04 +0000)]
X86JITInfo.cpp: Apply x64 version of X86CompilationCallback() to Cygwin64.

For now, (defined(X86_64_JIT) && defined(__CYGWIN__)) satisfies Cygwin64.

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

10 years agoX86Subtarget.h: Recognize x86_64-cygwin.
NAKAMURA Takumi [Wed, 28 Aug 2013 03:04:02 +0000 (03:04 +0000)]
X86Subtarget.h: Recognize x86_64-cygwin.

In the LLVM side, x86_64-cygwin is almost as same as x86_64-mingw32.

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

10 years agocmake: Add msbuild integration to the install
Hans Wennborg [Wed, 28 Aug 2013 01:19:26 +0000 (01:19 +0000)]
cmake: Add msbuild integration to the install

This adds the msbuild integration files to the install, provides batch scripts
for (un)installing it in a convenient way, and hooks up the nsis installer to
run those scripts.

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

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

10 years ago[BumpPtrAllocator] Move DefaultSlabAllocator to a member of BumpPtrAllocator, instead...
Argyrios Kyrtzidis [Wed, 28 Aug 2013 01:02:21 +0000 (01:02 +0000)]
[BumpPtrAllocator] Move DefaultSlabAllocator to a member of BumpPtrAllocator, instead of a static variable.

The problem with having DefaultSlabAllocator being a global static is that it is undefined if BumpPtrAllocator
will be usable during global initialization because it is not guaranteed that DefaultSlabAllocator will be
initialized before BumpPtrAllocator is created and used.

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

10 years ago[mips] Use ptr_rc to simplify definitions of base+index load/store instructions.
Akira Hatanaka [Wed, 28 Aug 2013 00:55:15 +0000 (00:55 +0000)]
[mips] Use ptr_rc to simplify definitions of base+index load/store instructions.
Also, fix predicates.

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

10 years ago[mips] Clean up definitions of move word from/to coprocessor instructions.
Akira Hatanaka [Wed, 28 Aug 2013 00:42:50 +0000 (00:42 +0000)]
[mips] Clean up definitions of move word from/to coprocessor instructions.

No functionality change.

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

10 years ago[mips] Set isAllocatable and CoveredBySubRegs.
Akira Hatanaka [Wed, 28 Aug 2013 00:34:17 +0000 (00:34 +0000)]
[mips] Set isAllocatable and CoveredBySubRegs.

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

10 years agoAdd a TODO here.
Eric Christopher [Wed, 28 Aug 2013 00:13:08 +0000 (00:13 +0000)]
Add a TODO here.

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

10 years agoAdd support for DW_FORM_dataN and DW_FORM_udata to the DIE hashing
Eric Christopher [Wed, 28 Aug 2013 00:10:38 +0000 (00:10 +0000)]
Add support for DW_FORM_dataN and DW_FORM_udata to the DIE hashing
algorithm. Update the split dwarf hashing testcase accordingly - this
should be the last time that the hash of an empty file changes.

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

10 years agoRevert "Option parsing: support case-insensitive option matching." as it broke Window...
Rui Ueyama [Wed, 28 Aug 2013 00:02:06 +0000 (00:02 +0000)]
Revert "Option parsing: support case-insensitive option matching." as it broke Windows buildbot.

This reverts r189416.

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

10 years agoUse DW_FORM_sdata for signed constant values and udata on occasion
Eric Christopher [Tue, 27 Aug 2013 23:49:04 +0000 (23:49 +0000)]
Use DW_FORM_sdata for signed constant values and udata on occasion
when we can. Migrate from using blocks when we're adding just a
single attribute and floating point values are an unsigned, not signed,
bag of bits.

Update all test cases accordingly.

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

10 years agoMove some debug testcases to the debug info directory.
Eric Christopher [Tue, 27 Aug 2013 23:48:57 +0000 (23:48 +0000)]
Move some debug testcases to the debug info directory.

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

10 years agoOption parsing: support case-insensitive option matching.
Rui Ueyama [Tue, 27 Aug 2013 23:47:01 +0000 (23:47 +0000)]
Option parsing: support case-insensitive option matching.

Link.exe's command line options are case-insensitive. This patch
adds a new attribute to OptTable to let the option parser to compare
options, ignoring case.

Command lines are generally case-insensitive on Windows. CL.exe is an
exception. So this new attribute should be useful for other commands
running on Windows.

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

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

10 years ago[CMake] Put back the add_llvm_external_project() calls for specific projects.
Argyrios Kyrtzidis [Tue, 27 Aug 2013 23:27:56 +0000 (23:27 +0000)]
[CMake] Put back the add_llvm_external_project() calls for specific projects.

This allows setting-up the LLVM_EXTERNAL_* CMake variables that some people are using,
e.g. to set the source directory of the project in a different place.

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

10 years agoAdd xml files for msbuild integration
Reid Kleckner [Tue, 27 Aug 2013 23:07:17 +0000 (23:07 +0000)]
Add xml files for msbuild integration

These files are intended to live in the msbuild toolset directory, which
is somewhere like:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\
  v4.0\Platforms\Win32\PlatformToolsets\llvm

More work is needed to install them as part of the NSIS installer.

Patch by Warren Hunt!

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

10 years agoDIBuilder: take an optional StringRef to pass in unique identifier.
Manman Ren [Tue, 27 Aug 2013 23:06:40 +0000 (23:06 +0000)]
DIBuilder: take an optional StringRef to pass in unique identifier.

createClassType, createStructType, createUnionType, createEnumerationType,
and createForwardDecl will take an optional StringRef to pass in
the unique identifier.

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

10 years agoDataFlowSanitizer: Implement trampolines for function pointers passed to custom funct...
Peter Collingbourne [Tue, 27 Aug 2013 22:09:06 +0000 (22:09 +0000)]
DataFlowSanitizer: Implement trampolines for function pointers passed to custom functions.

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

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

10 years ago[ms-inline asm] Support offsets after segment registers
David Majnemer [Tue, 27 Aug 2013 21:56:17 +0000 (21:56 +0000)]
[ms-inline asm] Support offsets after segment registers

Summary: MASM let's you do stuff like 'MOV FS:20, EAX' and 'MOV EAX, FS:20'

Reviewers: craig.topper, rnk

Reviewed By: rnk

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

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

10 years agoGiven target assembler parsers a chance to handle variant expressions
Joerg Sonnenberger [Tue, 27 Aug 2013 20:23:19 +0000 (20:23 +0000)]
Given target assembler parsers a chance to handle variant expressions
first. Use this to turn the PPC modifiers into PPC specific expressions,
allowing them to work on constants.

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

10 years agoChanged comment
Jack Carter [Tue, 27 Aug 2013 19:45:28 +0000 (19:45 +0000)]
Changed comment

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

10 years agoTranslate ENABLE_CLANG_{ARCMT,REWRITER,STATIC_ANALYZER} when generating
Roman Divacky [Tue, 27 Aug 2013 19:25:01 +0000 (19:25 +0000)]
Translate ENABLE_CLANG_{ARCMT,REWRITER,STATIC_ANALYZER} when generating
lit.site.cfg.

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