aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2012-03-30[analyzer] Do not inline functions which previously reached max blockAnna Zaks
count. This is an optimization for "retry without inlining" option. Here, if we failed to inline a function due to reaching the basic block max count, we are going to store this information and not try to inline it again in the translation unit. This can be viewed as a function summary. On sqlite, with this optimization, we are 30% faster then before and cover 10% more basic blocks (partially because the number of times we reach timeout is decreased by 20%). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153730 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Handle placeholder expressions in an ObjC for-collection loop.John McCall
The way we handle this implicitly removes the ability to use property l-values in this position, but that's really okay. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153729 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30ItaniumCXXABI.cpp: Don't use nullptr. Clang source tree should be ↵NAKAMURA Takumi
pre-c++11-compatible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153728 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Revert previous commit changing location information to see if thisEric Christopher
is causing the gdb test failures on the bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153727 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Add _mm_minpos_epu16 to smmintrin.h. Fixes PR12399.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153726 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Forbid the block and lambda copy-capture of __autoreleasing variablesJohn McCall
in ARC, under the usual reasoning limiting the use of __autoreleasing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153725 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Fix shuffle vector calculation for mm_permute_ps. Fixes PR 12401.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153724 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30When emitting a static local variable in C++, handleJohn McCall
the case that the variable already exists. Partly this is just protection against people making crazy declarations with custom asm labels or extern "C" names that intentionally collide with the manglings of such variables, but the main reason is that we can actually emit a static local variable twice with the requirement that it match up. There may be other cases with (e.g.) the various nested functions, but the main exemplar is with constructor variants, where we can be forced into double-emitting the function body under certain circumstances like (currently) the presence of virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153723 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Add a note about a missing optimization in the case of virtualJohn McCall
inheritance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153722 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Missing piece of r153720: make sure the vtable pointer is handled correctly.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153721 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30ConstStructBuilder: fix offset math for base classes so it works correctly ↵Eli Friedman
in general. Found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153720 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Make sure we perform the relevant implied conversions correctly for ObjC ↵Eli Friedman
methods with related result types. PR12384. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153716 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Change location information for synthesized properties to be at theEric Christopher
property file/line rather than the @synthesize file/line. Avoids some nasty confusing-ness with conflating the file from the scope and the line from the original declaration. Update a couple of testcases accordingly since I had to change that we actually use the passed in location in EmitFunctionStart. Fixes rdar://11026482 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153714 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30The UTF16 string referenced by a CFString should go into the __TEXT,__ustringBill Wendling
section. A 'normal' string will go into the __TEXT,__const section, but this isn't good for UTF16 strings. The __ustring section allows for coalescing, among other niceties (such as allowing the linker to easily split up strings). Instead of outputting the UTF16 string as a series of bytes, output it as a series of shorts. The back-end will then nicely place the UTF16 string into the correct section, because it's a mensch. <rdar://problem/10655949> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153710 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-30Add info to ObjCPropertyRefExpr to indicate whether the dot syntax propertyArgyrios Kyrtzidis
reference is going to message the setter, the getter, or both. Having this info on the ObjCPropertyRefExpr node makes it easier for AST clients (like libclang) to reason about the meaning of the property reference. [AST/Sema] -Use 2 bits (with a PointerIntPair) in ObjCPropertyRefExpr to record the above info -Have ObjCPropertyOpBuilder set the info appropriately. [libclang] -When there is an implicit property reference (property syntax using methods) have clang_getCursorReferenced return a cursor for the method. If the property reference is going to result in messaging both the getter and the setter choose to return a cursor for the setter because it is less obvious from source inspection that the setter is getting called. The general idea has the seal of approval by John. rdar://11151621 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153709 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Extend -Wc++11-narrowing to cover converted constant expressions as well as ↵Eli Friedman
braced-initializers. <rdar://problem/11121178>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153703 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Fix whitespace.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153698 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29ARM backend knows about cortex-m4. The front end should too.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153678 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29modern objc translator: avoid some duplicate declarations.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153674 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Refactor special member function deletion. No functionality change.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153673 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Call out to GCC-compatible runtime functions for atomic ops that we can't useDavid Chisnall
LLVM intrinsics for. I have an implementation of these functions, which wants to go in a libgcc_s equivalent in compiler-rt. It's currently here: http://people.freebsd.org/~theraven/atomic.c It will be committed to compiler-rt as soon as I work out where would be a sensible place to put it... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153666 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Pass parameters in the correct order when assembling an AtomicExpr.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153665 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29modern objective-c translator: fix up assortment ofFariborz Jahanian
visibility directives for a variety of exported meta-data symbols. // rdar://11144048 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153663 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Revert r153613 as it's causing large compile-time regressions on the nightly ↵Chad Rosier
testers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153660 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Go back to using just the selector name for the getter and setterEric Christopher
in the property debug info. Any more isn't necessary after all. rdar://11144023 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153659 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Tidy.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153658 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Make ModuleMapParser own its TargetInfo, so it doesn't get leaked.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153648 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29 Add support for objc property decls according to the page at:Eric Christopher
http://llvm.org/docs/SourceLevelDebugging.html#objcproperty including type and DECL. Expand the getter and setter names into the fully qualified names. rdar://11144023 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153640 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29unwind.h fix for -fvisibility=hidden users. This fixes firefox build in a systemRafael Espindola
with libunwind installed. Patch by Jeffrey Yasskin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153633 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Reject 'template<typename...Ts> void f(Ts ...(x));'. Add a special-caseRichard Smith
diagnostic and a fix-it to explain to the user where the ellipsis is supposed to go. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153622 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29[arcmt] Fix a bug where a property in a class extension, that did not existArgyrios Kyrtzidis
in the interface, got its attribute rewritten twice, resulting in 'weakweak' or 'strongstrong'. rdar://11047179 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153621 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-29Define __LITTLE_ENDIAN__ for le32, since "le" stands for little endian.Jan Wen Voung
Add a test for this too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153616 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28When we can't prove that the target of an aggregate copy isJohn McCall
a complete object, the memcpy needs to use the data size of the structure instead of its sizeof() value. Fixes PR12204. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153613 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28[analyzer] Enable retry exhausted without inlining by default.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153591 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28Fix the type of wchar_t on Solaris.David Chisnall
Patch by Dmitri Shubin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153585 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28objective-c: Improve diagnostics andFariborz Jahanian
provide 'fixit' hint when dictionary index is not of proper type. // rdar://11062080 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153584 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28[analyser] Stats checker: do not mark a node as exhausted if we willAnna Zaks
retry without inlining. (+ other minor cleanups) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153581 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28[analyzer] Refactor: Use Decl when determining if the Block belongs toAnna Zaks
the root function. (This is a bit cleaner then using the StackFrame.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153580 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28CodeGen/CGDeclCXX.cpp: Twine-ize CreateGlobalInitOrDestructFunction().NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153578 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28Unify and fix our checking of C++ [dcl.meaning]p1's requirementsDouglas Gregor
concerning qualified declarator-ids. We now diagnose extraneous qualification at namespace scope (which we had previously missed) and diagnose these qualification errors for all kinds of declarations; it was rather uneven before. Fixes <rdar://problem/11135644>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153577 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28When we form a new function/class template specialization, we firstDouglas Gregor
search for the specialization (in a folding set) and, if not found form a *Decl that is then inserted into that folding set. In rare cases, the folding set may be reallocated between the search and the insertion, causing a crash. No test case, because triggering rehashing consistently in a small test case is not feasible. Fixes <rdar://problem/11115071>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153575 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-28Fix suspicious comparison reported by PVS-Studio!Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153568 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27Move the emission of strict enum range metadata behind a flag (the sameChandler Carruth
flag as GCC uses: -fstrict-enums). There is a *lot* of code making unwarranted assumptions about the underlying type of enums, and it doesn't seem entirely reasonable to eagerly break all of it. Much more importantly, the current state of affairs is *very* good at optimizing based upon this information, which causes failures that are very distant from the actual enum. Before we push for enabling this by default, I think we need to implement -fcatch-undefined-behavior support for instrumenting and trapping whenever we store or load a value outside of the range. That way we can track down the misbehaving code very quickly. I discussed this with Rafael, and currently the only important cases he is aware of are the bool range-based optimizations which are staying hard enabled. We've not seen any issue with those either, and they are much more important for performance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153550 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27Introduce a new libclang API to determine the parent context of a codeDouglas Gregor
completion item. For example, if the code completion itself represents a declaration in a namespace (say, std::vector), then this API retrieves the cursor kind and name of the namespace (std). Implements <rdar://problem/11121951>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153545 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27If we see '(...' where we're expecting an abstract-declarator, that doesn'tRichard Smith
necessarily mean we've found a function declarator. If the next token is not a ')', this is actually a parenthesized pack expansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153544 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27modern objective-c translator: writing objc boolean literals.Fariborz Jahanian
// rdar://11124775 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153535 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27[analyzer] Add an option to re-analyze a dead-end path without inlining.Anna Zaks
The analyzer gives up path exploration under certain conditions. For example, when the same basic block has been visited more than 4 times. With inlining turned on, this could lead to decrease in code coverage. Specifically, if we give up inside the inlined function, the rest of parent's basic blocks will not get analyzed. This commit introduces an option to enable re-run along the failed path, in which we do not inline the last inlined call site. This is done by enqueueing the node before the processing of the inlined call site with a special policy encoded in the state. The policy tells us not to inline the call site along the path. This lead to ~10% increase in the number of paths analyzed. Even though we expected a much greater coverage improvement. The option is turned off by default for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153534 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27[analyzer] Stats checker: minor interprocedural tweaks.Anna Zaks
Report root function name with exhausted block diagnostic. Also, use stack frames, not just any location context when checking if the basic block is in the same context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153532 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27[analyzer] Stats: Only count the number of times we run path sensitiveAnna Zaks
analyzes. (This method can be called twice on the same function.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153531 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27Add better support for $fp and $sp for mips inline asm support.Eric Christopher
Patch by Jack Carter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153530 91177308-0d34-0410-b5e6-96231b3b80d8