platform/upstream/llvm.git
11 years agoPR15480: fixed second parameter types of vec_lde, vec_lvebx, vec_lvehx, and vec_lvewx...
Anton Yartsev [Sun, 10 Mar 2013 16:25:43 +0000 (16:25 +0000)]
PR15480: fixed second parameter types of vec_lde, vec_lvebx, vec_lvehx, and vec_lvewx according to AltiVec Programming Interface Manual

llvm-svn: 176789

11 years agoDriver: do not strip file extensions when printing diagnostics.
Benjamin Kramer [Sun, 10 Mar 2013 13:16:18 +0000 (13:16 +0000)]
Driver: do not strip file extensions when printing diagnostics.

Before: clang-3: error: no input files
After:  clang-3.3: error: no input files

This means that we'll also print clang.exe on windows, but I don't see a problem
with that.

llvm-svn: 176788

11 years agoCleanup #includes.
Jakub Staszak [Sun, 10 Mar 2013 13:11:23 +0000 (13:11 +0000)]
Cleanup #includes.

llvm-svn: 176787

11 years agoFix indirect byval passing of records in address spaced memory. Allocate memory on...
Guy Benyei [Sun, 10 Mar 2013 12:59:00 +0000 (12:59 +0000)]
Fix indirect byval passing of records in address spaced memory. Allocate memory on stack, and memcpy the actual value before the call.

llvm-svn: 176786

11 years agoRemove unneeded #include.
Jakub Staszak [Sun, 10 Mar 2013 01:15:14 +0000 (01:15 +0000)]
Remove unneeded #include.

llvm-svn: 176785

11 years agoAdd some constantness in MachinePostDominators.h.
Jakub Staszak [Sun, 10 Mar 2013 01:14:42 +0000 (01:14 +0000)]
Add some constantness in MachinePostDominators.h.

llvm-svn: 176784

11 years agoRemove unneeded #includes. Use forward declarations instead.
Jakub Staszak [Sun, 10 Mar 2013 00:34:01 +0000 (00:34 +0000)]
Remove unneeded #includes. Use forward declarations instead.

llvm-svn: 176783

11 years agoRemove unneeded #includes. Use forward declarations instead.
Jakub Staszak [Sun, 10 Mar 2013 00:20:16 +0000 (00:20 +0000)]
Remove unneeded #includes. Use forward declarations instead.

llvm-svn: 176782

11 years agowww tweaks to embiggen up our near-complete C++11 and C11 support.
Richard Smith [Sun, 10 Mar 2013 00:11:00 +0000 (00:11 +0000)]
www tweaks to embiggen up our near-complete C++11 and C11 support.

llvm-svn: 176781

11 years agoWhen lexing in C11 mode, accept unicode character and string literals, per C11
Richard Smith [Sat, 9 Mar 2013 23:56:02 +0000 (23:56 +0000)]
When lexing in C11 mode, accept unicode character and string literals, per C11
6.4.4.4/1 and 6.4.5/1.

llvm-svn: 176780

11 years agoHandle _Pragma on a u8, u, or U string literal per the C11 specification. Also
Richard Smith [Sat, 9 Mar 2013 23:30:15 +0000 (23:30 +0000)]
Handle _Pragma on a u8, u, or U string literal per the C11 specification. Also
handle raw string literals here. C++11 doesn't yet specify how they will
behave, but discussion on core suggests that we should just strip off
everything but the r-char-sequence.

llvm-svn: 176779

11 years agoRemove an unused member variable from HelpPrinter. Move another member variable to...
Craig Topper [Sat, 9 Mar 2013 23:29:37 +0000 (23:29 +0000)]
Remove an unused member variable from HelpPrinter. Move another member variable to be a local variable in the only method that uses it.

llvm-svn: 176778

11 years agoDon't glue users to extract_subreg when selecting the llvm.arm.ldrexd
Lang Hames [Sat, 9 Mar 2013 22:56:09 +0000 (22:56 +0000)]
Don't glue users to extract_subreg when selecting the llvm.arm.ldrexd
intrinsic - it can cause impossible-to-schedule subgraphs to be
introduced.

PR15053.

llvm-svn: 176777

11 years agoRemove unneeded cast.
Jakub Staszak [Sat, 9 Mar 2013 19:34:14 +0000 (19:34 +0000)]
Remove unneeded cast.

llvm-svn: 176776

11 years agoRemove a source of nondeterminism from the LoopVectorizer.
Benjamin Kramer [Sat, 9 Mar 2013 19:22:40 +0000 (19:22 +0000)]
Remove a source of nondeterminism from the LoopVectorizer.

This made us emit runtime checks in a random order. Hopefully bootstrap
miscompares will go away now.

llvm-svn: 176775

11 years agoRemove unused diagnostic.
Benjamin Kramer [Sat, 9 Mar 2013 18:44:47 +0000 (18:44 +0000)]
Remove unused diagnostic.

llvm-svn: 176774

11 years agoFix test case.
Benjamin Kramer [Sat, 9 Mar 2013 18:34:27 +0000 (18:34 +0000)]
Fix test case.

llvm-svn: 176773

11 years agoTest case hygiene.
Benjamin Kramer [Sat, 9 Mar 2013 18:25:40 +0000 (18:25 +0000)]
Test case hygiene.

llvm-svn: 176772

11 years agoRemove unneeded const_cast.
Jakub Staszak [Sat, 9 Mar 2013 18:24:26 +0000 (18:24 +0000)]
Remove unneeded const_cast.

llvm-svn: 176771

11 years agoUse forward declaration instead of #include.
Jakub Staszak [Sat, 9 Mar 2013 18:05:34 +0000 (18:05 +0000)]
Use forward declaration instead of #include.

llvm-svn: 176770

11 years agoLoopVectorizer: Ignore all dbg intrinisic
Arnold Schwaighofer [Sat, 9 Mar 2013 16:27:27 +0000 (16:27 +0000)]
LoopVectorizer: Ignore all dbg intrinisic

Ignore all DbgIntriniscInfo instructions instead of just DbgValueInst.

llvm-svn: 176769

11 years agoLoopVectorizer: Ignore dbg.value instructions
Arnold Schwaighofer [Sat, 9 Mar 2013 15:56:34 +0000 (15:56 +0000)]
LoopVectorizer: Ignore dbg.value instructions

We want vectorization to happen at -g. Ignore calls to the dbg.value intrinsic
and don't transfer them to the vectorized code.

radar://13378964

llvm-svn: 176768

11 years agoMake helper function static.
Benjamin Kramer [Sat, 9 Mar 2013 15:15:22 +0000 (15:15 +0000)]
Make helper function static.

llvm-svn: 176767

11 years agoTLI: Microoptimize calls to strlen+memcmp to strncmp.
Benjamin Kramer [Sat, 9 Mar 2013 13:48:23 +0000 (13:48 +0000)]
TLI: Microoptimize calls to strlen+memcmp to strncmp.

The strlen+memcmp was hidden in a call to StringRef::operator==. We check if
there are any null bytes in the string upfront so we can simplify the comparison
Small speedup when compiling code with many function calls.

llvm-svn: 176766

11 years agoSimplify code. No functionality change.
Jakub Staszak [Sat, 9 Mar 2013 11:18:59 +0000 (11:18 +0000)]
Simplify code. No functionality change.

llvm-svn: 176765

11 years agoUse the correct index variable. This is the meat of what was supposed to be in
Nick Lewycky [Sat, 9 Mar 2013 10:13:26 +0000 (10:13 +0000)]
Use the correct index variable. This is the meat of what was supposed to be in
r176751. Also, learn a lesson about applying patches by hand/eyeball.

llvm-svn: 176764

11 years agoCommit the right files for r176762. Sigh.
Nick Lewycky [Sat, 9 Mar 2013 09:32:16 +0000 (09:32 +0000)]
Commit the right files for r176762. Sigh.

llvm-svn: 176763

11 years agoWe need a shndx if the number of sections breaks SHN_LORESERVE. This condition
Nick Lewycky [Sat, 9 Mar 2013 09:31:44 +0000 (09:31 +0000)]
We need a shndx if the number of sections breaks SHN_LORESERVE. This condition
for choosing to emit a shndx was simply testing the wrong variable.

llvm-svn: 176762

11 years agoRemove use of the ARMDisassembler framework from
Jason Molenda [Sat, 9 Mar 2013 07:03:32 +0000 (07:03 +0000)]
Remove use of the ARMDisassembler framework from
DNBArchImplARM.  This framework is no longer around;
all armv7 devices support using hardware breakpoints
to instruction single step.

llvm-svn: 176761

11 years agoAlso remove actual link against the ARMDisassembler framework from
Jason Molenda [Sat, 9 Mar 2013 06:19:31 +0000 (06:19 +0000)]
Also remove actual link against the ARMDisassembler framework from
debugserver's build settings.

llvm-svn: 176760

11 years agoWe don't need to specify the VALID_ARCHS in the xcode project file.
Jason Molenda [Sat, 9 Mar 2013 06:15:46 +0000 (06:15 +0000)]
We don't need to specify the VALID_ARCHS in the xcode project file.
Also, don't build debugserver with -DUSE_ARM_DISASSEMBLER_FRAMEWORK -
that framework isn't around at this point.

llvm-svn: 176759

11 years agoAdding -final-syntax-check to cpp11-migrate user docs
Edwin Vane [Sat, 9 Mar 2013 03:38:20 +0000 (03:38 +0000)]
Adding -final-syntax-check to cpp11-migrate user docs

llvm-svn: 176758

11 years agoSplitting cpp11-migrate transform docs into sub-pages
Edwin Vane [Sat, 9 Mar 2013 03:33:50 +0000 (03:33 +0000)]
Splitting cpp11-migrate transform docs into sub-pages

Each transform belongs in its own sub-page now. Minor refactoring to reflect
new heading levels.

llvm-svn: 176757

11 years ago[analyzer] Make Suppress IDC checker aware that it might not start from the same...
Anna Zaks [Sat, 9 Mar 2013 03:23:19 +0000 (03:23 +0000)]
[analyzer] Make Suppress IDC checker aware that it might not start from the same node it was registered at

The visitor used to assume that the value it’s tracking is null in the first node it examines. This is not true.
If we are registering the Suppress Inlined Defensive checks visitor while traversing in another visitor
(such as FindlastStoreVisitor). When we restart with the IDC visitor, the invariance of the visitor does
not hold since the symbol we are tracking no longer exists at that point.

I had to pass the ErrorNode when creating the IDC visitor, because, in some cases, node N is
neither the error node nor will be visible along the path (we had not finalized the path at that point
and are dealing with ExplodedGraph.)

We should revisit the other visitors which might not be aware that they might get nodes, which are
later in path than the trigger point.

This suppresses a number of inline defensive checks in JavaScriptCore.

llvm-svn: 176756

11 years ago[analyzer] Rename AttrNonNullChecker -> NonNullParamChecker
Anna Zaks [Sat, 9 Mar 2013 03:23:14 +0000 (03:23 +0000)]
[analyzer] Rename AttrNonNullChecker -> NonNullParamChecker

llvm-svn: 176755

11 years ago[analyzer] Add test case for reference to null pointer param check
Anna Zaks [Sat, 9 Mar 2013 03:23:10 +0000 (03:23 +0000)]
[analyzer] Add test case for reference to null pointer param check

This tests that we track the original Expr if getDerefExpr fails.

llvm-svn: 176754

11 years agoRemove my print statements I was using for debugging.
Greg Clayton [Sat, 9 Mar 2013 02:29:04 +0000 (02:29 +0000)]
Remove my print statements I was using for debugging.

llvm-svn: 176753

11 years ago<rdar://problem/13384282>
Greg Clayton [Sat, 9 Mar 2013 02:19:08 +0000 (02:19 +0000)]
<rdar://problem/13384282>

As much as I hate to leave this hacky code in that adds some d and q registers to ARM registers, I must leave it in.

The code is now fixed to not just assume ANY arm target will have registers in a certain order. We now verify the common regs are the same name and byte size before adding the d and q regs.

llvm-svn: 176752

11 years agoFix bug introduced in r176616 when making function identifier numbers stable.
Nick Lewycky [Sat, 9 Mar 2013 02:06:37 +0000 (02:06 +0000)]
Fix bug introduced in r176616 when making function identifier numbers stable.
Count the subprograms, not the compile units.

llvm-svn: 176751

11 years agoMade LLDB work with the latest Clang. Also fixed
Sean Callanan [Sat, 9 Mar 2013 01:59:31 +0000 (01:59 +0000)]
Made LLDB work with the latest Clang.  Also fixed
an assertion due to non-implicit Objective-C methods
without source locations.

llvm-svn: 176750

11 years ago[Driver][GNU] Accept and ignore more options.
Michael J. Spencer [Sat, 9 Mar 2013 01:41:37 +0000 (01:41 +0000)]
[Driver][GNU] Accept and ignore more options.

llvm-svn: 176749

11 years agoFix (possible) MSVC miscompile in debug mode.
Michael J. Spencer [Sat, 9 Mar 2013 01:41:27 +0000 (01:41 +0000)]
Fix (possible) MSVC miscompile in debug mode.

llvm-svn: 176748

11 years ago[Writer][ELF] Use correct data types for sizes. Fixes integer overflow bug.
Michael J. Spencer [Sat, 9 Mar 2013 01:41:16 +0000 (01:41 +0000)]
[Writer][ELF] Use correct data types for sizes. Fixes integer overflow bug.

This only happens when the section header count is > 1024.

llvm-svn: 176747

11 years agoDon't emit the extra checksum into the .gcda file if the user hasn't asked for
Nick Lewycky [Sat, 9 Mar 2013 01:33:12 +0000 (01:33 +0000)]
Don't emit the extra checksum into the .gcda file if the user hasn't asked for
it. Fortunately, versions of gcov that predate the extra checksum also ignore
any extra data, so this isn't a problem. This matches the API change made in
r176745.

llvm-svn: 176746

11 years agoDon't emit the extra checksum into the .gcda file if the user hasn't asked for
Nick Lewycky [Sat, 9 Mar 2013 01:33:06 +0000 (01:33 +0000)]
Don't emit the extra checksum into the .gcda file if the user hasn't asked for
it. Fortunately, versions of gcov that predate the extra checksum also ignore
any extra data, so this isn't a problem. There will be a matching commit in
compiler-rt.

llvm-svn: 176745

11 years ago[analyzer] Be more consistent about Objective-C methods that free memory.
Jordan Rose [Sat, 9 Mar 2013 00:59:10 +0000 (00:59 +0000)]
[analyzer] Be more consistent about Objective-C methods that free memory.

Previously, MallocChecker's pointer escape check and its post-call state
update for Objective-C method calls had a fair amount duplicated logic
and not-entirely-consistent checks. This commit restructures all this to
be more consistent and possibly allow us to be more aggressive in warning
about double-frees.

New policy (applies to system header methods only):
(1) If this is a method we know about, model it as taking/holding ownership
    of the passed-in buffer.
  (1a) ...unless there's a "freeWhenDone:" parameter with a zero (NO) value.
(2) If there's a "freeWhenDone:" parameter (but it's not a method we know
    about), treat the buffer as escaping if the value is non-zero (YES) and
    non-escaping if it's zero (NO).
(3) If the first selector piece ends with "NoCopy" (but it's not a method we
    know about and there's no "freeWhenDone:" parameter), treat the buffer
    as escaping.

The reason that (2) and (3) don't explicitly model the ownership transfer is
because we can't be sure that they will actually free the memory using free(),
and we wouldn't want to emit a spurious "mismatched allocator" warning
(coming in Anton's upcoming patch). In the future, we may have an idea of a
"generic deallocation", i.e. we assume that the deallocator is correct but
still continue tracking the region so that we can warn about double-frees.

Patch by Anton Yartsev, with modifications from me.

llvm-svn: 176744

11 years agoAdjust the special non-C++ enum block return type inference
John McCall [Sat, 9 Mar 2013 00:54:31 +0000 (00:54 +0000)]
Adjust the special non-C++ enum block return type inference
so that it looks through certain syntactic forms and applies
even if normal inference would have succeeded.

There is potential for source incompatibility from this
change, but overall we feel that it produces a much
cleaner and more defensible result, and the block
compatibility rules should curb a lot of the potential
for annoyance.

rdar://13200889

llvm-svn: 176743

11 years agoAdd TagDecl::hasNameForLinkage(), which is true if the tag
John McCall [Sat, 9 Mar 2013 00:54:27 +0000 (00:54 +0000)]
Add TagDecl::hasNameForLinkage(), which is true if the tag
is non-anonymous or is defined in a typedef of itself.

llvm-svn: 176742

11 years agoFix a reversed test for "for_expression" in creating C++ exception breakpoints.
Jim Ingham [Sat, 9 Mar 2013 00:48:58 +0000 (00:48 +0000)]
Fix a reversed test for "for_expression" in creating C++ exception breakpoints.
Add a missing "break" in processing the -h option to "breakpoint set".

llvm-svn: 176741

11 years agoFix assert in RegisterValue::SetBytes if we're trying to
Jason Molenda [Sat, 9 Mar 2013 00:04:17 +0000 (00:04 +0000)]
Fix assert in RegisterValue::SetBytes if we're trying to
write a 32-byte value into a 32-byte ymm vector reg - that
is allowed.
<rdar://problem/13350587>

llvm-svn: 176740

11 years agoDocumentation parsing. Some refactoring and code
Fariborz Jahanian [Fri, 8 Mar 2013 23:59:23 +0000 (23:59 +0000)]
Documentation parsing. Some refactoring and code
improvements per Dmtiri's comments. // rdar://12379114

llvm-svn: 176739

11 years agoRemoved One Definition Rule warnings because they're
Sean Callanan [Fri, 8 Mar 2013 23:38:53 +0000 (23:38 +0000)]
Removed One Definition Rule warnings because they're
noisy when dealing with anonymous structs.

<rdar://problem/13246914>

llvm-svn: 176738

11 years ago[analyzer] Look for lvalue nodes when tracking a null pointer.
Jordan Rose [Fri, 8 Mar 2013 23:30:56 +0000 (23:30 +0000)]
[analyzer] Look for lvalue nodes when tracking a null pointer.

r176010 introduced the notion of "interesting" lvalue expressions, whose
nodes are guaranteed never to be reclaimed by the ExplodedGraph. This was
used in bugreporter::trackNullOrUndefValue to find the region that contains
the null or undef value being tracked.

However, the /rvalue/ nodes (i.e. the loads from these lvalues that produce
a null or undef value) /are/ still being reclaimed, and if we couldn't
find the node for the rvalue, we just give up. This patch changes that so
that we look for the node for either the rvalue or the lvalue -- preferring
the former, since it lets us fall back to value-only tracking in cases
where we can't get a region, but allowing the latter as well.

<rdar://problem/13342842>

llvm-svn: 176737

11 years ago[analyzer] Don't rely on finding the correct return statement for suppression.
Jordan Rose [Fri, 8 Mar 2013 23:30:53 +0000 (23:30 +0000)]
[analyzer] Don't rely on finding the correct return statement for suppression.

Previously, ReturnVisitor waited to suppress a null return path until it
had found the inlined "return" statement. Now, it checks up front whether
the return value was NULL, and suppresses the warning right away if so.

We still have to wait until generating the path notes to invalidate the bug
report, or counter-suppression will never be triggered. (Counter-suppression
happens while generating path notes, but the generation won't happen for
reports already marked invalid.)

This isn't actually an issue today because we never reclaim nodes for
top-level statements (like return statements), but it could be an issue
some day in the future. (But, no expected behavioral change and no new
test case.)

llvm-svn: 176736

11 years agoAdding user documentation for UseAuto transform
Edwin Vane [Fri, 8 Mar 2013 23:26:00 +0000 (23:26 +0000)]
Adding user documentation for UseAuto transform

Reviewers: silvas, gribozavr
llvm-svn: 176735

11 years agoRemove wrong and unnecessary assertion.
Jakob Stoklund Olesen [Fri, 8 Mar 2013 23:00:13 +0000 (23:00 +0000)]
Remove wrong and unnecessary assertion.

PHIs are allowed to have multiple operand pairs per predecessor, and
this code works just fine when it happens.

llvm-svn: 176734

11 years agoDisable statistics on Release builds and move tests that depend on -stats.
Jan Wen Voung [Fri, 8 Mar 2013 22:56:31 +0000 (22:56 +0000)]
Disable statistics on Release builds and move tests that depend on -stats.

Summary:
Statistics are still available in Release+Asserts (any +Asserts builds),
and stats can also be turned on with LLVM_ENABLE_STATS.

Move some of the FastISel stats that were moved under DEBUG()
back out of DEBUG(), since stats are disabled across the board now.

Many tests depend on grepping "-stats" output.  Move those into
a orig_dir/Stats/. so that they can be marked as unsupported
when building without statistics.

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

llvm-svn: 176733

11 years ago[libclang] Change clang_findReferencesInFile and clang_findIncludesInFile to return...
Argyrios Kyrtzidis [Fri, 8 Mar 2013 22:47:41 +0000 (22:47 +0000)]
[libclang] Change clang_findReferencesInFile and clang_findIncludesInFile to return an enum,
as suggested by Jordan.

llvm-svn: 176732

11 years ago<rdar://problem/13170740> Be a little more careful when instantiating 'this' expressions.
Douglas Gregor [Fri, 8 Mar 2013 22:43:48 +0000 (22:43 +0000)]
<rdar://problem/13170740> Be a little more careful when instantiating 'this' expressions.

llvm-svn: 176731

11 years agoMove clang tests that depend on llvm/ADT/Statistic.h to a subdir.
Jan Wen Voung [Fri, 8 Mar 2013 22:42:02 +0000 (22:42 +0000)]
Move clang tests that depend on llvm/ADT/Statistic.h to a subdir.

The subdirectory has a lit.local.cfg that marks the tests unsupported
if llvm was built without Asserts.  There will be a patch in LLVM
that disables statistics gathering when built without Asserts so
that full Release builds can be faster.  Statistics can also
be enabled by building with -DLLVM_ENABLE_STATS.

llvm-svn: 176730

11 years agoClean up out-of-date comments and some stray whitespace
Eli Bendersky [Fri, 8 Mar 2013 22:29:44 +0000 (22:29 +0000)]
Clean up out-of-date comments and some stray whitespace

llvm-svn: 176729

11 years agoSema: Preserve attributes on parameters in instantiated function templates.
Jordan Rose [Fri, 8 Mar 2013 22:25:36 +0000 (22:25 +0000)]
Sema: Preserve attributes on parameters in instantiated function templates.

This was causing correctness issues for ARC and the static analyzer when a
function template has "consumed" Objective-C object parameters (i.e.
parameters that will be released by the function before returning).

The fix is threefold:
(1) Actually copy over the attributes from old ParmVarDecls to new ones.
(2) Have Sema::BuildFunctionType only work for building FunctionProtoTypes,
    which it was doing anyway. This allows us to pass an ExtProtoInfo
    instead of a plain ExtInfo and several flags.
(3) Drop param attributes as part of StripImplicitInstantiation, which is
    used when an implicit instantiation is followed by an explicit one.

<rdar://problem/12685622>

llvm-svn: 176728

11 years ago<rdar://problem/13094134> Don't try to wire up typedef names for invalid anonymous...
Douglas Gregor [Fri, 8 Mar 2013 22:15:15 +0000 (22:15 +0000)]
<rdar://problem/13094134> Don't try to wire up typedef names for invalid anonymous tag declarations encountered during template instantiation.

llvm-svn: 176727

11 years agoArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType.
Jordan Rose [Fri, 8 Mar 2013 21:51:21 +0000 (21:51 +0000)]
ArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType.

No (intended) functionality change.

llvm-svn: 176726

11 years ago<rdar://problem/13361742>
Greg Clayton [Fri, 8 Mar 2013 21:46:30 +0000 (21:46 +0000)]
<rdar://problem/13361742>

Don't resolve .o file locations when setting the file spec for each .o file in DWARF with debug map. We should trust the path.

llvm-svn: 176725

11 years ago[ELF] Create baseclass for all ELF writers
Shankar Easwaran [Fri, 8 Mar 2013 21:42:51 +0000 (21:42 +0000)]
[ELF] Create baseclass for all ELF writers

llvm-svn: 176724

11 years ago<rdar://problem/13140795> Transform the scope type of a pseudo-destructor expression...
Douglas Gregor [Fri, 8 Mar 2013 21:25:01 +0000 (21:25 +0000)]
<rdar://problem/13140795> Transform the scope type of a pseudo-destructor expression within the object scope.

We were transforming the scope type of a pseudo-destructor expression
(e.g., the first T in x->T::~T()) as a freestanding type, which meant
that dependent template specialization types here would stay dependent
even when no template parameters were named. This would eventually
mean that a dependent expression would end up in what should be
fully-instantiated ASTs, causing IRgen to assert.

llvm-svn: 176723

11 years agoEarly exit from getAllocationData() and isFreeCall() for intrinsics.
Michael Ilseman [Fri, 8 Mar 2013 21:15:00 +0000 (21:15 +0000)]
Early exit from getAllocationData() and isFreeCall() for intrinsics.

llvm-svn: 176722

11 years agoAssert to bounds check MDNode::getOperand.
David Blaikie [Fri, 8 Mar 2013 21:08:23 +0000 (21:08 +0000)]
Assert to bounds check MDNode::getOperand.

The getOperandPtr utility already bounds checks, but allows one-off-the-end.
This assert should catch the cases that could previously have been dereferencing
these one-off-the-end pointer. Happily, no cases of this came up with this
change.

llvm-svn: 176721

11 years agoRemove trailing whitespace
Michael Ilseman [Fri, 8 Mar 2013 21:03:09 +0000 (21:03 +0000)]
Remove trailing whitespace

llvm-svn: 176720

11 years agoOptionValueFileSpec shouldn't be doing argument
Sean Callanan [Fri, 8 Mar 2013 20:59:47 +0000 (20:59 +0000)]
OptionValueFileSpec shouldn't be doing argument
parsing on the file name it gets.  That confuses
it if there are spaces in the file name.

<rdar://problem/13380392>

llvm-svn: 176719

11 years agoDump the measurements directly instead of getting their metrics first
Enrico Granata [Fri, 8 Mar 2013 20:50:36 +0000 (20:50 +0000)]
Dump the measurements directly instead of getting their metrics first
(this code needs to be pushed up so that in the basic scenarios TestCase knows to dump all its measurements directly)

llvm-svn: 176718

11 years ago[PCH] When complaining that a header from the PCH was modified, also mention
Argyrios Kyrtzidis [Fri, 8 Mar 2013 20:42:38 +0000 (20:42 +0000)]
[PCH] When complaining that a header from the PCH was modified, also mention
the filename of the PCH file.

llvm-svn: 176717

11 years ago[libclang] Modify clang_findReferencesInFile and clang_findIncludesInFile to return...
Argyrios Kyrtzidis [Fri, 8 Mar 2013 20:42:33 +0000 (20:42 +0000)]
[libclang] Modify clang_findReferencesInFile and clang_findIncludesInFile to return a value.

Possible values are:
 1  : if a parameter was invalid
 -1 : if the callback returned CXVisit_Break,
 otherwise returns 0.

llvm-svn: 176716

11 years agoInitial checkin of a new project: LLDB Performance Testing Infrastructure
Enrico Granata [Fri, 8 Mar 2013 20:29:13 +0000 (20:29 +0000)]
Initial checkin of a new project: LLDB Performance Testing Infrastructure

This is a very basic implementation of a library that easily allows to drive LLDB.framework to write test cases for performance

This is separate from the LLDB testsuite in test/ in that:
a) this uses C++ instead of Python to avoid measures being affected by SWIG
b) this is in very early development and needs lots of tweaking before it can be considered functionally complete
c) this is not meant to test correctness but to help catch performance regressions

There is a sample application built against the library (in darwin/sketch) that uses the famous sample app Sketch as an inferior to measure certain basic parameters of LLDB's behavior.
The resulting output is a PLIST much like the following:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>fetch-frames</key>
<real>0.13161715522222225</real>
</dict>
<dict>
<key>file-line-bkpt</key>
<real>0.029111678750000002</real>
</dict>
<dict>
<key>fetch-modules</key>
<real>0.00026376766666666668</real>
</dict>
<dict>
<key>fetch-vars</key>
<real>0.17820429311111111</real>
</dict>
<dict>
<key>run-expr</key>
<real>0.029676525769230768</real>
</dict>
</array>
</plist>

Areas for improvement:
- code cleanups (I will be out of the office for a couple days this coming week, but please keep ideas coming!)
- more metrics and test cases
- better error checking

This toolkit also comprises a simple event-loop-driven controller for LLDB, similar yet much simpler to what the Driver does to implement the lldb command-line tool.

llvm-svn: 176715

11 years agoAdded very lightweight, statically-allocated
Sean Callanan [Fri, 8 Mar 2013 20:04:57 +0000 (20:04 +0000)]
Added very lightweight, statically-allocated
counters for a variety of metrics associated
with expression parsing.  This should give some
idea of how much work the expression parser is
doing on Clang's behalf, and help with hopefully
reducing that load over time.

<rdar://problem/13210748> Audit type search/import for expressions

llvm-svn: 176714

11 years agoRemoving 'modindex' from clang-tools-extra doc index
Edwin Vane [Fri, 8 Mar 2013 19:20:07 +0000 (19:20 +0000)]
Removing 'modindex' from clang-tools-extra doc index

There are no python modules in clang-tools-extra so a link to this
auto-generated page, which currently isn't generated anyway, is not necessary.

llvm-svn: 176713

11 years agoFixing Doxygen warnings in cpp11-migrate
Edwin Vane [Fri, 8 Mar 2013 19:12:12 +0000 (19:12 +0000)]
Fixing Doxygen warnings in cpp11-migrate

Turned on doxygen warnings and fixed the resulting problems.

llvm-svn: 176712

11 years agoParsing floating point numbers with very long precision was broken, and this patch...
Howard Hinnant [Fri, 8 Mar 2013 19:06:24 +0000 (19:06 +0000)]
Parsing floating point numbers with very long precision was broken, and this patch fixes it.  This fixes llvm.org/bugs/show_bug.cgi?id=15445.

llvm-svn: 176711

11 years agoFixes breaking of string literals.
Manuel Klimek [Fri, 8 Mar 2013 18:59:48 +0000 (18:59 +0000)]
Fixes breaking of string literals.

1. We now ignore all non-default string literals, including raw
literals.
2. We do not break inside escape sequences any more.

FIXME: We still break in trigraphs.
llvm-svn: 176710

11 years agoTurned no_xform into a pass from expected failure.
Edwin Vane [Fri, 8 Mar 2013 18:39:07 +0000 (18:39 +0000)]
Turned no_xform into a pass from expected failure.

Since no_xform is not a bug to be fixed, made the test pass using the 'not'
utility and removed XFAIL.

llvm-svn: 176709

11 years agoNo really, don't use end().
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:36:36 +0000 (18:36 +0000)]
No really, don't use end().

Clearly, this function is never actually called with the last
instruction in the function.

llvm-svn: 176708

11 years agoRemove -print-dbginfo as it is unused & bitrotten.
David Blaikie [Fri, 8 Mar 2013 18:17:46 +0000 (18:17 +0000)]
Remove -print-dbginfo as it is unused & bitrotten.

This pass hasn't been touched in two years & would fail with assertions against
the current debug info metadata format (the only test case for it still uses a
many-versions old debug info metadata format)

llvm-svn: 176707

11 years agoRewrite the physreg part of findLastUseBefore().
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:08:57 +0000 (18:08 +0000)]
Rewrite the physreg part of findLastUseBefore().

To find the last use of a register unit, start from the bottom and scan
upwards until a user is found.

<rdar://problem/13353090>

llvm-svn: 176706

11 years agoAvoid creating a SlotIndex from the end() iterator.
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:08:54 +0000 (18:08 +0000)]
Avoid creating a SlotIndex from the end() iterator.

No test case, spotted by inspection.

llvm-svn: 176705

11 years agoRemove unused variable.
Benjamin Kramer [Fri, 8 Mar 2013 17:04:47 +0000 (17:04 +0000)]
Remove unused variable.

llvm-svn: 176704

11 years agoRemove default from fully covered switch.
Benjamin Kramer [Fri, 8 Mar 2013 17:03:19 +0000 (17:03 +0000)]
Remove default from fully covered switch.

llvm-svn: 176703

11 years agoForce cpu in test.
Benjamin Kramer [Fri, 8 Mar 2013 17:01:18 +0000 (17:01 +0000)]
Force cpu in test.

llvm-svn: 176702

11 years agoInsert the reduction start value into the first bypass block to preserve domination.
Benjamin Kramer [Fri, 8 Mar 2013 16:58:37 +0000 (16:58 +0000)]
Insert the reduction start value into the first bypass block to preserve domination.

Fixes PR15344.

llvm-svn: 176701

11 years agoR600: Optimize another selectcc case
Tom Stellard [Fri, 8 Mar 2013 15:37:11 +0000 (15:37 +0000)]
R600: Optimize another selectcc case

fold selectcc (selectcc x, y, a, b, cc), b, a, b, setne ->
     selectcc x, y, a, b, cc

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176700

11 years agoR600: Improve custom lowering of select_cc
Tom Stellard [Fri, 8 Mar 2013 15:37:09 +0000 (15:37 +0000)]
R600: Improve custom lowering of select_cc

Two changes:
1. Prefer SET* instructions when possible
2. Handle the CND*_INT case with floating-point args

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176699

11 years agoR600: Change operation action from Custom to Expand for BR_CC
Tom Stellard [Fri, 8 Mar 2013 15:37:07 +0000 (15:37 +0000)]
R600: Change operation action from Custom to Expand for BR_CC

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176698

11 years agoR600: Change operation action from Custom to Expand for SETCC
Tom Stellard [Fri, 8 Mar 2013 15:37:05 +0000 (15:37 +0000)]
R600: Change operation action from Custom to Expand for SETCC

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176697

11 years agoR600: Set BooleanContents to ZeroOrNegativeOneBooleanContent
Tom Stellard [Fri, 8 Mar 2013 15:37:03 +0000 (15:37 +0000)]
R600: Set BooleanContents to ZeroOrNegativeOneBooleanContent

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176696

11 years agoLegalizeDAG: Respect the result of TLI.getBooleanContents() when expanding SETCC
Tom Stellard [Fri, 8 Mar 2013 15:37:02 +0000 (15:37 +0000)]
LegalizeDAG: Respect the result of TLI.getBooleanContents() when expanding SETCC

llvm-svn: 176695

11 years agoDAGCombiner: Use correct value type for checking legality of BR_CC v3
Tom Stellard [Fri, 8 Mar 2013 15:36:57 +0000 (15:36 +0000)]
DAGCombiner: Use correct value type for checking legality of BR_CC v3

LegalizeDAG.cpp uses the value of the comparison operands when checking
the legality of BR_CC, so DAGCombiner should do the same.

v2:
  - Expand more BR_CC value types for NVPTX

v3:
  - Expand correct BR_CC value types for Hexagon, Mips, and XCore.

llvm-svn: 176694

11 years agoR600: Change addresspace in fold-kcache.ll
Vincent Lejeune [Fri, 8 Mar 2013 15:34:07 +0000 (15:34 +0000)]
R600: Change addresspace in fold-kcache.ll

AddressSpace definition has changed in a previous commit, reflect it
to avoid false failure.

llvm-svn: 176693

11 years agoAArch64: specify full triple in test as only Linux works for now.
Tim Northover [Fri, 8 Mar 2013 15:27:30 +0000 (15:27 +0000)]
AArch64: specify full triple in test as only Linux works for now.

llvm-svn: 176692

11 years agoR600/SI: adjust test to recent changes
Christian Konig [Fri, 8 Mar 2013 14:44:00 +0000 (14:44 +0000)]
R600/SI: adjust test to recent changes

Signed-off-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176691

11 years agoExtend loop variable naming checks
Edwin Vane [Fri, 8 Mar 2013 14:15:18 +0000 (14:15 +0000)]
Extend loop variable naming checks

The loop convert tests for conflicting names have been extended to check for
macro names, types, and language keywords including language extensions. Tests
have also been added.

Fixes PR15322

Author: Jack Yang <jack.yang@intel.com>
Reviewer: gribozavr, klimek, revane
llvm-svn: 176690