summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [analyzer] New checker for assignment of non-0/1 values to Boolean variables.Ryan Govostes2012-02-115-0/+284
| | | | llvm-svn: 150306
* Don't mix declarations and code.Benjamin Kramer2012-02-112-8/+6
| | | | llvm-svn: 150305
* Make the EDis tables const.Benjamin Kramer2012-02-117-14/+10
| | | | llvm-svn: 150304
* Reuse the enum names from X86Desc in the X86Disassembler.Benjamin Kramer2012-02-116-16/+38
| | | | | | | This requires some gymnastics to make it available for C code. Remove the names from the disassembler tables, making them relocation free. llvm-svn: 150303
* Document the new module flags.Bill Wendling2012-02-111-0/+126
| | | | llvm-svn: 150301
* [WIP] Initial code for module flags.Bill Wendling2012-02-1115-5/+382
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Module flags are key-value pairs associated with the module. They include a 'behavior' value, indicating how module flags react when mergine two files. Normally, it's just the union of the two module flags. But if two module flags have the same key, then the resulting flags are dictated by the behaviors. Allowable behaviors are: Error Emits an error if two values disagree. Warning Emits a warning if two values disagree. Require Emits an error when the specified value is not present or doesn't have the specified value. It is an error for two (or more) llvm.module.flags with the same ID to have the Require behavior but different values. There may be multiple Require flags per ID. Override Uses the specified value if the two values disagree. It is an error for two (or more) llvm.module.flags with the same ID to have the Override behavior but different values. llvm-svn: 150300
* Remove some patterns for matching vector_shuffle instructions since ↵Craig Topper2012-02-112-78/+16
| | | | | | vector_shuffles should be custom lowered before isel. llvm-svn: 150299
* Add TargetPassConfig hooks for scheduling/bundling.Andrew Trick2012-02-112-7/+63
| | | | | | | | | In case the MachineScheduling pass I'm working on doesn't work well for another target, they can completely override it. This also adds a hook immediately after the RegAlloc pass to cleanup immediately after vregs go away. We may want to fold it into the postRA hook later. llvm-svn: 150298
* commentAndrew Trick2012-02-111-2/+2
| | | | llvm-svn: 150297
* Fix shuffle lowering code to stop creating temporary DAG nodes to do shuffle ↵Craig Topper2012-02-111-36/+23
| | | | | | mask checks on. This seemed to be confusing things such that vector_shuffle ops to got through to iselection. This is another step towards removing the vector_shuffle handling patterns from isel. llvm-svn: 150296
* 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
OpenPOWER on IntegriCloud