summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement warning for non-wide string literals with an unexpected encoding. ↵Eli Friedman2012-02-115-20/+61
| | | | | | Downgrade error for non-wide character literals with an unexpected encoding to a warning for compatibility with gcc and older versions of clang. <rdar://problem/10837678>. llvm-svn: 150295
* Begin refactoring to use the newly added triple predicates forChandler Carruth2012-02-112-12/+4
| | | | | | | simplicity. Also addresses a FIXME, although not one that could be observed. llvm-svn: 150294
* Basic support for referring to captured variables from lambdas. Some simple ↵Eli Friedman2012-02-116-11/+42
| | | | | | examples seem to work. Tests coming up soon. llvm-svn: 150293
* Make sure Sema creates a field for 'this' captures. (Doug, please ↵Eli Friedman2012-02-113-5/+27
| | | | | | double-check that this is correct.) llvm-svn: 150292
* [libclang] For a reference of an implicit template instantiation just giveArgyrios Kyrtzidis2012-02-112-3/+19
| | | | | | | a reference for the instantiation decl. Also test that its location is correct after previous commit. llvm-svn: 150291
* For class template implicit instantiation, also update its location to pointArgyrios Kyrtzidis2012-02-111-0/+1
| | | | | | | | | | | | | | | | | | to the pattern template that it came from, otherwise we had this situation: template <typename T1, typename T2> struct S { }; template <typename T> struct S<T, int> { }; void f() { S<int, int> s; // location of declaration "S<int, int>" was of "S<T1, T2>" not "S<T, int>" } llvm-svn: 150290
* Made the "--no-inlines" option onSean Callanan2012-02-111-8/+15
| | | | | | | | | | | | "target modules lookup" also work with the "--function" option, so you can search for functions that aren't inlined. This is the same query that the expression parser makes, so it's good for diagnosing situations where the expression parser doesn't find a function you think should be there. llvm-svn: 150289
* Allow Post-RA LICM to hoist reserved register reads.Jakob Stoklund Olesen2012-02-111-0/+11
| | | | | | | | When using register masks, registers like %rip are clobbered by the register mask. LICM should still be able to hoist instructions reading %rip from a loop containing calls. llvm-svn: 150288
* Handle register masks in local live range splitting.Jakob Stoklund Olesen2012-02-111-0/+25
| | | | | | | Again the goal is to produce identical assembly with register mask operands enabled. llvm-svn: 150287
* Don't read PreRegAlloc before it is initialized.Jakob Stoklund Olesen2012-02-111-6/+6
| | | | llvm-svn: 150286
* Make the output from "target modules lookup -n"Sean Callanan2012-02-111-1/+10
| | | | | | prettier. llvm-svn: 150285
* const-qualify CXXRecordDecl::getCaptureFields.Eli Friedman2012-02-112-2/+2
| | | | llvm-svn: 150284
* Add simple semantic test for C++11 [expr.prim.lambda]p16, which covers ↵Douglas Gregor2012-02-101-0/+16
| | | | | | recursive capture. This is far more interesting for IRgen. llvm-svn: 150283
* Implement C++11 [expr.lambda.prim]p13, which prohibits lambdas inDouglas Gregor2012-02-103-0/+24
| | | | | | default arguments if in fact those lambdas capture any entity. llvm-svn: 150282
* objc translator: more modern metadata stuff.Fariborz Jahanian2012-02-101-105/+33
| | | | llvm-svn: 150281
* Set UserLabelPrefix and MCountName correctly for DragonFly BSD. Patch by ↵Eli Friedman2012-02-101-1/+12
| | | | | | | | Sascha Wildner. Setting UserLabelPrefix correctly fixes PR11949. llvm-svn: 150280
* Extended function lookup to allow the user toSean Callanan2012-02-1025-40/+93
| | | | | | | | | indicate whether inline functions are desired. This allows the expression parser, for instance, to filter out inlined functions when looking for functions it can call. llvm-svn: 150279
* Support all null pointer literals in format strings.David Blaikie2012-02-103-8/+11
| | | | llvm-svn: 150276
* objctive-c translator: modern metadata for ivars. wip.Fariborz Jahanian2012-02-101-28/+78
| | | | llvm-svn: 150275
* Revert r150222, as the clang driver now handles this properly.Jim Grosbach2012-02-101-11/+3
| | | | | | | Now that the clang driver passes the CPU and feature information to the backend when processing assembly files (150273), this isn't necessary. llvm-svn: 150274
* Have the driver pass CPU and target feature information to cc1as.Jim Grosbach2012-02-105-5/+92
| | | | | | | | | | When creating the MCSubtargetInfo, the assembler driver uses the CPU and feature string to construct a more accurate model of what instructions are and are not legal. rdar://10840476 llvm-svn: 150273
* Improved detection of object file types, movingSean Callanan2012-02-106-28/+33
| | | | | | | | | | detection of kernels into the object file and adding a new category for raw binary images. Fixed all clients who previously searched for sections manually, making them use the object file's facilities instead. llvm-svn: 150272
* Fixed incorrect #include directives.Greg Clayton2012-02-102-11/+0
| | | | llvm-svn: 150271
* [libclang] Indexing API: fully index using decls and directives.Argyrios Kyrtzidis2012-02-102-0/+39
| | | | llvm-svn: 150268
* [libclang] Indexing API: Fully index implict template instantiations.Argyrios Kyrtzidis2012-02-109-5/+72
| | | | llvm-svn: 150267
* Add ArrayRef goodness in MultiplexASTMutationListener.Argyrios Kyrtzidis2012-02-101-3/+3
| | | | llvm-svn: 150266
* Update MultiplexASTMutationListener with the missing methods from ↵Argyrios Kyrtzidis2012-02-102-0/+21
| | | | | | ASTMutationListener. llvm-svn: 150265
* [libclang] Encode the template specialization parameters of a functionArgyrios Kyrtzidis2012-02-101-0/+10
| | | | | | specialization in its USR string. llvm-svn: 150264
* Clean up comment.Jakob Stoklund Olesen2012-02-101-2/+1
| | | | llvm-svn: 150262
* Add a static MachineOperand::clobbersPhysReg().Jakob Stoklund Olesen2012-02-102-11/+14
| | | | | | | | It can be necessary to detach a register mask pointer from its MachineOperand. This method is convenient for checking clobbered physregs on a detached bitmask pointer. llvm-svn: 150261
* Enhance checking for null format string literal to take into account __null. ↵Ted Kremenek2012-02-102-0/+12
| | | | | | Fixes <rdar://problem/8269537>. llvm-svn: 150260
* Add register mask support to InterferenceCache.Jakob Stoklund Olesen2012-02-103-5/+42
| | | | | | | | | | | | | | | | This makes global live range splitting behave identically with and without register mask operands. This is not necessarily the best way of using register masks for live range splitting. It would be more efficient to first split global live ranges around calls (i.e., register masks), and reserve the fine grained per-physreg interference guidance for global live ranges that do not cross calls. For now the goal is to produce identical assembly when enabling register masks. llvm-svn: 150259
* Remove unused variable.Jakob Stoklund Olesen2012-02-101-2/+1
| | | | llvm-svn: 150258
* Added description of invariant.load metadata to LangRef. It was added to ↵Pete Cooper2012-02-101-1/+9
| | | | | | the compiler in r144100 llvm-svn: 150257
* Allow implicit capture of 'this' in a lambda even when the captureDouglas Gregor2012-02-107-14/+44
| | | | | | | | | | | | default is '=', and reword the warning about explicitly capturing 'this' in such lambdas to indicate that only explicit capture is banned. Introduce Fix-Its for this and other "save the programmer from themself" rules regarding what can be explicitly captured and what must be implicitly captured. llvm-svn: 150256
* Add test from [expr.prim.lambda]p12, which deals with odr-use andDouglas Gregor2012-02-102-3/+30
| | | | | | | | nested captures. We currently don't get odr-use correct in array bounds, so that bit is commented out while we sort out what we need to do. llvm-svn: 150255
* Back out some changes that accidentally committed.Bob Wilson2012-02-1010-29/+3
| | | | llvm-svn: 150254
* Revert r150232 since it breaks the build when there's no ARM assembler.Bob Wilson2012-02-1011-16/+37
| | | | llvm-svn: 150253
* Don't introduce a lambda's operator() into the class until after weDouglas Gregor2012-02-102-49/+60
| | | | | | | | have finished parsing the body, so that name lookup will never find anything within the closure type. Then, add this operator() and the conversion function (if available) before completing the class. llvm-svn: 150252
* Make valgrind happy.Jason W Kim2012-02-101-2/+2
| | | | llvm-svn: 150251
* Update BBVectorize to use aliasesUnknownInst.Hal Finkel2012-02-102-9/+247
| | | | | | | | This allows BBVectorize to check the "unknown instruction" list in the alias sets. This is important to prevent instruction fusing from reordering function calls. Resolves PR11920. llvm-svn: 150250
* Have AliasSet::aliasesUnknownInst use pointer TBAA info when availableHal Finkel2012-02-101-1/+3
| | | | llvm-svn: 150249
* Make aliasesPointer and aliasesUnknownInst public members of AliasSet.Hal Finkel2012-02-101-0/+1
| | | | | | | | These query functions are safe for external use and, furthermore, are the only way to make queries against the "unknown instructions" array. BBVectorize will use these functions. llvm-svn: 150248
* Fix PR11948: the result type of an icmp may be a vector of boolean -Duncan Sands2012-02-102-0/+12
| | | | | | don't assume it is a boolean. llvm-svn: 150247
* Revert commit 149912 (lattner) and add a testcase that shows the problem (whichDuncan Sands2012-02-102-1/+31
| | | | | | | | | | is that patterns no longer match for vectors of booleans, because you only get ConstantDataVector when the vector element type is i8, i16, etc, not when it is i1). Original commit message: Remove some dead code and tidy things up now that vectors use ConstantDataVector instead of always using ConstantVector. llvm-svn: 150246
* Put instruction names into an indexed string table on the side, removing a ↵Benjamin Kramer2012-02-105-14/+39
| | | | | | | | | pointer from MCInstrDesc. Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64. llvm-svn: 150245
* PR11684, core issue 1417:Richard Smith2012-02-1014-182/+197
| | | | | | | | | | | | | | o Correct the handling of the restrictions on usage of cv-qualified and ref-qualified function types. o Fix a bug where such types were rejected in template type parameter default arguments, due to such arguments not being treated as a template type arg context. o Remove the ExtWarn for usage of such types as template arguments; that was a standard defect, not a GCC extension. o Improve the wording and unify the code for diagnosing cv-qualifiers with the code for diagnosing ref-qualifiers. llvm-svn: 150244
* Test cleanup: prefer static_assert to handmade alternative.Richard Smith2012-02-101-5/+2
| | | | llvm-svn: 150243
* Loosen the test from r150238 a bit to make some of our bots happy.Evgeniy Stepanov2012-02-101-4/+4
| | | | llvm-svn: 150242
* Track whether a function type has a trailing return type as type sugar. Use thisRichard Smith2012-02-1014-45/+121
| | | | | | | | | | | to pretty-print such function types better, and to fix a case where we were not instantiating templates in lexical order. In passing, move the Variadic bit from Type's bitfields to FunctionProtoType to get the Type bitfields down to 32 bits. Also ensure that we always substitute the return type of a function when substituting explicitly-specified arguments, since that can cause us to bail out with a SFINAE error before we hit a hard error in parameter substitution. llvm-svn: 150241
OpenPOWER on IntegriCloud