Anna Zaks [Sat, 9 Mar 2013 03:23:14 +0000 (03:23 +0000)]
[analyzer] Rename AttrNonNullChecker -> NonNullParamChecker
llvm-svn: 176755
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
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
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
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
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
Michael J. Spencer [Sat, 9 Mar 2013 01:41:37 +0000 (01:41 +0000)]
[Driver][GNU] Accept and ignore more options.
llvm-svn: 176749
Michael J. Spencer [Sat, 9 Mar 2013 01:41:27 +0000 (01:41 +0000)]
Fix (possible) MSVC miscompile in debug mode.
llvm-svn: 176748
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Shankar Easwaran [Fri, 8 Mar 2013 21:42:51 +0000 (21:42 +0000)]
[ELF] Create baseclass for all ELF writers
llvm-svn: 176724
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
Michael Ilseman [Fri, 8 Mar 2013 21:15:00 +0000 (21:15 +0000)]
Early exit from getAllocationData() and isFreeCall() for intrinsics.
llvm-svn: 176722
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
Michael Ilseman [Fri, 8 Mar 2013 21:03:09 +0000 (21:03 +0000)]
Remove trailing whitespace
llvm-svn: 176720
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Benjamin Kramer [Fri, 8 Mar 2013 17:04:47 +0000 (17:04 +0000)]
Remove unused variable.
llvm-svn: 176704
Benjamin Kramer [Fri, 8 Mar 2013 17:03:19 +0000 (17:03 +0000)]
Remove default from fully covered switch.
llvm-svn: 176703
Benjamin Kramer [Fri, 8 Mar 2013 17:01:18 +0000 (17:01 +0000)]
Force cpu in test.
llvm-svn: 176702
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
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
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
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
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
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
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
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
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
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
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
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
Jyotsna Verma [Fri, 8 Mar 2013 14:15:15 +0000 (14:15 +0000)]
Hexagon: Add patterns for zero extended loads from i1->i64.
llvm-svn: 176689
Tim Northover [Fri, 8 Mar 2013 13:55:07 +0000 (13:55 +0000)]
AArch64: expand sincos operations, we don't support them.
Patch based on Mans Rullgard's.
llvm-svn: 176688
Michel Danzer [Fri, 8 Mar 2013 10:58:01 +0000 (10:58 +0000)]
R600/SI: Use source scheduler
This is certainly not the last word on scheduling for this target, but
right now this allows a few apps to run / finish with radeonsi, most
notably UT2004 / Lightsmark. They fail to compile some shaders with the
default scheduler because it ends up trying to spill registers, which
we don't support yet (and which is probably a bad idea in general for
performance if it can be avoided).
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176687
Joey Gouly [Fri, 8 Mar 2013 09:42:32 +0000 (09:42 +0000)]
Add support for the OpenCL attribute 'vec_type_hint'.
Patch by Murat Bolat!
llvm-svn: 176686
Andrew Trick [Fri, 8 Mar 2013 05:40:34 +0000 (05:40 +0000)]
Add -verify-misched option.
This verifies live intervals both before and after scheduling. It's
useful for anyone hacking on live interval update.
Note that we don't yet pass verification all the time. We don't yet
handle updating nonallocatable live intervals perfectly.
llvm-svn: 176685
Jason Molenda [Fri, 8 Mar 2013 04:33:44 +0000 (04:33 +0000)]
Update PlatformDarwin to understand how armv7m / armv7em relate
to the other armv7 types as far as compatibility/interchangability
goes.
<rdar://problem/
13361372>
llvm-svn: 176684
Greg Clayton [Fri, 8 Mar 2013 02:42:06 +0000 (02:42 +0000)]
<rdar://problem/
13374267>
Fixed error where objective C methods with selectors names starting with ".cxx_" where causing errors for ARC built binaries.
llvm-svn: 176683
Argyrios Kyrtzidis [Fri, 8 Mar 2013 02:32:34 +0000 (02:32 +0000)]
[libclang] Introduce clang_findIncludesInFile, that can be used to retrieve all #import/#include directives in a specific file.
It passes to the visitor, that the caller provides, CXCursor_InclusionDirective cursors for
all the include directives in a particular file.
llvm-svn: 176682
Argyrios Kyrtzidis [Fri, 8 Mar 2013 02:32:29 +0000 (02:32 +0000)]
[libclang] When calling the function of CXCursorAndRangeVisitor, don't forget to
stop visitation if it returns CXVisit_Break.
llvm-svn: 176681
Argyrios Kyrtzidis [Fri, 8 Mar 2013 02:32:26 +0000 (02:32 +0000)]
[libclang] Add Logger::operator<< overloads for CXCursor and FileEntry.
llvm-svn: 176680
David Blaikie [Fri, 8 Mar 2013 02:27:40 +0000 (02:27 +0000)]
Another test fix for r176671.
llvm-svn: 176679
David Blaikie [Fri, 8 Mar 2013 02:26:16 +0000 (02:26 +0000)]
Couple of test fixes for r176671.
Not sure why these aren't failing on my linux machine, but this should cover
it.
llvm-svn: 176678
Bill Wendling [Fri, 8 Mar 2013 02:21:08 +0000 (02:21 +0000)]
Revert r176154 in favor of a better approach.
Code generation makes some basic assumptions about the IR it's been given. In
particular, if there is only one 'invoke' in the function, then that invoke
won't be going away. However, with the advent of the `llvm.donothing' intrinsic,
those invokes may go away. If all of them go away, the landing pad no longer has
any users. This confuses the back-end, which asserts.
This happens with SjLj exceptions, because that's the model that modifies the IR
based on there being invokes, etc. in the function.
Remove any invokes of `llvm.donothing' during SjLj EH preparation. This will
give us a CFG that the back-end won't be confused about. If all of the invokes
in a function are removed, then the SjLj EH prepare pass won't insert the bogus
code the relies upon the invokes being there.
<rdar://problem/
13228754&
13316637>
llvm-svn: 176677
Greg Clayton [Fri, 8 Mar 2013 01:37:30 +0000 (01:37 +0000)]
<rdar://problem/
13119621>
Make dynamic type detection faster by using the AST metadata to help out and allow us not to complete types when we don't need to.
After running "purge" on a MacOSX system, the Xcode variables view now populates more than 3x faster with this fix.
llvm-svn: 176676
Chris Lattner [Fri, 8 Mar 2013 01:26:10 +0000 (01:26 +0000)]
remove an ancient and quaint bit of commented out makefile goo from when
GCC was the system compiler on the mac.
llvm-svn: 176675
Jason Molenda [Fri, 8 Mar 2013 01:20:17 +0000 (01:20 +0000)]
Add recognition of two more armv7 variants, armv7m and armv7em.
<rdar://problem/
13361372>
llvm-svn: 176674
Jim Ingham [Fri, 8 Mar 2013 00:31:40 +0000 (00:31 +0000)]
Add a comment to break disable's help to make clearer the relationship between the
enable/disable state of a breakpoint, and of its locations.
llvm-svn: 176672
David Blaikie [Fri, 8 Mar 2013 00:23:31 +0000 (00:23 +0000)]
Upgrade tests to the latest debug info format.
Mostly this is just changing the named metadata (llvm.dbg.sp, llvm.dbg.gv,
llvm.dbg.<func>.lv, etc -> llvm.dbg.cu), adding a few fields to older records
(DIVariable: flags/inlined-at, DICompileUnit: sp/gv/types,
DISubprogram: local variables list)
The tests to update were discovered by a change I'm working on to remove debug
info version support - so any tests using old debug info versions I haven't
updated probably are bad tests or just not actually designed to test debug
info.
llvm-svn: 176671
Chad Rosier [Fri, 8 Mar 2013 00:05:21 +0000 (00:05 +0000)]
[driver] If we're just linking, don't report --param X as unused option.
PR15327
rdar://
13372628
llvm-svn: 176670
Jakob Stoklund Olesen [Thu, 7 Mar 2013 23:55:51 +0000 (23:55 +0000)]
Add a getPassName() method.
llvm-svn: 176669
Jakob Stoklund Olesen [Thu, 7 Mar 2013 23:55:49 +0000 (23:55 +0000)]
Rename isEarlierInSameTrace to isUsefulDominator.
In very rare cases caused by irreducible control flow, the dominating
block can have the same trace head without actually being part of the
trace.
As long as such a dominator still has valid instruction depths, it is OK
to use it for computing instruction depths.
Rename the function to avoid lying, and add a check that instruction
depths are computed for the dominator.
llvm-svn: 176668
Fariborz Jahanian [Thu, 7 Mar 2013 23:33:11 +0000 (23:33 +0000)]
HeaderDoc: Support more of HeaderDoc documentation
commands; top level tags such as @interface and
their 2nd level tags such as @coclass, etc.
// rdar://
12379114
llvm-svn: 176667
Douglas Gregor [Thu, 7 Mar 2013 23:26:24 +0000 (23:26 +0000)]
Add code completion for @import <rdar://problem/
13344306>.
llvm-svn: 176666
Douglas Gregor [Thu, 7 Mar 2013 22:57:58 +0000 (22:57 +0000)]
Improve LLDB's implicit cast-to-id to work with C++11 auto and any Objective-C object type <rdar://problem/
13338107>.
llvm-svn: 176665
Jason Molenda [Thu, 7 Mar 2013 22:44:42 +0000 (22:44 +0000)]
Typeo in warning message.
llvm-svn: 176664
Douglas Gregor [Thu, 7 Mar 2013 22:38:24 +0000 (22:38 +0000)]
When possible, move __block variables to the heap rather than copying them.
Fixes <rdar://problem/
13330126>.
llvm-svn: 176663
Sean Callanan [Thu, 7 Mar 2013 22:29:06 +0000 (22:29 +0000)]
Updated Apple LLDB version to lldb-300.99.0. Also
updated the build system to support the new Apple
LLDB versioning scheme.
llvm-svn: 176662
Jakub Staszak [Thu, 7 Mar 2013 22:20:06 +0000 (22:20 +0000)]
Keep coding stanard.
llvm-svn: 176661
Jakub Staszak [Thu, 7 Mar 2013 22:10:33 +0000 (22:10 +0000)]
Don't create IRBuilder if we can return from the method earlier.
llvm-svn: 176660
Chad Rosier [Thu, 7 Mar 2013 21:38:33 +0000 (21:38 +0000)]
[fast-isel] Seriously, add support for the expect intrinsic.
rdar://
13370942
llvm-svn: 176659
John McCall [Thu, 7 Mar 2013 21:37:17 +0000 (21:37 +0000)]
Promote atomic type sizes up to a power of two, capped by
MaxAtomicPromoteWidth. Fix a ton of terrible bugs with
_Atomic types and (non-intrinsic-mediated) loads and stores
thereto.
llvm-svn: 176658
John McCall [Thu, 7 Mar 2013 21:37:12 +0000 (21:37 +0000)]
Move the atomics code into its own file.
llvm-svn: 176657
John McCall [Thu, 7 Mar 2013 21:37:08 +0000 (21:37 +0000)]
Change hasAggregateLLVMType, which conflates complex and
aggregate types in a profoundly wrong way that has to be
worked around in every call site, to getEvaluationKind,
which classifies and distinguishes between all of these
cases.
Also, normalize the API for loading and storing complexes.
I'm working on a larger patch and wanted to pull these
changes out, but it would have be annoying to detangle
them from each other.
llvm-svn: 176656
John McCall [Thu, 7 Mar 2013 21:37:02 +0000 (21:37 +0000)]
Add CharUnits::alignmentAtOffset.
llvm-svn: 176655