platform/upstream/llvm.git
11 years agoNote that SrcMgr::SLocEntry's are POD-like, so SmallVector can do a
Douglas Gregor [Mon, 28 Jan 2013 15:39:10 +0000 (15:39 +0000)]
Note that SrcMgr::SLocEntry's are POD-like, so SmallVector can do a
better job with them. Shaves off 0.7% of -fparse-only time for a
modules test case. Sure makes you wonder...

llvm-svn: 173689

11 years agoLet clang-format break after a function's return type.
Daniel Jasper [Mon, 28 Jan 2013 15:16:31 +0000 (15:16 +0000)]
Let clang-format break after a function's return type.

Before:
TypeSpecDecl *TypeSpecDecl::Create(ASTContext &C, DeclContext *DC,
                                   SourceLocation L, IdentifierInfo *II,
                                   Type *T) {}

After:
TypeSpecDecl *
TypeSpecDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
                     IdentifierInfo *II, Type *T) {}

This fixes llvm.org/PR14717.

llvm-svn: 173688

11 years ago[msan] A runtime call to support custom allocators.
Evgeniy Stepanov [Mon, 28 Jan 2013 13:52:49 +0000 (13:52 +0000)]
[msan] A runtime call to support custom allocators.

llvm-svn: 173687

11 years ago[msan] Remove icmp tests that require exact shadow propagation.
Evgeniy Stepanov [Mon, 28 Jan 2013 13:45:16 +0000 (13:45 +0000)]
[msan] Remove icmp tests that require exact shadow propagation.

llvm-svn: 173686

11 years agoMake continuations in constructor initializers consistent.
Daniel Jasper [Mon, 28 Jan 2013 13:31:35 +0000 (13:31 +0000)]
Make continuations in constructor initializers consistent.

Before:
Constructor
    : LooooooooooooooooooooongVariable(
        LooooooooooooooooooooongValue) {}

After:
Constructor
    : LooooooooooooooooooooongVariable(
          LooooooooooooooooooooongValue) {}

llvm-svn: 173685

11 years agoInitial support for formatting range-based for-loops.
Daniel Jasper [Mon, 28 Jan 2013 13:21:16 +0000 (13:21 +0000)]
Initial support for formatting range-based for-loops.

Before (in good cases):
for (auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
     : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
for (auto aaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa,
aaaa)) {}

After:
for (auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa :
     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
for (auto aaaaaaaaaaaaaaaaaaaa :
     aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa, aaaa)) {}

llvm-svn: 173684

11 years agoImprove formatting of conditional expressions.
Daniel Jasper [Mon, 28 Jan 2013 12:45:14 +0000 (12:45 +0000)]
Improve formatting of conditional expressions.

Before we did not really systematically format those. Now, we format the
different cases as:

- 1 Line:  a ? b : c;
- 2 Lines: short ? loooooooooong
                 : loooooooooong
- 2 Lines: loooooooooooooooong
               ? short : short
- 3 Lines: loooooooooooooooong
               ? loooooooooooooong
               : loooooooooooooong

Not sure whether "?" and ":" should go on the new line, but it seems to
be the most consistent approach.

llvm-svn: 173683

11 years ago[msan] Mostly disable msan-handle-icmp-exact.
Evgeniy Stepanov [Mon, 28 Jan 2013 11:42:28 +0000 (11:42 +0000)]
[msan] Mostly disable msan-handle-icmp-exact.

It is way too slow. Change the default option value to 0.
Always do exact shadow propagation for unsigned ICmp with constants, it is
cheap (under 1% cpu time) and required for correctness.

llvm-svn: 173682

11 years ago[ASan] fix a bug in allocator-v2 which could lead to SEGV on realloc(malloc(0), 4)
Alexey Samsonov [Mon, 28 Jan 2013 11:24:13 +0000 (11:24 +0000)]
[ASan] fix a bug in allocator-v2 which could lead to SEGV on realloc(malloc(0), 4)

llvm-svn: 173681

11 years agoSeveral small changes in formatting decisions.
Daniel Jasper [Mon, 28 Jan 2013 09:35:24 +0000 (09:35 +0000)]
Several small changes in formatting decisions.

1. Use a hanging ident for function calls nested in binary expressions.
   E.g.:
   int aaaaa = aaaaaaaaa && aaaaaaaaaa(
                                aaaaaaaaaa);

2. Slightly improve heuristic for builder type expressions and reduce
   penalty for breaking before "." and "->" in those.

3. Remove  mostly obsolete metric of decreasing indent level. This
   fixes: llvm.org/PR14931.

Changes #1 and #2 were necessary to keep tests passing after #3.

llvm-svn: 173680

11 years agoRevert r173678.
Evgeniy Stepanov [Mon, 28 Jan 2013 09:18:40 +0000 (09:18 +0000)]
Revert r173678.

Broken tests.

llvm-svn: 173679

11 years ago[msan] Make msan-handle-icmp-exact=0 by default.
Evgeniy Stepanov [Mon, 28 Jan 2013 09:15:15 +0000 (09:15 +0000)]
[msan] Make msan-handle-icmp-exact=0 by default.

50% slowdown on one of the specs.

llvm-svn: 173678

11 years agoCMake: simplify build rules for compiler-rt unit tests. This fixes warnings in Ninja...
Alexey Samsonov [Mon, 28 Jan 2013 09:07:30 +0000 (09:07 +0000)]
CMake: simplify build rules for compiler-rt unit tests. This fixes warnings in Ninja build tree.

llvm-svn: 173677

11 years ago[asan] fix a crash in asan stats printing (initialize the allocator in __asan_init)
Kostya Serebryany [Mon, 28 Jan 2013 08:05:47 +0000 (08:05 +0000)]
[asan] fix a crash in asan stats printing (initialize the allocator in __asan_init)

llvm-svn: 173676

11 years agoImprove indentation after breaking at nested name specifiers.
Daniel Jasper [Mon, 28 Jan 2013 07:43:15 +0000 (07:43 +0000)]
Improve indentation after breaking at nested name specifiers.

These always represent a continuation and we should increase the ident.

Before:
aaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa::
          aaaaaaaaaaaaaaaaaaaa);

After:
aaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa::
              aaaaaaaaaaaaaaaaaaaa);

llvm-svn: 173675

11 years agoFix 256-bit PALIGNR comment decoding to understand that it works on independent 256...
Craig Topper [Mon, 28 Jan 2013 07:41:18 +0000 (07:41 +0000)]
Fix 256-bit PALIGNR comment decoding to understand that it works on independent 256-bit lanes.

llvm-svn: 173674

11 years agoAvoid confusing identations for multi-parameter functions.
Daniel Jasper [Mon, 28 Jan 2013 07:35:34 +0000 (07:35 +0000)]
Avoid confusing identations for multi-parameter functions.

Before:
aaaaaaaa(aaaaaaaaa(
    aaaaaaaaaa(),
         aaaaaaaaa);

After:
aaaaaaaa(aaaaaaaaa(
             aaaaaaaaaa(),
         aaaaaaaaa);

llvm-svn: 173673

11 years agoA bugfix for tblgen, in the function ‘emitSourceFileHeader’.
Nadav Rotem [Mon, 28 Jan 2013 07:35:33 +0000 (07:35 +0000)]
A bugfix for tblgen, in the function ‘emitSourceFileHeader’.
When the first parameter (‘Desc’) is more than 80 characters long, it will result the header line that contains the description to be more
Than (4GB!) long. Not only it takes forever to produce, the output file cannot be open, since its ginormous.

Patch by Elior Malul.

llvm-svn: 173672

11 years ago[asan] two more internal flags for asan-rt: print_stats (0) and print_legend (1)
Kostya Serebryany [Mon, 28 Jan 2013 07:34:22 +0000 (07:34 +0000)]
[asan] two more internal flags for asan-rt: print_stats (0) and print_legend (1)

llvm-svn: 173671

11 years agoPrint warning instead of error if optional ASan features are enabled w/o specifying...
Alexey Samsonov [Mon, 28 Jan 2013 07:20:44 +0000 (07:20 +0000)]
Print warning instead of error if optional ASan features are enabled w/o specifying -fsanitize=address

llvm-svn: 173670

11 years agoAdd missing break in 256-bit palignr comment printing. No test case yet because the...
Craig Topper [Mon, 28 Jan 2013 07:19:11 +0000 (07:19 +0000)]
Add missing break in 256-bit palignr comment printing. No test case yet because the comment itself is still wrong.

llvm-svn: 173669

11 years ago[CMake] Fix compiler-rt tests after r173617
Alexey Samsonov [Mon, 28 Jan 2013 07:16:22 +0000 (07:16 +0000)]
[CMake] Fix compiler-rt tests after r173617

llvm-svn: 173668

11 years agoFix inconsistent usage of PALIGN and PALIGNR when referring to the same instruction.
Craig Topper [Mon, 28 Jan 2013 06:48:25 +0000 (06:48 +0000)]
Fix inconsistent usage of PALIGN and PALIGNR when referring to the same instruction.

llvm-svn: 173667

11 years agoCreated ObjCARCUtil.cpp for functions which in my humble opinion are too large to...
Michael Gottesman [Mon, 28 Jan 2013 06:39:31 +0000 (06:39 +0000)]
Created ObjCARCUtil.cpp for functions which in my humble opinion are too large to static inline and place in a header file such as ObjCARC.h.

llvm-svn: 173666

11 years ago[ELF] Use correct regex in test.
Michael J. Spencer [Mon, 28 Jan 2013 06:11:39 +0000 (06:11 +0000)]
[ELF] Use correct regex in test.

llvm-svn: 173665

11 years agoRemove addToNoHelperNeeded function that was left unused after r173649. Fixes a ...
Craig Topper [Mon, 28 Jan 2013 06:09:24 +0000 (06:09 +0000)]
Remove addToNoHelperNeeded function that was left unused after r173649. Fixes a -Wunused warning.

llvm-svn: 173664

11 years agoCleaned up includes in various ObjCARC files and removed some whitespace violations.
Michael Gottesman [Mon, 28 Jan 2013 05:51:58 +0000 (05:51 +0000)]
Cleaned up includes in various ObjCARC files and removed some whitespace violations.

llvm-svn: 173663

11 years agoRefactor ObjCARCAliasAnalysis into its own file.
Michael Gottesman [Mon, 28 Jan 2013 05:51:54 +0000 (05:51 +0000)]
Refactor ObjCARCAliasAnalysis into its own file.

llvm-svn: 173662

11 years agoMid-air collision. reapply r173656.
Bill Wendling [Mon, 28 Jan 2013 05:51:40 +0000 (05:51 +0000)]
Mid-air collision. reapply r173656.

llvm-svn: 173661

11 years agoRewrite the removeAttr() method.
Bill Wendling [Mon, 28 Jan 2013 05:44:14 +0000 (05:44 +0000)]
Rewrite the removeAttr() method.

This now uses the AttributeSet object instead of the Attribute /
AttributeWithIndex objects. It's fairly simple now. It goes through all of the
subsets before the one we're modifying, adds them to the new set. It then adds
the modified subset (with the requested attributes removed). And then adds the
rest of the subsets.

llvm-svn: 173660

11 years agoRewrite the addAttr() method.
Bill Wendling [Mon, 28 Jan 2013 05:23:28 +0000 (05:23 +0000)]
Rewrite the addAttr() method.

This now uses the AttributeSet object instead of the Attribute /
AttributeWithIndex objects. It's fairly simple now. It goes through all of the
subsets before the one we're modifying, adds them to the new set. It then adds
the modified subset. And then adds the rest of the subsets.

llvm-svn: 173659

11 years agoFix a typo in the name of a tooling unit test
Hal Finkel [Mon, 28 Jan 2013 04:37:38 +0000 (04:37 +0000)]
Fix a typo in the name of a tooling unit test

llvm-svn: 173658

11 years agoFix the indentation of the first line of preprocessor output
Hal Finkel [Mon, 28 Jan 2013 04:37:37 +0000 (04:37 +0000)]
Fix the indentation of the first line of preprocessor output

The -E output from clang did not produce the correct indentation on the first line.
This is because MoveToLine returned false, and when this happens,
the regular process for producing initial indentation is skipped.

Thanks to Eli for suggesting a way to simplify this to a one-line change.

llvm-svn: 173657

11 years agoRevert r173646, "Use proper type for the index."
NAKAMURA Takumi [Mon, 28 Jan 2013 04:29:01 +0000 (04:29 +0000)]
Revert r173646, "Use proper type for the index."

Unfortunately, msvc miscompiles it. Investigating.

llvm-svn: 173656

11 years ago[ELF] Use entry point from LinkerOptions.
Michael J. Spencer [Mon, 28 Jan 2013 04:15:44 +0000 (04:15 +0000)]
[ELF] Use entry point from LinkerOptions.

Patch by Ahmed Bougacha!

llvm-svn: 173655

11 years agoRefactored out pass ObjCARCAPElim from ObjCARCOpts.cpp => ObjCARCAPElim.cpp.
Michael Gottesman [Mon, 28 Jan 2013 04:12:07 +0000 (04:12 +0000)]
Refactored out pass ObjCARCAPElim from ObjCARCOpts.cpp => ObjCARCAPElim.cpp.

llvm-svn: 173654

11 years agoFixed case insensitive issue.
Michael Gottesman [Mon, 28 Jan 2013 03:35:20 +0000 (03:35 +0000)]
Fixed case insensitive issue.

llvm-svn: 173653

11 years agoRemoved extraneous doxygen end module statement.
Michael Gottesman [Mon, 28 Jan 2013 03:30:34 +0000 (03:30 +0000)]
Removed extraneous doxygen end module statement.

llvm-svn: 173652

11 years agoExtracted pass ObjCARCExpand from ObjCARC.cpp => ObjCARCExpand.cpp.
Michael Gottesman [Mon, 28 Jan 2013 03:28:38 +0000 (03:28 +0000)]
Extracted pass ObjCARCExpand from ObjCARC.cpp => ObjCARCExpand.cpp.

I also added the local header ObjCARC.h for common functions used by the
various passes.

llvm-svn: 173651

11 years agoImproved svn repo searching for 'make update'
Edwin Vane [Mon, 28 Jan 2013 03:19:57 +0000 (03:19 +0000)]
Improved svn repo searching for 'make update'

Use a simple recursive bash function to search for svn repos for the 'make
update' target thus including projects like clang-tools-extra.

Reviewers: bkramer, echristo
llvm-svn: 173650

11 years agoMake some code a little simpler.
Reed Kotler [Mon, 28 Jan 2013 02:46:49 +0000 (02:46 +0000)]
Make some code a little simpler.

llvm-svn: 173649

11 years agoSince ObjCARC has been refactored into its own library with its own declaration heade...
Michael Gottesman [Mon, 28 Jan 2013 01:36:00 +0000 (01:36 +0000)]
Since ObjCARC has been refactored into its own library with its own declaration header, we need to include the declaration header alongside Scalar.h in BackendUtil.

llvm-svn: 173648

11 years agoExtracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for...
Michael Gottesman [Mon, 28 Jan 2013 01:35:51 +0000 (01:35 +0000)]
Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer.

llvm-svn: 173647

11 years agoUse proper type for the index.
Bill Wendling [Mon, 28 Jan 2013 01:30:29 +0000 (01:30 +0000)]
Use proper type for the index.

llvm-svn: 173646

11 years agoTests and a minor bugfix for [dcl.attr.depend]p1 (C++11 [[carries_dependency]]
Richard Smith [Mon, 28 Jan 2013 01:15:38 +0000 (01:15 +0000)]
Tests and a minor bugfix for [dcl.attr.depend]p1 (C++11 [[carries_dependency]]
attribute).

llvm-svn: 173645

11 years agoRemove another use of AttributeWithIndex, using the AttributeSetImpl accessors instead.
Bill Wendling [Mon, 28 Jan 2013 01:11:42 +0000 (01:11 +0000)]
Remove another use of AttributeWithIndex, using the AttributeSetImpl accessors instead.

llvm-svn: 173644

11 years agoAdd a -pedantic warning: an anonymous union within an anonymous union is not
Richard Smith [Mon, 28 Jan 2013 00:54:05 +0000 (00:54 +0000)]
Add a -pedantic warning: an anonymous union within an anonymous union is not
permitted in standard C++, despite being silently accepted by many (all?) major
C++ implementations.

llvm-svn: 173643

11 years agoRemove another use of AttributeWithIndex, using the AttributeSetImpl accessors instead.
Bill Wendling [Mon, 28 Jan 2013 00:46:02 +0000 (00:46 +0000)]
Remove another use of AttributeWithIndex, using the AttributeSetImpl accessors instead.

llvm-svn: 173642

11 years agoRemove a use of AttributeWithIndex.
Bill Wendling [Mon, 28 Jan 2013 00:21:34 +0000 (00:21 +0000)]
Remove a use of AttributeWithIndex.

We want to remove AttributeWithIndex because it provides a non-encapsulated view
of the AttributeSetImpl object. Instead, use accessor methods and iterators.

Eventually, this code can be simplified because the Attribute object will hold
only one attribute instead of multiple attributes.

llvm-svn: 173641

11 years agoImprove the debug output a bit.
Bill Wendling [Sun, 27 Jan 2013 23:53:56 +0000 (23:53 +0000)]
Improve the debug output a bit.

llvm-svn: 173640

11 years agoUse proper return type for attribute index.
Bill Wendling [Sun, 27 Jan 2013 23:50:44 +0000 (23:50 +0000)]
Use proper return type for attribute index.

llvm-svn: 173639

11 years agoUse proper return type for attribute index.
Bill Wendling [Sun, 27 Jan 2013 23:49:44 +0000 (23:49 +0000)]
Use proper return type for attribute index.

llvm-svn: 173638

11 years agoPush the calculation of the 'Raw' attribute mask down into the implementation. It...
Bill Wendling [Sun, 27 Jan 2013 23:41:29 +0000 (23:41 +0000)]
Push the calculation of the 'Raw' attribute mask down into the implementation. It in turn uses the correct list for calculating the 'Raw' value.

llvm-svn: 173637

11 years agoDon't erase these methods. They're used during testing.
Bill Wendling [Sun, 27 Jan 2013 22:46:17 +0000 (22:46 +0000)]
Don't erase these methods. They're used during testing.

llvm-svn: 173636

11 years agoAdd special 'get' methods to create an Attribute with an alignment. Also do some...
Bill Wendling [Sun, 27 Jan 2013 22:43:04 +0000 (22:43 +0000)]
Add special 'get' methods to create an Attribute with an alignment. Also do some random cleanup. No functionality change.

llvm-svn: 173635

11 years ago[XCore] Add missing l2rus instructions.
Richard Osborne [Sun, 27 Jan 2013 22:28:30 +0000 (22:28 +0000)]
[XCore] Add missing l2rus instructions.

These instructions are not targeted by the compiler but they are
needed for the MC layer.

llvm-svn: 173634

11 years agoComment parsing: fix test in r173626 for -fms-extensions -fms-compatibility
Dmitri Gribenko [Sun, 27 Jan 2013 22:11:38 +0000 (22:11 +0000)]
Comment parsing: fix test in r173626 for -fms-extensions -fms-compatibility

llvm-svn: 173633

11 years agoPrivitize some the copy c'tor and assignment operator of uniquified objects.
Bill Wendling [Sun, 27 Jan 2013 21:38:03 +0000 (21:38 +0000)]
Privitize some the copy c'tor and assignment operator of uniquified objects.

llvm-svn: 173632

11 years agoAdd some helpful comments.
Bill Wendling [Sun, 27 Jan 2013 21:32:11 +0000 (21:32 +0000)]
Add some helpful comments.

llvm-svn: 173631

11 years agoDecl printer: fix CXXConstructExpr with implicit default argument
Dmitri Gribenko [Sun, 27 Jan 2013 21:28:24 +0000 (21:28 +0000)]
Decl printer: fix CXXConstructExpr with implicit default argument

Patch by Will Wilson.

llvm-svn: 173630

11 years ago[XCore] Add missing l2r instructions.
Richard Osborne [Sun, 27 Jan 2013 21:26:02 +0000 (21:26 +0000)]
[XCore] Add missing l2r instructions.

These instructions are not targeted by the compiler but they are
needed for the MC layer.

llvm-svn: 173629

11 years agos/AttrList/pImpl/g in AttributeSet. No functionality change.
Bill Wendling [Sun, 27 Jan 2013 21:23:46 +0000 (21:23 +0000)]
s/AttrList/pImpl/g in AttributeSet. No functionality change.

llvm-svn: 173628

11 years agoStart using more of the AttrNode in the AttributeSetImpl class.
Bill Wendling [Sun, 27 Jan 2013 21:20:06 +0000 (21:20 +0000)]
Start using more of the AttrNode in the AttributeSetImpl class.

Also add some asserts.

llvm-svn: 173627

11 years agoComment parsing: attach any tag type's documentation to its typedef if latter
Dmitri Gribenko [Sun, 27 Jan 2013 21:18:39 +0000 (21:18 +0000)]
Comment parsing: attach any tag type's documentation to its typedef if latter
does not have one of its own. // rdar://13067629

Original patch (r173586 and r173587) by Fariborz Jahanian, modified by me.

llvm-svn: 173626

11 years agoLegalizer: Reword comment again, per Duncan's suggestion.
Benjamin Kramer [Sun, 27 Jan 2013 21:02:52 +0000 (21:02 +0000)]
Legalizer: Reword comment again, per Duncan's suggestion.

llvm-svn: 173625

11 years ago[XCore] Add missing 1r instructions.
Richard Osborne [Sun, 27 Jan 2013 20:46:21 +0000 (20:46 +0000)]
[XCore] Add missing 1r instructions.

These instructions are not targeted by the compiler but they are
needed for the MC layer.

llvm-svn: 173624

11 years ago[XCore] Add missing 0r instructions.
Richard Osborne [Sun, 27 Jan 2013 20:42:57 +0000 (20:42 +0000)]
[XCore] Add missing 0r instructions.

These instructions are not targeted by the compiler but they are
needed for the MC layer.

llvm-svn: 173623

11 years agoPR15067: Don't assert when a UCN appears in a C90 file.
Jordan Rose [Sun, 27 Jan 2013 20:12:04 +0000 (20:12 +0000)]
PR15067: Don't assert when a UCN appears in a C90 file.

Unfortunately, we can't accept the UCN as an extension because we're
required to treat it as two tokens for preprocessing purposes.

llvm-svn: 173622

11 years agoBBVectorize: Better use of TTI->getShuffleCost
Hal Finkel [Sun, 27 Jan 2013 20:07:01 +0000 (20:07 +0000)]
BBVectorize: Better use of TTI->getShuffleCost

When flipping the pair of subvectors that form a vector, if the
vector length is 2, we can use the SK_Reverse shuffle kind to get
more-accurate cost information. Also we can use the SK_ExtractSubvector
shuffle kind to get accurate subvector extraction costs.

The current cost model implementations don't yet seem complex enough
for this to make a difference (thus, there are no test cases with this
commit), but it should help in future.

Depending on how the various targets optimize and combine shuffles in
practice, we might be able to get more-accurate costs by combining the
costs of multiple shuffle kinds. For example, the cost of flipping the
subvector pairs could be modeled as two extractions and two subvector
insertions. These changes, however, should probably be motivated
by specific test cases.

llvm-svn: 173621

11 years agoLegalizer: Add an assert and tweak a comment to clarify the assumptions this code...
Benjamin Kramer [Sun, 27 Jan 2013 15:04:43 +0000 (15:04 +0000)]
Legalizer: Add an assert and tweak a comment to clarify the assumptions this code makes.

llvm-svn: 173620

11 years agoAddCompilerRT.cmake: Try to unbreak since r173617.
NAKAMURA Takumi [Sun, 27 Jan 2013 14:12:25 +0000 (14:12 +0000)]
AddCompilerRT.cmake: Try to unbreak since r173617.

llvm-svn: 173619

11 years agoIn the AttributeSetImpl c'tor, fill in the AttrNodes data structure with the attribut...
Bill Wendling [Sun, 27 Jan 2013 12:50:02 +0000 (12:50 +0000)]
In the AttributeSetImpl c'tor, fill in the AttrNodes data structure with the attributes being passed in.

llvm-svn: 173618

11 years ago[CMake][Lit][unittests] Cleanup in AddLLVM.cmake.
NAKAMURA Takumi [Sun, 27 Jan 2013 12:46:53 +0000 (12:46 +0000)]
[CMake][Lit][unittests] Cleanup in AddLLVM.cmake.

llvm-svn: 173617

11 years ago[CMake][Lit][unittests] Deprecate CMAKE_BUILD_TYPE in each build directory for unittests.
NAKAMURA Takumi [Sun, 27 Jan 2013 12:20:50 +0000 (12:20 +0000)]
[CMake][Lit][unittests] Deprecate CMAKE_BUILD_TYPE in each build directory for unittests.

For example,
cur) unittests/ADT/Release/ADTTests
new) unittests/ADT/ADTTests

RUNTIME_BUILD_MODE can be substituted to CMAKE_CFG_INTDIR.

With Make and Ninja, the tree is not built with multiple configurations.
Then, including the build type in target directory doesn't make sense.
See also "How can I build multiple modes without switching?"
http://www.cmake.org/Wiki/CMake_FAQ
CMAKE_CFG_INTDIR is set to "."

With multiple-configuration-aware build system, like Visual Studio, each unittest is built on appropriate directory, for example,
unittests/ADT/Release/ADTTests.exe
CMAKE_CFG_INTDIR is set to build system's variable, like "$(Configuration)" or "$(OutDir)".

Thus, "--param build_config" is also deprecated.

llvm-svn: 173616

11 years agoWhen the legalizer is splitting vector shifts, the result may not have the right...
Benjamin Kramer [Sun, 27 Jan 2013 11:19:11 +0000 (11:19 +0000)]
When the legalizer is splitting vector shifts, the result may not have the right shift amount type.

Fix that by adding a cast to the shift expander. This came up with vector shifts
on sse-less X86 CPUs.

   <2 x i64>       = shl <2 x i64> <2 x i64>
-> i64,i64         = shl i64 i64; shl i64 i64
-> i32,i32,i32,i32 = shl_parts i32 i32 i64; shl_parts i32 i32 i64

Now we cast the last two i64s to the right type. Fixes the crash in PR14668.

llvm-svn: 173615

11 years agoRevert r173586 (and r173587) , "Attach any tag type's documentation to its typedef if"
NAKAMURA Takumi [Sun, 27 Jan 2013 11:09:41 +0000 (11:09 +0000)]
Revert r173586 (and r173587) , "Attach any tag type's documentation to its typedef if"

It caused unexpected warnings with @tparam.

llvm-svn: 173614

11 years agoFix miscompile. Add back the use of the ArrayRef version of the ::get method.
Bill Wendling [Sun, 27 Jan 2013 10:28:39 +0000 (10:28 +0000)]
Fix miscompile. Add back the use of the ArrayRef version of the ::get method.

llvm-svn: 173613

11 years agoRearrange some deckchairs. Moving the class before it's use.
Bill Wendling [Sun, 27 Jan 2013 10:00:13 +0000 (10:00 +0000)]
Rearrange some deckchairs. Moving the class before it's use.

llvm-svn: 173612

11 years agoRemove dead methods.
Bill Wendling [Sun, 27 Jan 2013 09:55:44 +0000 (09:55 +0000)]
Remove dead methods.

llvm-svn: 173611

11 years agoRe-revert r173342, without losing the compile time improvements, flat
Chandler Carruth [Sun, 27 Jan 2013 06:42:03 +0000 (06:42 +0000)]
Re-revert r173342, without losing the compile time improvements, flat
out bug fixes, or functionality preserving refactorings.

llvm-svn: 173610

11 years agoRenamed function IsPotentialUse to IsPotentialRetainableObjPtr.
Michael Gottesman [Sun, 27 Jan 2013 06:19:48 +0000 (06:19 +0000)]
Renamed function IsPotentialUse to IsPotentialRetainableObjPtr.

This name change does the following:

1. Causes the function name to use proper ARC terminology.
2. Makes it clear what the function truly does.

llvm-svn: 173609

11 years agoFix test to not use the AttributeSet's AttributeWithIndex creation method.
Bill Wendling [Sun, 27 Jan 2013 03:39:10 +0000 (03:39 +0000)]
Fix test to not use the AttributeSet's AttributeWithIndex creation method.

llvm-svn: 173608

11 years agoHide the method that creates an AttributeSet with AttributeWithIndexes.
Bill Wendling [Sun, 27 Jan 2013 03:35:32 +0000 (03:35 +0000)]
Hide the method that creates an AttributeSet with AttributeWithIndexes.

This method will go away once AttributeWithIndex goes away. In the meantime,
hide it from general use.

llvm-svn: 173607

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 03:25:05 +0000 (03:25 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173606

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 02:46:53 +0000 (02:46 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173605

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 02:24:02 +0000 (02:24 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173603

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 02:08:22 +0000 (02:08 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173602

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 01:57:28 +0000 (01:57 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173601

11 years agoUse the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 01:44:34 +0000 (01:44 +0000)]
Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173600

11 years agoConvert the CPP backend to use the AttributeSet instead of AttributeWithIndex.
Bill Wendling [Sun, 27 Jan 2013 01:22:51 +0000 (01:22 +0000)]
Convert the CPP backend to use the AttributeSet instead of AttributeWithIndex.

Further removal of the introspective AttributeWithIndex thing. Also fix the #includes.

llvm-svn: 173599

11 years agoUse the AttributeSet instead of AttributeWithIndex object.
Bill Wendling [Sun, 27 Jan 2013 00:36:48 +0000 (00:36 +0000)]
Use the AttributeSet instead of AttributeWithIndex object.

llvm-svn: 173598

11 years agoAdd the missing line return to align parameters of printPretty.
Michael Han [Sun, 27 Jan 2013 00:06:24 +0000 (00:06 +0000)]
Add the missing line return to align parameters of printPretty.

llvm-svn: 173597

11 years agoMake sure that multi-line expressions don't create a default target. We recently...
Greg Clayton [Sat, 26 Jan 2013 23:54:29 +0000 (23:54 +0000)]
Make sure that multi-line expressions don't create a default target. We recently switched to using a built-in m_exe_ctx when running commands in the DoExecute() so that we can have common code where commands can required having a valid target/process/thread/frame by specifying flags, this caused multi-line expression to always create a new dummy target because m_exe_ctx gets cleared when DoExecute exits. A new input reader has been pushed to handle the input for the expression, which will get popped off and then it was checking the target in m_exe_ctx (which was cleared).

llvm-svn: 173596

11 years agolibclang: refactor CXStringPool: make it a class
Dmitri Gribenko [Sat, 26 Jan 2013 22:44:19 +0000 (22:44 +0000)]
libclang: refactor CXStringPool: make it a class

We are not exposing the pool or string buffers to libclang users, so no need to
maintain a procedural interface.

llvm-svn: 173595

11 years agoPR14566: Debug Info: avoid top level lexical blocks in functions
David Blaikie [Sat, 26 Jan 2013 22:16:26 +0000 (22:16 +0000)]
PR14566: Debug Info: avoid top level lexical blocks in functions

One of the gotchas (see changes to CodeGenFunction) was due to the fix in
r139416 (for PR10829). This only worked previously because the top level
lexical block would set the location to the end of the function, the debug
location would be updated (as per r139416), the location would be set to
the end of the function again (but that would no-op, since it was the same
as the previous location), then the return instruction would be emitted using
the debug location.

Once the top level lexical block was no longer emitted, the end-of-function
location change was causing the debug loc to be updated, regressing that bug.

llvm-svn: 173593

11 years agoPR14566: Debug Info: Removing top level lexical blocks
David Blaikie [Sat, 26 Jan 2013 21:55:23 +0000 (21:55 +0000)]
PR14566: Debug Info: Removing top level lexical blocks

This adds support for LLVM to accept metadata that doesn't include a top level
lexical block in a function. Specifically LLVM couldn't handle this when there
were file changes relating to these blocks. I've updated a few test cases to
ensure other functionality (such as inlining) isn't affected by this change, but
haven't pervasively updated all the test cases.

llvm-svn: 173592

11 years agoIRBuilder: Remove redundant check around SetInstDebugLocation call.
David Blaikie [Sat, 26 Jan 2013 21:55:19 +0000 (21:55 +0000)]
IRBuilder: Remove redundant check around SetInstDebugLocation call.

llvm-svn: 173591

11 years agolibclang: type safety for CXTranslationUnitImpl::CIdx
Dmitri Gribenko [Sat, 26 Jan 2013 21:49:50 +0000 (21:49 +0000)]
libclang: type safety for CXTranslationUnitImpl::CIdx

llvm-svn: 173590

11 years agolibclang: type safety for CXTranslationUnitImpl::FormatContext
Dmitri Gribenko [Sat, 26 Jan 2013 21:39:50 +0000 (21:39 +0000)]
libclang: type safety for CXTranslationUnitImpl::FormatContext

llvm-svn: 173589

11 years agolibclang: some type safety for CXTranslationUnitImpl's internals
Dmitri Gribenko [Sat, 26 Jan 2013 21:32:42 +0000 (21:32 +0000)]
libclang: some type safety for CXTranslationUnitImpl's internals

There is no reason to store pointers as 'void*' in CXTranslationUnitImpl, since
it does not affect libclang ABI.

llvm-svn: 173588