platform/upstream/llvm.git
11 years agoRevise -Wnewline-eof test per feedback from Dmitri.
Jordan Rose [Fri, 23 Aug 2013 16:12:49 +0000 (16:12 +0000)]
Revise -Wnewline-eof test per feedback from Dmitri.

llvm-svn: 189113

11 years agoUse pop_back_val() instead of both back() and pop_back().
Robert Wilhelm [Fri, 23 Aug 2013 16:11:15 +0000 (16:11 +0000)]
Use pop_back_val() instead of both back() and pop_back().
No functionality change intended.

llvm-svn: 189112

11 years agoChecking commit access; added one space
Jim Cownie [Fri, 23 Aug 2013 15:51:37 +0000 (15:51 +0000)]
Checking commit access; added one space

llvm-svn: 189111

11 years agoRespect -Wnewline-eof even in C++11 mode.
Jordan Rose [Fri, 23 Aug 2013 15:42:01 +0000 (15:42 +0000)]
Respect -Wnewline-eof even in C++11 mode.

If the user has requested this warning, we should emit it, even if it's not
an extension in the current language mode. However, being an extension is
more important, so prefer the pedantic warning or the pedantic-compatibility
warning if those are enabled.

<rdar://problem/12922063>

llvm-svn: 189110

11 years ago[ARM] Fix another ARM FastISel -verify-machineinstrs issue.
Joey Gouly [Fri, 23 Aug 2013 15:20:56 +0000 (15:20 +0000)]
[ARM] Fix another ARM FastISel -verify-machineinstrs issue.

llvm-svn: 189109

11 years agoclang-format: Fix indentation relative to unary expressions.
Daniel Jasper [Fri, 23 Aug 2013 15:14:03 +0000 (15:14 +0000)]
clang-format: Fix indentation relative to unary expressions.

This should be done, only if we are still in the unary expression's
scope.

Before:
  bool aaaa = !aaaaaaaa(  // break
                   aaaaaaaaaaa);
  *aaaaaa = aaaaaaa( // break
       aaaaaaaaaaaaaaaa);

After:
  bool aaaa = !aaaaaaaa(  // break
                   aaaaaaaaaaa); // <- (unchanged)
  *aaaaaa = aaaaaaa( // break
      aaaaaaaaaaaaaaaa); // <- (no longer indented relative to "*")

llvm-svn: 189108

11 years agoMingW compilation (windows). Includes various refactoring to improve portability.
Virgile Bello [Fri, 23 Aug 2013 12:44:05 +0000 (12:44 +0000)]
MingW compilation (windows). Includes various refactoring to improve portability.

llvm-svn: 189107

11 years ago[mips][msa] Few MSA Builtins have side-effects. Added IntrNoMem to those that don't.
Daniel Sanders [Fri, 23 Aug 2013 12:21:25 +0000 (12:21 +0000)]
[mips][msa] Few MSA Builtins have side-effects. Added IntrNoMem to those that don't.

llvm-svn: 189106

11 years ago[msan] Extend VAArgTLSOverwrite test.
Evgeniy Stepanov [Fri, 23 Aug 2013 12:13:18 +0000 (12:13 +0000)]
[msan] Extend VAArgTLSOverwrite test.

This test now covers LLVM r189104.

llvm-svn: 189105

11 years ago[msan] Fix handling of va_arg overflow area on x86_64.
Evgeniy Stepanov [Fri, 23 Aug 2013 12:11:00 +0000 (12:11 +0000)]
[msan] Fix handling of va_arg overflow area on x86_64.

The code was erroneously reading overflow area shadow from the TLS slot,
bypassing the local copy. Reading shadow directly from TLS is wrong, because
it can be overwritten by a nested vararg call, if that happens before va_start.

llvm-svn: 189104

11 years ago[ARMv8] Add CodeGen for VMAXNM/VMINNM.
Joey Gouly [Fri, 23 Aug 2013 12:01:13 +0000 (12:01 +0000)]
[ARMv8] Add CodeGen for VMAXNM/VMINNM.

llvm-svn: 189103

11 years agoclang-format: Fix corner case for string splitting ..
Daniel Jasper [Fri, 23 Aug 2013 11:57:34 +0000 (11:57 +0000)]
clang-format: Fix corner case for string splitting ..

.. in conjunction with Style.AlwaysBreakBeforeMultilineStrings. Also,
simplify the implementation by handling newly split strings and already
split strings by the same code.

llvm-svn: 189102

11 years agoAdd function attribute 'optnone'.
Andrea Di Biagio [Fri, 23 Aug 2013 11:53:55 +0000 (11:53 +0000)]
Add function attribute 'optnone'.

This function attribute indicates that the function is not optimized
by any optimization or code generator passes with the
exception of interprocedural optimization passes.

llvm-svn: 189101

11 years ago[SystemZ] Add basic prefetch support
Richard Sandiford [Fri, 23 Aug 2013 11:36:42 +0000 (11:36 +0000)]
[SystemZ] Add basic prefetch support

Just the instructions and intrinsics for now.

llvm-svn: 189100

11 years ago[SystemZ] Try reversing comparisons whose first operand is in memory
Richard Sandiford [Fri, 23 Aug 2013 11:27:19 +0000 (11:27 +0000)]
[SystemZ] Try reversing comparisons whose first operand is in memory

This allows us to make more use of the many compare reg,mem instructions.

llvm-svn: 189099

11 years ago[SystemZ] Prefer LHI;ST... over LAY;MV...
Richard Sandiford [Fri, 23 Aug 2013 11:18:53 +0000 (11:18 +0000)]
[SystemZ] Prefer LHI;ST... over LAY;MV...

If we had a store of an integer to memory, and the integer and store size
were suitable for a form of MV..., we used MV... no matter what.  We could
then have sequences like:

    lay %r2, 0(%r3,%r4)
    mvi 0(%r2), 4

In these cases it seems better to force the constant into a register
and use a normal store:

    lhi %r2, 4
    stc %r2, 0(%r3, %r4)

since %r2 is more likely to be hoisted and is easier to rematerialize.

llvm-svn: 189098

11 years agoTurn MipsOptimizeMathLibCalls into a target-independent scalar transform
Richard Sandiford [Fri, 23 Aug 2013 10:27:02 +0000 (10:27 +0000)]
Turn MipsOptimizeMathLibCalls into a target-independent scalar transform

...so that it can be used for z too.  Most of the code is the same.
The only real change is to use TargetTransformInfo to test when a sqrt
instruction is available.

The pass is opt-in because at the moment it only handles sqrt.

llvm-svn: 189097

11 years agoARM: make sure ARM-mode pseudo-inst requires IsARM
Tim Northover [Fri, 23 Aug 2013 10:16:39 +0000 (10:16 +0000)]
ARM: make sure ARM-mode pseudo-inst requires IsARM

I'd forgotten that "Requires" blocks override rather than add to the
constraints, so my pseudo-instruction was being selected in Thumb mode leading
to nonsense instructions.

rdar://problem/14817358

llvm-svn: 189096

11 years ago[mips][msa] Split MSA128 regset into size-specific sets containing the same registers.
Daniel Sanders [Fri, 23 Aug 2013 10:10:13 +0000 (10:10 +0000)]
[mips][msa] Split MSA128 regset into size-specific sets containing the same registers.

llvm-svn: 189095

11 years agoclang-format: Handle trailing commas in column layout of braced list.
Daniel Jasper [Fri, 23 Aug 2013 10:05:49 +0000 (10:05 +0000)]
clang-format: Handle trailing commas in column layout of braced list.

Before, this was causing errors.

Also exit early in breakProtrudingToken() (before the expensive call to
SourceManager::getSpellingColumnNumber()). This makes formatting huge
(100k+-item) braced lists possible.

llvm-svn: 189094

11 years agocorrect test RUN parameters
Robert Lytton [Fri, 23 Aug 2013 09:27:44 +0000 (09:27 +0000)]
correct test RUN parameters

llvm-svn: 189093

11 years agoSlightly improve lint checker script and fix a few style issues
Alexey Samsonov [Fri, 23 Aug 2013 07:43:56 +0000 (07:43 +0000)]
Slightly improve lint checker script and fix a few style issues

llvm-svn: 189092

11 years ago80 cols
Alexey Samsonov [Fri, 23 Aug 2013 07:42:51 +0000 (07:42 +0000)]
80 cols

llvm-svn: 189091

11 years ago[analyzer] Refactor conditional expression evaluating code
Pavel Labath [Fri, 23 Aug 2013 07:19:22 +0000 (07:19 +0000)]
[analyzer] Refactor conditional expression evaluating code

Summary:
Instead of digging through the ExplodedGraph, to figure out which edge brought
us here, I compute the value of conditional expression by looking at the
sub-expression values.

To do this, I needed to change the liveness algorithm a bit -- now, the full
conditional expression also depends on all atomic sub-expressions, not only the
outermost ones.

Reviewers: jordan_rose

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

llvm-svn: 189090

11 years agoMake DWARFCompileUnit non-copyable
Alexey Samsonov [Fri, 23 Aug 2013 06:56:01 +0000 (06:56 +0000)]
Make DWARFCompileUnit non-copyable

Summary:
This is a part of D1164. DWARFCompileUnit is not that lightweight
to copy it around, and we want it to own corresponding .dwo compile unit
eventually.

Reviewers: echristo

Reviewed By: echristo

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

llvm-svn: 189089

11 years agoarc commit didn't add this because it wasn't in the patch...
David Majnemer [Fri, 23 Aug 2013 05:42:19 +0000 (05:42 +0000)]
arc commit didn't add this because it wasn't in the patch...

llvm-svn: 189088

11 years agoSema: Properly support Microsoft-mode template arguments
David Majnemer [Fri, 23 Aug 2013 05:39:39 +0000 (05:39 +0000)]
Sema: Properly support Microsoft-mode template arguments

Summary:
There were two things known to be wrong with our implementation of MSVC
mode template arguments:

- We didn't properly handle __uuidof/CXXUuidofExpr and skipped all type
  checking completely.
- We didn't allow for MSVC's extension of allowing certain constant
  "foldable" expressions from showing up in template arguments.
  They allow various casts dereference and address-of operations.
  We can make it more general as we find further peculiarities but this
  is the known extent.

Reviewers: rsmith, doug.gregor, rjmccall

Reviewed By: doug.gregor

CC: cfe-commits, rnk
Differential Revision: http://llvm-reviews.chandlerc.com/D1444

llvm-svn: 189087

11 years agolto/CMakeLists.txt: Cut the dep to intrinsics_gen. LTO doesn't depend on it and LTO_s...
NAKAMURA Takumi [Fri, 23 Aug 2013 02:51:13 +0000 (02:51 +0000)]
lto/CMakeLists.txt: Cut the dep to intrinsics_gen. LTO doesn't depend on it and LTO_static doesn't depend on anything.

llvm-svn: 189086

11 years agoUse register masks on SPARC call instructions.
Jakob Stoklund Olesen [Fri, 23 Aug 2013 02:33:47 +0000 (02:33 +0000)]
Use register masks on SPARC call instructions.

llvm-svn: 189085

11 years agoAdd an OtherPreserved field to the CalleeSaved TableGen class.
Jakob Stoklund Olesen [Fri, 23 Aug 2013 02:25:47 +0000 (02:25 +0000)]
Add an OtherPreserved field to the CalleeSaved TableGen class.

This field specifies registers that are preserved across function calls,
but that should not be included in the generates SaveList array.

This can be used ot generate regmasks for architectures that save
registers through other means, like SPARC's register windows.

llvm-svn: 189084

11 years agoReword a diagnostic to avoid a confusing implication that it might be talking
Richard Smith [Fri, 23 Aug 2013 02:16:48 +0000 (02:16 +0000)]
Reword a diagnostic to avoid a confusing implication that it might be talking
about a declaration within a return type.

llvm-svn: 189083

11 years agoAdd link to Darwin iOS arm ABI docs in ABIMacOSX_arm.cpp.
Jason Molenda [Fri, 23 Aug 2013 01:31:25 +0000 (01:31 +0000)]
Add link to Darwin iOS arm ABI docs in ABIMacOSX_arm.cpp.

llvm-svn: 189082

11 years ago[PR11606] ocaml bindings tests produce binaries in source dir
Daniel Dunbar [Fri, 23 Aug 2013 00:55:32 +0000 (00:55 +0000)]
[PR11606] ocaml bindings tests produce binaries in source dir

 - Workaround for ocamlopt producing outputs adjacent to its source inputs, by
   having the tests copy the inputs into temporary directories in the output
   paths before building.

 - Patch by edward-san.

llvm-svn: 189081

11 years agoMake sure that ClangExpressionDeclMap doesn't
Sean Callanan [Fri, 23 Aug 2013 00:36:14 +0000 (00:36 +0000)]
Make sure that ClangExpressionDeclMap doesn't
live beyont parsing.  This is important because
all the ClangASTImporter::Minions for a parser's
ASTContext are cleared when ClangExpressionDeclMap
is deleted.

This resolves many hard-to-reproduce crashes,
especially ones involving breakpoint conditions.

<rdar://problem/14775391>

llvm-svn: 189080

11 years agoFilecheckize some tests.
Michael Gottesman [Fri, 23 Aug 2013 00:23:28 +0000 (00:23 +0000)]
Filecheckize some tests.

llvm-svn: 189079

11 years agoUpdate StripDeadDebugInfo to use DebugInfoFinder so that it is no longer stale to...
Michael Gottesman [Fri, 23 Aug 2013 00:23:24 +0000 (00:23 +0000)]
Update StripDeadDebugInfo to use DebugInfoFinder so that it is no longer stale to the point of not working and more resilient to debug info changes.

The current version of StripDeadDebugInfo became stale and no longer actually
worked since it was expecting an older version of debug info.

This patch updates it to use DebugInfoFinder and the modern DebugInfo classes as
much as possible to make it more redundent to such changes. Additionally, the
only place where that was avoided (the code where we replace the old sets with
the new), I call verify on the DIContextUnit implying that if the format changes
and my live set changes no longer make sense an assert will be hit. In order to
ensure that that occurs I have included a test case.

The actual stripping of the dead debug info follows the same strategy as was
used before in this class: find the live set and replace the old set in the
given compile unit (which may contain dead global variables/functions) with the
new live one.

llvm-svn: 189078

11 years agoFix ABIMacOSX_arm::RegisterIsVolatile() so it identifies r12 as a volatile reg.
Jason Molenda [Thu, 22 Aug 2013 23:53:14 +0000 (23:53 +0000)]
Fix ABIMacOSX_arm::RegisterIsVolatile() so it identifies r12 as a volatile reg.

llvm-svn: 189077

11 years ago[stack protector] Work around an issue with the BMOVPCB_CALL instruction on ARM by...
Michael Gottesman [Thu, 22 Aug 2013 23:45:24 +0000 (23:45 +0000)]
[stack protector] Work around an issue with the BMOVPCB_CALL instruction on ARM by disabling does not return on __stack_chk_fail.

This is to fix the bots while I look to see if there is something I can do here.

rdar://14811848

llvm-svn: 189076

11 years agoRemove SequenceNumber from class/variable template partial specializations.
Richard Smith [Thu, 22 Aug 2013 23:27:37 +0000 (23:27 +0000)]
Remove SequenceNumber from class/variable template partial specializations.
This was only used to ensure that the traversal order was the same as the
insertion order, but that guarantee was already being provided by the use
of a FoldingSetVector.

llvm-svn: 189075

11 years agoSimplify the CreateFunctionEntryUnwindPlan () and CreateDefaultUnwindPlan()
Jason Molenda [Thu, 22 Aug 2013 23:13:43 +0000 (23:13 +0000)]
Simplify the CreateFunctionEntryUnwindPlan () and CreateDefaultUnwindPlan()
methods in the ABIs.  Specify the register numbering of the UnwindPlan
we're creating and use those only register numbers.

llvm-svn: 189074

11 years agoUpdate ABISysV_x86_64::CallFrameAddressIsValid() to check for
Jason Molenda [Thu, 22 Aug 2013 22:51:48 +0000 (22:51 +0000)]
Update ABISysV_x86_64::CallFrameAddressIsValid() to check for
16-byte alignment of stack frames.

llvm-svn: 189073

11 years agoObjectiveC migrator: builtin ObjectiveC types are not
Fariborz Jahanian [Thu, 22 Aug 2013 22:27:36 +0000 (22:27 +0000)]
ObjectiveC migrator: builtin ObjectiveC types are not
audited types.

llvm-svn: 189072

11 years agoObjectiveC migrator: some refactoring to reduce
Fariborz Jahanian [Thu, 22 Aug 2013 21:40:15 +0000 (21:40 +0000)]
ObjectiveC migrator: some refactoring to reduce
code size.

llvm-svn: 189070

11 years agoCheck for absence of the flag.
Bill Wendling [Thu, 22 Aug 2013 21:30:21 +0000 (21:30 +0000)]
Check for absence of the flag.

llvm-svn: 189069

11 years agoUpdate to remove the no-frame-pointer-elim-non-leaf flag if it was set to 'false'.
Bill Wendling [Thu, 22 Aug 2013 21:28:54 +0000 (21:28 +0000)]
Update to remove the no-frame-pointer-elim-non-leaf flag if it was set to 'false'.

llvm-svn: 189068

11 years agoRound plt entsize to addralign
Michael Sartain [Thu, 22 Aug 2013 21:25:53 +0000 (21:25 +0000)]
Round plt entsize to addralign

llvm-svn: 189066

11 years agoFix some tests. The 'false' version just omits the attribute altogether.
Bill Wendling [Thu, 22 Aug 2013 21:20:14 +0000 (21:20 +0000)]
Fix some tests. The 'false' version just omits the attribute altogether.

llvm-svn: 189065

11 years agoOnly add this attribute when it's set. If it's not there, the assumption is that...
Bill Wendling [Thu, 22 Aug 2013 21:16:51 +0000 (21:16 +0000)]
Only add this attribute when it's set. If it's not there, the assumption is that it's off.

llvm-svn: 189064

11 years agoCheck only if we have this attribute. If it's not an attribute, then it's assumed...
Bill Wendling [Thu, 22 Aug 2013 21:16:14 +0000 (21:16 +0000)]
Check only if we have this attribute. If it's not an attribute, then it's assumed false.

llvm-svn: 189063

11 years agoadd register name to UnwindLog error message
Michael Sartain [Thu, 22 Aug 2013 21:00:35 +0000 (21:00 +0000)]
add register name to UnwindLog error message

llvm-svn: 189062

11 years agoA clang::Type::Decayed type to kill compile warning
Michael Sartain [Thu, 22 Aug 2013 20:50:18 +0000 (20:50 +0000)]
A clang::Type::Decayed type to kill compile warning

llvm-svn: 189061

11 years agoFileCheckize some tests.
Bill Wendling [Thu, 22 Aug 2013 20:46:05 +0000 (20:46 +0000)]
FileCheckize some tests.

llvm-svn: 189060

11 years agoUpdate to consumed analysis.
DeLesley Hutchins [Thu, 22 Aug 2013 20:44:47 +0000 (20:44 +0000)]
Update to consumed analysis.

Patch by chris.wailes@gmail.com.  The following functionality was added:

* The same functionality is now supported for both CXXOperatorCallExprs and CXXMemberCallExprs.
* Factored out some code in StmtVisitor.
* Removed variables from the state map when their destructors are encountered.
* Started adding documentation for the consumed analysis attributes.

llvm-svn: 189059

11 years agoadd error checking and messages to 'target modules show-unwind' command
Michael Sartain [Thu, 22 Aug 2013 20:42:30 +0000 (20:42 +0000)]
add error checking and messages to 'target modules show-unwind' command

llvm-svn: 189058

11 years agoR600/SI: Fix another case of illegal VGPR to SGPR copy
Tom Stellard [Thu, 22 Aug 2013 20:21:02 +0000 (20:21 +0000)]
R600/SI: Fix another case of illegal VGPR to SGPR copy

This fixes a crash in Unigine Tropics.

https://bugs.freedesktop.org/show_bug.cgi?id=68389

llvm-svn: 189057

11 years agoDataFlowSanitizer: Add a design doc paragraph on checking ABI consistency.
Peter Collingbourne [Thu, 22 Aug 2013 20:08:20 +0000 (20:08 +0000)]
DataFlowSanitizer: Add a design doc paragraph on checking ABI consistency.

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

llvm-svn: 189055

11 years agoDataFlowSanitizer: Replace non-instrumented aliases of instrumented functions, and...
Peter Collingbourne [Thu, 22 Aug 2013 20:08:15 +0000 (20:08 +0000)]
DataFlowSanitizer: Replace non-instrumented aliases of instrumented functions, and vice versa, with wrappers.

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

llvm-svn: 189054

11 years agoDataFlowSanitizer: Factor the wrapper builder out to buildWrapperFunction.
Peter Collingbourne [Thu, 22 Aug 2013 20:08:11 +0000 (20:08 +0000)]
DataFlowSanitizer: Factor the wrapper builder out to buildWrapperFunction.

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

llvm-svn: 189053

11 years agoDataFlowSanitizer: Prefix the name of each instrumented function with "dfs$".
Peter Collingbourne [Thu, 22 Aug 2013 20:08:08 +0000 (20:08 +0000)]
DataFlowSanitizer: Prefix the name of each instrumented function with "dfs$".

DFSan changes the ABI of each function in the module.  This makes it possible
for a function with the native ABI to be called with the instrumented ABI,
or vice versa, thus possibly invoking undefined behavior.  A simple way
of statically detecting instances of this problem is to prepend the prefix
"dfs$" to the name of each instrumented-ABI function.

This will not catch every such problem; in particular function pointers passed
across the instrumented-native barrier cannot be used on the other side.
These problems could potentially be caught dynamically.

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

llvm-svn: 189052

11 years agoAdd a separate llvm.global_ctors entry for linkonce_odr data initializers
Reid Kleckner [Thu, 22 Aug 2013 20:07:45 +0000 (20:07 +0000)]
Add a separate llvm.global_ctors entry for linkonce_odr data initializers

Summary:
These typically come from static data members of class template
specializations.  This accomplishes two things:

1. May expose GlobalOpt optimizations for Itanium C++ ABI code.
2. Works toward fixing double initialization in the Microsoft C++ ABI.

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

llvm-svn: 189051

11 years agoclang-replace: Layout of test directory now more standard
Edwin Vane [Thu, 22 Aug 2013 19:44:07 +0000 (19:44 +0000)]
clang-replace: Layout of test directory now more standard

Test-time dependencies now live within test/clang-replace/Inputs which is more
in line with llvm and clang test suites.

Added 'Inputs' to the lit config's 'exclude' list as with llvm's lit.cfg since
test-time dependencies should not have any lit scripts within.

llvm-svn: 189047

11 years agoGlen: replace obsolete _LIBCPP_CANTTHROW with _NOEXCEPT.
Howard Hinnant [Thu, 22 Aug 2013 19:39:03 +0000 (19:39 +0000)]
Glen: replace obsolete _LIBCPP_CANTTHROW with _NOEXCEPT.

llvm-svn: 189046

11 years agoMark LWG issues #2083, 2099 and 2105 as complete. No functionality change.
Marshall Clow [Thu, 22 Aug 2013 18:53:17 +0000 (18:53 +0000)]
Mark LWG issues #2083, 2099 and 2105 as complete. No functionality change.

llvm-svn: 189044

11 years agoXFAIL a few tests on darwin12
Howard Hinnant [Thu, 22 Aug 2013 18:47:39 +0000 (18:47 +0000)]
XFAIL a few tests on darwin12

llvm-svn: 189043

11 years agoFileCheckify a grep test.
Reid Kleckner [Thu, 22 Aug 2013 18:45:40 +0000 (18:45 +0000)]
FileCheckify a grep test.

llvm-svn: 189042

11 years agoObjectiveC migrator: Provide ARC annotations for
Fariborz Jahanian [Thu, 22 Aug 2013 18:35:27 +0000 (18:35 +0000)]
ObjectiveC migrator: Provide ARC annotations for
CF methods too.

llvm-svn: 189041

11 years agoZhihao Yuan noted that there were a few unneeded statements. Eliminated the unneces...
Howard Hinnant [Thu, 22 Aug 2013 18:29:50 +0000 (18:29 +0000)]
Zhihao Yuan noted that there were a few unneeded  statements.  Eliminated the unnecessary ones, and commented the ones that are there for non-obvious reasons such as to help things limp along in C++03 language mode.

llvm-svn: 189039

11 years agoRevert "cpp11-migrate: Add a class to support include directives modifications"
Guillaume Papin [Thu, 22 Aug 2013 18:20:03 +0000 (18:20 +0000)]
Revert "cpp11-migrate: Add a class to support include directives modifications"

This reverts commit r189017.

It broke the windows bots:
- http://bb.pgr.jp/builders/ninja-clang-i686-msc17-R/builds/4176
- http://bb.pgr.jp/builders/cmake-clang-i686-mingw32/builds/3837

llvm-svn: 189037

11 years agoZhihao Yuan noted that a move assignment operation was missing from std::adjacent_dif...
Howard Hinnant [Thu, 22 Aug 2013 18:02:34 +0000 (18:02 +0000)]
Zhihao Yuan noted that a move assignment operation was missing from std::adjacent_difference.  Fixed.

llvm-svn: 189036

11 years ago[lld][PECOFF] Fix one more reference to a temporary string
Shankar Easwaran [Thu, 22 Aug 2013 17:59:03 +0000 (17:59 +0000)]
[lld][PECOFF] Fix one more reference to a temporary string

llvm-svn: 189035

11 years agoDavid Blaikie suggested this test for detecting constexpr on the error_category defau...
Howard Hinnant [Thu, 22 Aug 2013 17:41:48 +0000 (17:41 +0000)]
David Blaikie suggested this test for detecting constexpr on the error_category default constructor.  Additionally I decided to make this constructor trivial as well, as I could not come up with a rationale for not doing so.  Fully tested with both current Apple clang and tip-of-trunk clang.

llvm-svn: 189034

11 years ago[Debug Info Tests] Update testing cases.
Manman Ren [Thu, 22 Aug 2013 17:11:18 +0000 (17:11 +0000)]
[Debug Info Tests] Update testing cases.

A single metadata will not span multiple lines. This also helps me with
my script to automatic update the testing cases.
A debug info testing case should have a llvm.dbg.cu.
Do not use hard-coded id for debug nodes.

llvm-svn: 189033

11 years agoRefactor VariantMatcher to use an interface underneath.
Samuel Benzaquen [Thu, 22 Aug 2013 16:38:33 +0000 (16:38 +0000)]
Refactor VariantMatcher to use an interface underneath.

Summary:
Refactor VariantMatcher to use an interface underneath.
It supports "Single" and "Polymorphic". Will support more in the future.

Reviewers: klimek

CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D1446

llvm-svn: 189032

11 years agoconfigure: Regenerate corresponding to r189026.
NAKAMURA Takumi [Thu, 22 Aug 2013 16:31:34 +0000 (16:31 +0000)]
configure: Regenerate corresponding to r189026.

llvm-svn: 189031

11 years agoRe-add clang-check to the Makefile build.
Jordan Rose [Thu, 22 Aug 2013 16:12:04 +0000 (16:12 +0000)]
Re-add clang-check to the Makefile build.

I was bound to screw this up somehow.

llvm-svn: 189029

11 years agoWork around unused variable warning in release builds.
Daniel Jasper [Thu, 22 Aug 2013 16:11:46 +0000 (16:11 +0000)]
Work around unused variable warning in release builds.

llvm-svn: 189028

11 years agoFix dependencies now that the ARC migrator depends on the static analyzer.
Jordan Rose [Thu, 22 Aug 2013 15:50:02 +0000 (15:50 +0000)]
Fix dependencies now that the ARC migrator depends on the static analyzer.

Thanks for pointing this out, Stephen. I think this is right now -- I
attempted to try all four valid combinations with both the autoconf and
CMake builds.

See also LLVM changes to the configure script.

llvm-svn: 189027

11 years agoAutoconf: The Clang ARC migrator now depends on the static analyzer.
Jordan Rose [Thu, 22 Aug 2013 15:49:53 +0000 (15:49 +0000)]
Autoconf: The Clang ARC migrator now depends on the static analyzer.

I don't actually have a version of autoconf so I edited configure directly
as well. It's copy-pasted so I think there was little margin for error.

See also Clang-side dependency graph changes.

llvm-svn: 189026

11 years ago[lld][PECOFF] Fix use of temporary strings
Shankar Easwaran [Thu, 22 Aug 2013 15:37:09 +0000 (15:37 +0000)]
[lld][PECOFF] Fix use of temporary strings

llvm-svn: 189025

11 years ago[ARMv8] Add CodeGen support for VSEL.
Joey Gouly [Thu, 22 Aug 2013 15:29:11 +0000 (15:29 +0000)]
[ARMv8] Add CodeGen support for VSEL.

This uses the ARMcmov pattern that Tim cleaned up in r188995.

Thanks to Simon Tatham for his floating point help!

llvm-svn: 189024

11 years ago[lld][unittests] Change assert to llvm_unreachable
Shankar Easwaran [Thu, 22 Aug 2013 15:23:54 +0000 (15:23 +0000)]
[lld][unittests] Change assert to llvm_unreachable

llvm-svn: 189023

11 years agoDebugInfo: emit the definition of types when construction vtables are required as...
David Blaikie [Thu, 22 Aug 2013 15:23:05 +0000 (15:23 +0000)]
DebugInfo: emit the definition of types when construction vtables are required as these types may never end up emitting the full class data

This might be able to be optimized further by only doing this in the
absence of a key function, but it doesn't look like GCC is doing that so
I'm not rushing to do it just yet.

llvm-svn: 189022

11 years ago[Win32] mapped_file_region: Fix a bug in CreateFileMapping() that Size must contain...
NAKAMURA Takumi [Thu, 22 Aug 2013 15:14:53 +0000 (15:14 +0000)]
[Win32] mapped_file_region: Fix a bug in CreateFileMapping() that Size must contain Offset when Offset >= 65536.

llvm-svn: 189021

11 years agoWhitespace.
NAKAMURA Takumi [Thu, 22 Aug 2013 15:14:45 +0000 (15:14 +0000)]
Whitespace.

llvm-svn: 189020

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