platform/upstream/llvm.git
11 years agoclang-replace: Exclude test-time deps from LIT test suite
Edwin Vane [Thu, 22 Aug 2013 15:04:34 +0000 (15:04 +0000)]
clang-replace: Exclude test-time deps from LIT test suite

Subdirectories of test/clang-replace contain test-time dependencies and not
more LIT tests. Tell LIT to ignore these directories from the test suite.

llvm-svn: 189019

11 years agoclang-format: Add column layout formatting for braced lists
Daniel Jasper [Thu, 22 Aug 2013 15:00:41 +0000 (15:00 +0000)]
clang-format: Add column layout formatting for braced lists

With this patch, braced lists (with more than 3 elements are formatted in a
column layout if possible). E.g.:

  static const uint16_t CallerSavedRegs64Bit[] = {
    X86::RAX, X86::RDX, X86::RCX, X86::RSI, X86::RDI,
    X86::R8,  X86::R9,  X86::R10, X86::R11, 0
  };

Required other changes:
- FormatTokens can now have a special role that contains extra data and can do
  special formattings. A comma separated list is currently the only
  implementation.
- Move penalty calculation entirely into ContinuationIndenter (there was a last
  piece still in UnwrappedLineFormatter).

Review: http://llvm-reviews.chandlerc.com/D1457
llvm-svn: 189018

11 years agocpp11-migrate: Add a class to support include directives modifications
Guillaume Papin [Thu, 22 Aug 2013 14:49:07 +0000 (14:49 +0000)]
cpp11-migrate: Add a class to support include directives modifications

The IncludeDirectives class helps with detecting and modifying #include
directives. For now it allows the users to add angled-includes in a source file.
This is a start for this class that will evolve in the future to add more
functionality.

This should fix the reverted commit r188791 (buildbot failures on Windows).

llvm-svn: 189017

11 years ago[lsan] Add a regression test for building C code.
Sergey Matveev [Thu, 22 Aug 2013 14:48:44 +0000 (14:48 +0000)]
[lsan] Add a regression test for building C code.

llvm-svn: 189016

11 years ago[sanitizer] Fix build when scanf interceptors are enabled, and __isoc99_*scanf are...
Evgeniy Stepanov [Thu, 22 Aug 2013 13:59:15 +0000 (13:59 +0000)]
[sanitizer] Fix build when scanf interceptors are enabled, and __isoc99_*scanf are not.

Fixes PR16916.

llvm-svn: 189015

11 years agoclang-replace: Write merged changes to disk
Edwin Vane [Thu, 22 Aug 2013 13:40:32 +0000 (13:40 +0000)]
clang-replace: Write merged changes to disk

Functionality for clang-replace completed with the addition of the ability to
write merged replacements to disk.

Test added.

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

llvm-svn: 189014

11 years agoDebugInfo: Remove explicit declaration-emissiong handling now that we have a more...
David Blaikie [Thu, 22 Aug 2013 13:36:01 +0000 (13:36 +0000)]
DebugInfo: Remove explicit declaration-emissiong handling now that we have a more principled approach (the 'requires complete type' callback)

No functionality change intended.

llvm-svn: 189013

11 years ago[lsan] Add a stress test.
Sergey Matveev [Thu, 22 Aug 2013 13:32:10 +0000 (13:32 +0000)]
[lsan] Add a stress test.

llvm-svn: 189012

11 years ago[lsan] Follow-up to r189010 - do the same in Makefile build.
Sergey Matveev [Thu, 22 Aug 2013 13:30:01 +0000 (13:30 +0000)]
[lsan] Follow-up to r189010 - do the same in Makefile build.

llvm-svn: 189011

11 years ago[lsan] Build standalone LSan with -fno-rtti.
Sergey Matveev [Thu, 22 Aug 2013 13:23:22 +0000 (13:23 +0000)]
[lsan] Build standalone LSan with -fno-rtti.

Fix issue where C code could not be built with -fsanitize=leak.

llvm-svn: 189010

11 years agoFix ARM vcvt encoding when the number of fractional bits is zero.
Mihai Popa [Thu, 22 Aug 2013 13:16:07 +0000 (13:16 +0000)]
Fix ARM vcvt encoding when the number of fractional bits is zero.

The instruction to convert between floating point and fixed point representations
takes an immediate operand for the number of fractional bits of the fixed point
value. ARMARM specifies that when that number of bits is zero, the assembler
should encode floating point/integer conversion instructions.

This patch adds the necessary instruction aliases to achieve this behaviour.

llvm-svn: 189009

11 years agoIntroducing new tool clang-replace
Edwin Vane [Thu, 22 Aug 2013 13:07:14 +0000 (13:07 +0000)]
Introducing new tool clang-replace

Introducing new tool 'clang-replace' that finds files containing
serialized Replacements and applies those changes after deduplication
and detecting conflicts.

Currently the tool does not apply changes. It stops just after the
deduplication and conflict report phase. Forthcoming patches will
complete functionality.

Both build systems updated for new tool.

Includes a conflict test case.

clang-replace added to Doxygen build.

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

llvm-svn: 189008

11 years agoTeach the SLP vectorizer the correct way to check for consecutive access
Chandler Carruth [Thu, 22 Aug 2013 12:45:17 +0000 (12:45 +0000)]
Teach the SLP vectorizer the correct way to check for consecutive access
using GEPs. Previously, it used a number of different heuristics for
analyzing the GEPs. Several of these were conservatively correct, but
failed to fall back to SCEV even when SCEV might have given a reasonable
answer. One was simply incorrect in how it was formulated.

There was good code already to recursively evaluate the constant offsets
in GEPs, look through pointer casts, etc. I gathered this into a form
code like the SLP code can use in a previous commit, which allows all of
this code to become quite simple.

There is some performance (compile time) concern here at first glance as
we're directly attempting to walk both pointers constant GEP chains.
However, a couple of thoughts:

1) The very common cases where there is a dynamic pointer, and a second
   pointer at a constant offset (usually a stride) from it, this code
   will actually not do any unnecessary work.

2) InstCombine and other passes work very hard to collapse constant
   GEPs, so it will be rare that we iterate here for a long time.

That said, if there remain performance problems here, there are some
obvious things that can improve the situation immensely. Doing
a vectorizer-pass-wide memoizer for each individual layer of pointer
values, their base values, and the constant offset is likely to be able
to completely remove redundant work and strictly limit the scaling of
the work to scrape these GEPs. Since this optimization was not done on
the prior version (which would still benefit from it), I've not done it
here. But if folks have benchmarks that slow down it should be straight
forward for them to add.

I've added a test case, but I'm not really confident of the amount of
testing done for different access patterns, strides, and pointer
manipulation.

llvm-svn: 189007

11 years ago[ARM] Constrain some register classes in EmitAtomicBinary64 so that
Joey Gouly [Thu, 22 Aug 2013 12:19:24 +0000 (12:19 +0000)]
[ARM] Constrain some register classes in EmitAtomicBinary64 so that
we pass these tests with -verify-machineinstrs.

llvm-svn: 189006

11 years agoAVX-512: Added masked SHIFT commands, more encoding tests
Elena Demikhovsky [Thu, 22 Aug 2013 12:18:28 +0000 (12:18 +0000)]
AVX-512: Added masked SHIFT commands, more encoding tests

llvm-svn: 189005

11 years agoRevert "Implement a rudimentary form of generic lambdas."
Manuel Klimek [Thu, 22 Aug 2013 12:12:24 +0000 (12:12 +0000)]
Revert "Implement a rudimentary form of generic lambdas."

This reverts commit 606f5d7a99b11957e057e4cd1f55f931f66a42c7.

llvm-svn: 189004

11 years agoRevert "Remove some unused variables identified by Juergen Ributzka *I need to turn...
Manuel Klimek [Thu, 22 Aug 2013 12:12:05 +0000 (12:12 +0000)]
Revert "Remove some unused variables identified by Juergen Ributzka *I need to turn on this warning in Visual C++ - sorry!*"

This reverts commit d01d0b63d87ac465f15ce1d6b56bf3faf4525769.

llvm-svn: 189003

11 years agoFix ARM FastISel PIC function call.
Logan Chien [Thu, 22 Aug 2013 12:08:04 +0000 (12:08 +0000)]
Fix ARM FastISel PIC function call.

The function call to external function should come with PLT relocation
type if the PIC relocation model is used.

llvm-svn: 189002

11 years agoSuppress MemoryBufferTest.cpp on win32 for now. Investigating.
NAKAMURA Takumi [Thu, 22 Aug 2013 12:00:44 +0000 (12:00 +0000)]
Suppress MemoryBufferTest.cpp on win32 for now. Investigating.

llvm-svn: 189001

11 years agoAdd a new helper method to Value to strip in-bounds constant offsets of
Chandler Carruth [Thu, 22 Aug 2013 11:25:11 +0000 (11:25 +0000)]
Add a new helper method to Value to strip in-bounds constant offsets of
pointers, but accumulate the offset into an APInt in the process of
stripping it.

This is a pretty handy thing to have, such as when trying to determine
if two pointers are at some constant relative offset. I'll be committing
a patch shortly to use it for exactly that purpose.

llvm-svn: 189000

11 years agoMemoryBufferTest.cpp: Tweak offset corresponding to the case that PageSize is greater...
NAKAMURA Takumi [Thu, 22 Aug 2013 10:23:58 +0000 (10:23 +0000)]
MemoryBufferTest.cpp: Tweak offset corresponding to the case that PageSize is greater than 8000.

PageSize, aka AllocationGranularity, is 65536 on Win32 (and Cygwin).

llvm-svn: 188999

11 years agoMemoryBuffer.cpp: Consider if PageSize were not 4096 in shouldUseMmap(). Follow-up...
NAKAMURA Takumi [Thu, 22 Aug 2013 10:23:52 +0000 (10:23 +0000)]
MemoryBuffer.cpp: Consider if PageSize were not 4096 in shouldUseMmap(). Follow-up to r188903.

The AllocationGranularity can be 65536 on Win32, even on Cygwin.

llvm-svn: 188998

11 years agoClean up the doxygen formatting of the comments on the strip* methods on
Chandler Carruth [Thu, 22 Aug 2013 10:12:18 +0000 (10:12 +0000)]
Clean up the doxygen formatting of the comments on the strip* methods on
Value. These methods probably don't belong here, and I'm discussing
moving the lot of them to a better home, but for now I'm about to extend
their functionality and wanted to tidy them up first.

llvm-svn: 188997

11 years agoTypo.
David Majnemer [Thu, 22 Aug 2013 10:04:41 +0000 (10:04 +0000)]
Typo.

llvm-svn: 188996

11 years agoARM: use TableGen patterns to select CMOV operations.
Tim Northover [Thu, 22 Aug 2013 09:57:11 +0000 (09:57 +0000)]
ARM: use TableGen patterns to select CMOV operations.

Back in the mists of time (2008), it seems TableGen couldn't handle the
patterns necessary to match ARM's CMOV node that we convert select operations
to, so we wrote a lot of fairly hairy C++ to do it for us.

TableGen can deal with it now: there were a few minor differences to CodeGen
(see tests), but nothing obviously worse that I could see, so we should
probably address anything that *does* come up in a localised manner.

llvm-svn: 188995

11 years agoconst'ify Sema::ActOnCXXTryBlock by
Robert Wilhelm [Thu, 22 Aug 2013 09:20:03 +0000 (09:20 +0000)]
const'ify Sema::ActOnCXXTryBlock by
changing Parameter from MutableArrayRef to
ArrayRef.
No functionality change intended.

llvm-svn: 188994

11 years agognu-flags.c test: relax the check a bit
Dmitri Gribenko [Thu, 22 Aug 2013 08:13:43 +0000 (08:13 +0000)]
gnu-flags.c test: relax the check a bit

This tests warning flags, so no need to test for specific alignment which is
platform-dependent.

llvm-svn: 188993

11 years agoAnalysis: Make %I in printf more reasonable, add more tests
David Majnemer [Thu, 22 Aug 2013 07:53:21 +0000 (07:53 +0000)]
Analysis: Make %I in printf more reasonable, add more tests

llvm-svn: 188992

11 years agoConstify more uses of ASTContext&. No functional change.
Craig Topper [Thu, 22 Aug 2013 07:09:37 +0000 (07:09 +0000)]
Constify more uses of ASTContext&. No functional change.

llvm-svn: 188991

11 years agoARM: respect tied 64-bit inlineasm operands when printing
Tim Northover [Thu, 22 Aug 2013 06:51:04 +0000 (06:51 +0000)]
ARM: respect tied 64-bit inlineasm operands when printing

The code for 'Q' and 'R' operand modifiers needs to look through tied
operands to discover the register class.

llvm-svn: 188990

11 years agoConstify some more ASTContext& uses.
Craig Topper [Thu, 22 Aug 2013 06:02:26 +0000 (06:02 +0000)]
Constify some more ASTContext& uses.

llvm-svn: 188989

11 years ago[lld][test] fix -Wreturn-type error
Shankar Easwaran [Thu, 22 Aug 2013 05:44:08 +0000 (05:44 +0000)]
[lld][test] fix -Wreturn-type error

llvm-svn: 188988

11 years ago[stackprotector] When finding the split point to splice off the end of a parentmbb...
Michael Gottesman [Thu, 22 Aug 2013 05:40:50 +0000 (05:40 +0000)]
[stackprotector] When finding the split point to splice off the end of a parentmbb into a successmbb, include any DBG_VALUE MI.

Fix for PR16954.

llvm-svn: 188987

11 years agoConstify the ASTContext& passed to Stmt creation functions. Also constify the context...
Craig Topper [Thu, 22 Aug 2013 05:28:54 +0000 (05:28 +0000)]
Constify the ASTContext& passed to Stmt creation functions. Also constify the context in couple other functions that are called from creation functions.

llvm-svn: 188986

11 years agoConstify the ASTContext& passed to Expr creation functions. Also constify the context...
Craig Topper [Thu, 22 Aug 2013 04:58:56 +0000 (04:58 +0000)]
Constify the ASTContext& passed to Expr creation functions. Also constify the context in couple other functions that are called from creation functions.

llvm-svn: 188985

11 years agoAdd test cases for avx512 feature flags. Fix typo in avx512pf options.
Craig Topper [Thu, 22 Aug 2013 04:32:55 +0000 (04:32 +0000)]
Add test cases for avx512 feature flags. Fix typo in avx512pf options.

llvm-svn: 188984

11 years agofix build failures on platforms that use -Wunused-private-variable for builds
Shankar Easwaran [Thu, 22 Aug 2013 04:24:57 +0000 (04:24 +0000)]
fix build failures on platforms that use -Wunused-private-variable for builds

llvm-svn: 188983

11 years ago[lld][Driver] Fix the unit test for lld gnu flavor
Shankar Easwaran [Thu, 22 Aug 2013 03:18:01 +0000 (03:18 +0000)]
[lld][Driver] Fix the unit test for lld gnu flavor

llvm-svn: 188982

11 years ago[lld][Hexagon] Enable Hexagon sdata sorting test
Shankar Easwaran [Thu, 22 Aug 2013 03:02:17 +0000 (03:02 +0000)]
[lld][Hexagon] Enable Hexagon sdata sorting test

llvm-svn: 188981

11 years agoTeach LoopVectorize about address space sizes
Matt Arsenault [Thu, 22 Aug 2013 02:42:55 +0000 (02:42 +0000)]
Teach LoopVectorize about address space sizes

llvm-svn: 188980

11 years agoRemove some unused variables identified by Juergen Ributzka *I need to turn on this...
Faisal Vali [Thu, 22 Aug 2013 02:13:38 +0000 (02:13 +0000)]
Remove some unused variables identified by Juergen Ributzka *I need to turn on this warning in Visual C++ - sorry!*

llvm-svn: 188979

11 years ago[lld] Fix unused private fields for fixing build failure on darwin
Shankar Easwaran [Thu, 22 Aug 2013 01:49:16 +0000 (01:49 +0000)]
[lld] Fix unused private fields for fixing build failure on darwin

llvm-svn: 188978

11 years agoImplement a rudimentary form of generic lambdas.
Faisal Vali [Thu, 22 Aug 2013 01:49:11 +0000 (01:49 +0000)]
Implement a rudimentary form of generic lambdas.

Specifically, the following features are not included in this commit:
  - any sort of capturing within generic lambdas
  - nested lambdas
  - conversion operator for captureless lambdas
  - ensuring all visitors are generic lambda aware

As an example of what compiles:

template <class F1, class F2>
struct overload : F1, F2 {
    using F1::operator();
    using F2::operator();
    overload(F1 f1, F2 f2) : F1(f1), F2(f2) { }
  };

  auto Recursive = [](auto Self, auto h, auto ... rest) {
    return 1 + Self(Self, rest...);
  };
  auto Base = [](auto Self, auto h) {
      return 1;
  };
  overload<decltype(Base), decltype(Recursive)> O(Base, Recursive);
  int num_params =  O(O, 5, 3, "abc", 3.14, 'a');

Please see attached tests for more examples.

Some implementation notes:

  - Add a new Declarator context => LambdaExprParameterContext to
    clang::Declarator to allow the use of 'auto' in declaring generic
    lambda parameters

  - Augment AutoType's constructor (similar to how variadic
    template-type-parameters ala TemplateTypeParmDecl are implemented) to
    accept an IsParameterPack to encode a generic lambda parameter pack.

  - Add various helpers to CXXRecordDecl to facilitate identifying
    and querying a closure class

  - LambdaScopeInfo (which maintains the current lambda's Sema state)
    was augmented to house the current depth of the template being
    parsed (id est the Parser calls Sema::RecordParsingTemplateParameterDepth)
    so that Sema::ActOnLambdaAutoParameter may use it to create the
    appropriate list of corresponding TemplateTypeParmDecl for each
    auto parameter identified within the generic lambda (also stored
    within the current LambdaScopeInfo).  Additionally,
    a TemplateParameterList data-member was added to hold the invented
    TemplateParameterList AST node which will be much more useful
    once we teach TreeTransform how to transform generic lambdas.

  - SemaLambda.h was added to hold some common lambda utility
    functions (this file is likely to grow ...)

  - Teach Sema::ActOnStartOfFunctionDef to check whether it
    is being called to instantiate a generic lambda's call
    operator, and if so, push an appropriately prepared
    LambdaScopeInfo object on the stack.

  - Teach Sema::ActOnStartOfLambdaDefinition to set the
    return type of a lambda without a trailing return type
    to 'auto' in C++1y mode, and teach the return type
    deduction machinery in SemaStmt.cpp to process either
    C++11 and C++14 lambda's correctly depending on the flag.

  - various tests were added - but much more will be needed.

A greatful thanks to all reviewers including Eli Friedman,
James Dennett and the ever illuminating Richard Smith.  And
yet I am certain that I have allowed unidentified bugs to creep in;
bugs, that I will do my best to slay, once identified!

Thanks!

llvm-svn: 188977

11 years agoRemove llvm-lit from the cmake install target.
Hans Wennborg [Thu, 22 Aug 2013 01:34:09 +0000 (01:34 +0000)]
Remove llvm-lit from the cmake install target.

Since it's an llvm-internal tool, we shouldn't install it.

llvm-svn: 188976

11 years agoAdd a constexpr functionality test for static data member templates.
Larisse Voufo [Thu, 22 Aug 2013 01:05:27 +0000 (01:05 +0000)]
Add a constexpr functionality test for static data member templates.

llvm-svn: 188975

11 years agoRefactor for clarity and simplicity.
Larisse Voufo [Thu, 22 Aug 2013 00:59:14 +0000 (00:59 +0000)]
Refactor for clarity and simplicity.

llvm-svn: 188974

11 years agoRevert the change that was done to test commit access.
Virgile Bello [Thu, 22 Aug 2013 00:56:22 +0000 (00:56 +0000)]
Revert the change that was done to test commit access.

llvm-svn: 188973

11 years agoTest commit access.
Virgile Bello [Thu, 22 Aug 2013 00:54:36 +0000 (00:54 +0000)]
Test commit access.

llvm-svn: 188972

11 years agoFileCheck-ize tests.
Bill Wendling [Thu, 22 Aug 2013 00:51:19 +0000 (00:51 +0000)]
FileCheck-ize tests.

llvm-svn: 188971

11 years agoAdjust for r188968.
Eli Friedman [Thu, 22 Aug 2013 00:48:18 +0000 (00:48 +0000)]
Adjust for r188968.

llvm-svn: 188970

11 years agoImprove support for static data member templates. This revision still has at least...
Larisse Voufo [Thu, 22 Aug 2013 00:28:27 +0000 (00:28 +0000)]
Improve support for static data member templates. This revision still has at least one bug, as it does not respect the variable template specialization hierarchy well.

llvm-svn: 188969

11 years agoSplit isFromMainFile into two functions.
Eli Friedman [Thu, 22 Aug 2013 00:27:10 +0000 (00:27 +0000)]
Split isFromMainFile into two functions.

Basically, isInMainFile considers line markers, and isWrittenInMainFile
doesn't.  Distinguishing between the two is useful when dealing with
files which are preprocessed files or rewritten with -frewrite-includes
(so we don't, for example, print useless warnings).

llvm-svn: 188968

11 years agoARM: R9 is not safe to use for tcGPR.
Jim Grosbach [Thu, 22 Aug 2013 00:14:24 +0000 (00:14 +0000)]
ARM: R9 is not safe to use for tcGPR.

Indirect tail-calls shouldn't use R9 for the branch destination, as
it's not reliably a call-clobbered register.

rdar://14793425

llvm-svn: 188967

11 years agoremove trailing whitespace
Shankar Easwaran [Thu, 22 Aug 2013 00:08:25 +0000 (00:08 +0000)]
remove trailing whitespace

llvm-svn: 188965

11 years agoXFAIL 3 tests on darwin 11-12. The tests have recently been modified, are correct...
Howard Hinnant [Thu, 22 Aug 2013 00:04:22 +0000 (00:04 +0000)]
XFAIL 3 tests on darwin 11-12.  The tests have recently been modified, are correct, and pass with an updated libc++.dylib

llvm-svn: 188964

11 years ago[lld][Darwin] fixing an accidentally removed change
Shankar Easwaran [Wed, 21 Aug 2013 23:31:58 +0000 (23:31 +0000)]
[lld][Darwin] fixing an accidentally removed change

llvm-svn: 188963

11 years agoDebugInfo: Require only the declaration of types only used as parameter and return...
David Blaikie [Wed, 21 Aug 2013 23:23:07 +0000 (23:23 +0000)]
DebugInfo: Require only the declaration of types only used as parameter and return types

llvm-svn: 188962

11 years ago[lld] Fix win7 failure on adding InputGraph functionality
Shankar Easwaran [Wed, 21 Aug 2013 23:13:22 +0000 (23:13 +0000)]
[lld] Fix win7 failure on adding InputGraph functionality

llvm-svn: 188961

11 years ago[tests] Update to use lit's now-integrated XFAIL handling.
Daniel Dunbar [Wed, 21 Aug 2013 23:06:32 +0000 (23:06 +0000)]
[tests] Update to use lit's now-integrated XFAIL handling.

llvm-svn: 188960

11 years agoReduce sizeof(TemplateArgument) from 32 to 24.
Eli Friedman [Wed, 21 Aug 2013 23:05:56 +0000 (23:05 +0000)]
Reduce sizeof(TemplateArgument) from 32 to 24.

No intended functionality change.

llvm-svn: 188959

11 years agoadd InputGraph functionality
Shankar Easwaran [Wed, 21 Aug 2013 22:57:10 +0000 (22:57 +0000)]
add InputGraph functionality

llvm-svn: 188958

11 years agoFixed typo.
Michael Gottesman [Wed, 21 Aug 2013 22:53:54 +0000 (22:53 +0000)]
Fixed typo.

llvm-svn: 188957

11 years agoRemoved trailing whitespace.
Michael Gottesman [Wed, 21 Aug 2013 22:53:29 +0000 (22:53 +0000)]
Removed trailing whitespace.

llvm-svn: 188956

11 years agoFixing build errors from r188952
Andrew Kaylor [Wed, 21 Aug 2013 22:53:15 +0000 (22:53 +0000)]
Fixing build errors from r188952

llvm-svn: 188955

11 years agoIntroducing a temporary work-around for a register mapping problem with 32-bit Linux...
Andrew Kaylor [Wed, 21 Aug 2013 22:46:02 +0000 (22:46 +0000)]
Introducing a temporary work-around for a register mapping problem with 32-bit Linux targets.

llvm-svn: 188954

11 years agoSelectionDAG: Make sure stores are always added to the LegalizedNodes list
Tom Stellard [Wed, 21 Aug 2013 22:42:58 +0000 (22:42 +0000)]
SelectionDAG: Make sure stores are always added to the LegalizedNodes list

When truncated vector stores were being custom lowered in
VectorLegalizer::LegalizeOp(), the old (illegal) and new (legal) node pair
was not being added to LegalizedNodes list.  Instead of the legalized
result being passed to VectorLegalizer::TranslateLegalizeResult(),
the result was being passed back into VectorLegalizer::LegalizeOp(),
which ended up adding a (new, new) pair to the list instead.

This was causing an assertion failure when a custom lowered truncated
vector store was the last instruction a basic block and the VectorLegalizer
was unable to find it in the LegalizedNodes list when updating the
DAG root.

llvm-svn: 188953

11 years agoAdding separate cfa alignment check for Darwin and non-Darwin targets in 32-bit ABI.
Andrew Kaylor [Wed, 21 Aug 2013 22:40:46 +0000 (22:40 +0000)]
Adding separate cfa alignment check for Darwin and non-Darwin targets in 32-bit ABI.

llvm-svn: 188952

11 years ago[lit] Fix a couple lingering Py3 compat issues in ProgressBar.
Daniel Dunbar [Wed, 21 Aug 2013 22:26:47 +0000 (22:26 +0000)]
[lit] Fix a couple lingering Py3 compat issues in ProgressBar.

llvm-svn: 188951

11 years ago[tests] Update fma3 check to work with Py3.
Daniel Dunbar [Wed, 21 Aug 2013 22:26:44 +0000 (22:26 +0000)]
[tests] Update fma3 check to work with Py3.

llvm-svn: 188950

11 years ago[lit] Lift XFAIL handling to core infrastructure.
Daniel Dunbar [Wed, 21 Aug 2013 22:26:42 +0000 (22:26 +0000)]
[lit] Lift XFAIL handling to core infrastructure.

llvm-svn: 188949

11 years ago[lit] Allow formats to return lit.Test.Result instances directly.
Daniel Dunbar [Wed, 21 Aug 2013 22:26:40 +0000 (22:26 +0000)]
[lit] Allow formats to return lit.Test.Result instances directly.

llvm-svn: 188948

11 years ago[lit] Factor out a separate Test.Result() object.
Daniel Dunbar [Wed, 21 Aug 2013 22:26:37 +0000 (22:26 +0000)]
[lit] Factor out a separate Test.Result() object.

llvm-svn: 188947

11 years ago[lit] Simplify --time-tests code.
Daniel Dunbar [Wed, 21 Aug 2013 22:26:34 +0000 (22:26 +0000)]
[lit] Simplify --time-tests code.

llvm-svn: 188946

11 years ago[lit] Extract TestFormat base class, for future use.
Daniel Dunbar [Wed, 21 Aug 2013 22:26:26 +0000 (22:26 +0000)]
[lit] Extract TestFormat base class, for future use.

llvm-svn: 188945

11 years agoTBAA: remove !tbaa from testing cases when they are not needed.
Manman Ren [Wed, 21 Aug 2013 22:20:53 +0000 (22:20 +0000)]
TBAA: remove !tbaa from testing cases when they are not needed.

This will make it easier to turn on struct-path aware TBAA since the metadata
format will change.

llvm-svn: 188944

11 years agoAdding a document to describe the MCJIT execution engine implementation.
Andrew Kaylor [Wed, 21 Aug 2013 22:15:09 +0000 (22:15 +0000)]
Adding a document to describe the MCJIT execution engine implementation.

llvm-svn: 188943

11 years agoR600: Remove unnecessary casts
Tom Stellard [Wed, 21 Aug 2013 22:14:17 +0000 (22:14 +0000)]
R600: Remove unnecessary casts

Spotted by Bill Wendling.

llvm-svn: 188942

11 years agoNo functionality change.
Yunzhong Gao [Wed, 21 Aug 2013 22:11:15 +0000 (22:11 +0000)]
No functionality change.
Replace "(255 & value)" with "(0xFF & value)" to improve clarity.

llvm-svn: 188941

11 years agoUpdated the consumed analysis warnings to use a more standardized diagnostic.
Aaron Ballman [Wed, 21 Aug 2013 22:07:20 +0000 (22:07 +0000)]
Updated the consumed analysis warnings to use a more standardized diagnostic.

Patch thanks to Christian Wailes!

llvm-svn: 188940

11 years agoMove -mfpmath handling to -cc1 and implement it for x86.
Rafael Espindola [Wed, 21 Aug 2013 21:59:03 +0000 (21:59 +0000)]
Move -mfpmath handling to -cc1 and implement it for x86.

The original idea was to implement it all on the driver, but to do that the
driver needs to know the sse level and to do that it has to know the default
features of a cpu.

Benjamin Kramer pointed out that if one day we decide to implement support for
' __attribute__ ((__target__ ("arch=core2")))', then the frontend needs to
keep its knowledge of default features of a cpu.

To avoid duplicating which part of clang handles default cpu features,
it is probably better to handle -mfpmath in the frontend.

For ARM this patch is just a small improvement. Instead of a cpu list, we
check if neon is enabled, which allows us to reject things like

-mcpu=cortex-a9 -mfpu=vfp -mfpmath=neon

For X86, since LLVM doesn't support an independent ssefp feature, we just
make sure the selected -mfpmath matches the sse level.

llvm-svn: 188939

11 years agoAnalysis: Add support for MS specific printf format specifiers
David Majnemer [Wed, 21 Aug 2013 21:54:46 +0000 (21:54 +0000)]
Analysis: Add support for MS specific printf format specifiers

Summary: Adds support for %I, %I32 and %I64.

Reviewers: hans, jordan_rose, rnk, majnemer

Reviewed By: majnemer

CC: cfe-commits, cdavis5x
Differential Revision: http://llvm-reviews.chandlerc.com/D1456

llvm-svn: 188937

11 years agoTeach BaseIndexOffset::match to identify base pointers in loops.
Juergen Ributzka [Wed, 21 Aug 2013 21:53:38 +0000 (21:53 +0000)]
Teach BaseIndexOffset::match to identify base pointers in loops.

The small utility function that pattern matches Base + Index +
Offset patterns for loads and stores fails to recognize the base
pointer for loads/stores from/into an array at offset 0 inside a
loop. As a result DAGCombiner::MergeConsecutiveStores was not able
to merge all stores.

This commit fixes the issue by adding an additional pattern match
and also a test case.

Reviewer: Nadav
llvm-svn: 188936

11 years agoADT/Triple: Helper to determine if we are targeting the Windows CRT
David Majnemer [Wed, 21 Aug 2013 21:53:33 +0000 (21:53 +0000)]
ADT/Triple: Helper to determine if we are targeting the Windows CRT

Summary:
This support will be utilized in things like clang to help check printf
format specifiers that are only valid when using the VSCRT.

Reviewers: rnk, asl, chandlerc

Reviewed By: chandlerc

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

llvm-svn: 188935

11 years agoRemoved unnecessary asserts.
Aaron Ballman [Wed, 21 Aug 2013 21:38:46 +0000 (21:38 +0000)]
Removed unnecessary asserts.

Patch thanks to Christian Wailes!

llvm-svn: 188934

11 years agoBasic unit tests for PointerUnion
David Blaikie [Wed, 21 Aug 2013 21:30:23 +0000 (21:30 +0000)]
Basic unit tests for PointerUnion

llvm-svn: 188933

11 years agoReorder headers according to lint.
Bill Wendling [Wed, 21 Aug 2013 21:14:19 +0000 (21:14 +0000)]
Reorder headers according to lint.

llvm-svn: 188932

11 years agoTBAA: add testing case to check typedef can alias.
Manman Ren [Wed, 21 Aug 2013 21:00:10 +0000 (21:00 +0000)]
TBAA: add testing case to check typedef can alias.

llvm-svn: 188931

11 years agoDon't use mangleCXXRTTIName in TBAA for C code.
Manman Ren [Wed, 21 Aug 2013 20:58:45 +0000 (20:58 +0000)]
Don't use mangleCXXRTTIName in TBAA for C code.

With r185721, calling mangleCXXRTTIName on C code will cause crashes.
This commit fixes crashes on C testing cases when turning on struct-path TBAA.

For C code, we simply use the Decl name without the context. This can
cause two different structs having the same name, and may cause inaccurate but
conservative alias results.

llvm-svn: 188930

11 years agoUpdate testing case to use FileCheck instead of grep.
Manman Ren [Wed, 21 Aug 2013 20:53:05 +0000 (20:53 +0000)]
Update testing case to use FileCheck instead of grep.

llvm-svn: 188929

11 years agoRemove use of forbidden 'iostream' header.
Bill Wendling [Wed, 21 Aug 2013 20:36:42 +0000 (20:36 +0000)]
Remove use of forbidden 'iostream' header.

Also obsessively reorder the headers to be in something closer to alphabetical order.

llvm-svn: 188928

11 years agoAdd missing ']'.
Bill Wendling [Wed, 21 Aug 2013 20:12:27 +0000 (20:12 +0000)]
Add missing ']'.

llvm-svn: 188927

11 years agoTeach InstCombine about address spaces
Matt Arsenault [Wed, 21 Aug 2013 19:53:10 +0000 (19:53 +0000)]
Teach InstCombine about address spaces

llvm-svn: 188926

11 years agoMC CFG: Remap enough for data too, analoguous to r188873.
Ahmed Bougacha [Wed, 21 Aug 2013 19:40:28 +0000 (19:40 +0000)]
MC CFG: Remap enough for data too, analoguous to r188873.

llvm-svn: 188925

11 years agoStyle cleanup following David's review for r188876.
Ahmed Bougacha [Wed, 21 Aug 2013 19:40:25 +0000 (19:40 +0000)]
Style cleanup following David's review for r188876.

llvm-svn: 188924

11 years agoAdd testcase for r188873: MCTextAtom boundaries.
Ahmed Bougacha [Wed, 21 Aug 2013 19:40:22 +0000 (19:40 +0000)]
Add testcase for r188873: MCTextAtom boundaries.

Check that they are correctly computed if the last instruction is
larger than 1 byte.

llvm-svn: 188923

11 years agoObjectibeC migrator. Annotate cf_consumed arguments,
Fariborz Jahanian [Wed, 21 Aug 2013 19:37:47 +0000 (19:37 +0000)]
ObjectibeC migrator. Annotate cf_consumed arguments,
as reported by static analyer API with CF_CONSUMED.

llvm-svn: 188922

11 years ago[CMake] Automatically pick up subdirectories in llvm/tools as 'external projects...
Argyrios Kyrtzidis [Wed, 21 Aug 2013 19:13:44 +0000 (19:13 +0000)]
[CMake] Automatically pick up subdirectories in llvm/tools as 'external projects' if they contain a 'CMakeLists.txt' file.

Allow CMake to pick up external projects in llvm/tools without the need to modify the "llvm/tools/CMakeLists.txt" file.
This makes it easier to work with projects that live in other repositories, without needing to specify each one in "llvm/tools/CMakeLists.txt".

llvm-svn: 188921

11 years agoFix the end sourcelocation of the call expression in a member access when
Nick Lewycky [Wed, 21 Aug 2013 19:09:44 +0000 (19:09 +0000)]
Fix the end sourcelocation of the call expression in a member access when
recovering by adding empty parenthesis. Fixes PR16676!

llvm-svn: 188920

11 years agoAdd test for bitcast array ptrs with address spaces
Matt Arsenault [Wed, 21 Aug 2013 19:09:28 +0000 (19:09 +0000)]
Add test for bitcast array ptrs with address spaces

llvm-svn: 188919

11 years agoRevert r188863 which could propose wrong fixits for multibyte character literals.
Nick Lewycky [Wed, 21 Aug 2013 18:57:51 +0000 (18:57 +0000)]
Revert r188863 which could propose wrong fixits for multibyte character literals.

llvm-svn: 188918