aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-12-10Do not substitute template types if template has dependent contextPeter Collingbourne
We should not substitute template types if the template has a dependent context because the template argument stack is not yet fully formed. Instead, defer substitution until the template has a non-dependent context (i.e. instantiation of an outer template). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121491 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Fix a compiler warning.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121490 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Eliminate the branching in QualType::getTypePtr() by providing aDouglas Gregor
common base for ExtQuals and Type that stores the underlying type pointer. This results in a 2% performance win for -emit-llvm on a typical C file, with 1% memory growth in the AST. Note that there is an API change in this optimization: QualType::getTypePtr() can no longer be invoked on a NULL QualType. If the QualType might be NULL, use QualType::getTypePtrOrNull(). I've audited all uses of getTypePtr() in the code base and changed the appropriate uses over to getTypePtrOrNull(). A future optimization opportunity would be to distinguish between cast/dyn_cast and cast_or_null/dyn_cast_or_null; for the former, we could use getTypePtr() rather than getTypePtrOrNull(), to take another branch out of the cast/dyn_cast implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121489 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Added ParenType type node.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121488 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Silence GCC warning about comparisons between enumerators of different typesDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121486 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Another dummy commit to check GIT mirroringAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121482 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10It's kindof silly that ExtQuals has an ASTContext&, and we can use thatJohn McCall
space better. Remove this reference. To make that work, change some APIs (most importantly, getDesugaredType()) to take an ASTContext& if they need to return a QualType. Simultaneously, diminish the need to return a QualType by introducing some useful APIs on SplitQualType, which is just a std::pair<const Type *, Qualifiers>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121478 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Update ExtQuals comment to reflect the expansion of the fast qualifiersDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121477 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Optimize memory usage of FunctionProtoType on MSVC.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121475 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Move the "volatile" bit into QualType's "fast" qualifier set,Douglas Gregor
increasing the required type alignment from 8 to 16. This provides a 2.5% speedup for -fsyntax-only on a token-cached Cocoa.h, while only increasing memory consumption in the ASTContext by 0.8%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121474 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Use TypeAlignment constant rather than fixed alignment of 8Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121473 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Fixed version of 121435.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121472 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10In clang_getCursor(), don't override a preprocessing cursor withinDouglas Gregor
another preprocessing cursor, since we want the outermost one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Add missing switch case to handle builtin for Neon vqnegq.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121468 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10LLVM's intrinsics for vpaddl and vpadal have 2 overloaded types.Bob Wilson
Clang was only specifying the overloaded result type. PR8483. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121464 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Revert my previous patch to make the valgrind bots happy.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121460 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Treat visibility on an enclosing namespace as a non-explicit source ofJohn McCall
visibility. Fixes PR8713. I've disabled a test which was testing that you can #pragma pop visibility to get out of a namespace's visibility attribute. We should probably just diagnose that as an error unless it's instrumental to someone's system headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Add dependency to "make clang-test check-all".NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10And more gzip goodness for clang.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121453 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Bind the result of a property fetch to a temporary.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121452 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Extend libclang debugging output for clang_getCursor() to show the ↵Douglas Gregor
definition we found git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121451 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Neon compare absolute LLVM intrinsics are not overloaded. PR8484.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121447 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Added remaining objective-c library builtins (as in gcc) toFariborz Jahanian
clang. // rdar://8735023 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121441 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Fix another obscure corner layout case.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121436 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Update clang for the API changes in the cfi patch.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121435 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Add Neon vreinterpret intrinsics for half-float (f16) types.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121433 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Don't crash when code-completing after "#include <". It would be farDouglas Gregor
better to actually produce a decent set of completions by checking the system include paths, but not today. Fixes PR8744. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121431 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Refactored/cleanedup ActOnFunctionDeclarator Fariborz Jahanian
and ActOnVariableDeclarator No functionality change. // rdar://8751949 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121427 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Eliminate duplicate code completions for properties.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121424 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Don't walk the translation unit context to produce protocol names whenDouglas Gregor
global code completions are disabled (e.g., because they are cached). Also, make sure that forward-declared protocols are visited when we look for all visible names within a declaration context. Previously, we would end up with duplicate completions for protocols. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121416 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Gather cached code completions after the first reparse, not after theDouglas Gregor
second reparse. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121413 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Update test.Devang Patel
This test intends to catch invalid use of ".byte 256" in output. Now, the assert in MC will be triggered in such cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121403 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Fix type of last vector operand of Neon quad-register multiple-lane intrinsics.Bob Wilson
The sensible thing would be to have these intrinsics take all quad-register vector operands, but that's not what ARM did. They made the last vector operand always be a double-register type. Since the lane number must be a constant, the user can know which half of a quad-register contains that lane, extract the high or low half of the vector, and adjust the lane number accordingly. The only advantage I can see for this is that it works better when you want to multiply a quad-register value by a lane from a double-register value, but I wouldn't have expected that to be the common case. Oh well -- at this point we just need to follow the spec. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121397 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Fix the names of the v[r]addhn and v[r]subhn Neon intrinsics.Bob Wilson
Their suffixes are supposed to reflect the source operand element type, not the destination element type. Radar 8746481. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121392 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Use error_code instead of std::string* for MemoryBuffer.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121378 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09When an "inline" declaration was followed by a definition not markedDouglas Gregor
"inline", we weren't giving the definition weak linkage because the "inline" bit wasn't propagated. This was a longstanding FIXME that, somehow, hadn't triggered a bug in the wild. Fix this problem by tracking whether any declaration was marked "inline", and clean up the semantics of GNU's "extern inline" semantics calculation based on this change. Fixes <rdar://problem/8740363>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121373 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Fix PR8760: IndirectFieldDecl Type was not updated during template ↵Francois Pichet
instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121363 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Add missing "s32" and "u32" variants of Neon vzip intrinsic.Bob Wilson
Radar 8446277. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121360 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Add missing "p16" type variants for the Neon VREV32 intrinsics.Bob Wilson
Radar 8446277. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121359 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Fix another unnecessary-struct-padding issue.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121352 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Fix build.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121341 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Before determining the effect the alignment of base struct will have in the ↵Argyrios Kyrtzidis
aligment of the sub-struct, take into account if the sub-struct is packed and its maximum field alignment. Fixes rdar://8745206 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121335 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Remove extra namespace specifier.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121334 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Remove unused parameter. getContextDescriptor() and getOrCreateNameSpace().Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121333 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Remove unused parameter.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121326 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Test case for r121323.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121324 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09A typename specifier can end up referring to a unresolved usingDouglas Gregor
declaration that is a value in ill-formed code. Instead of crashing, treat this as a dependent typename specifier and suggest that the using add "typename" into the using declaration. Fixes <rdar://problem/8740998>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121322 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09DenseMapInfo is a 'struct', not a 'class'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121321 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08Add new libclang hooks for CXCursorSet, aTed Kremenek
DenseMap-backed hashtable for doing client-side management of CXCursors within a set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121318 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08Start using DIBuilder. It provides cleaner interface.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121302 91177308-0d34-0410-b5e6-96231b3b80d8