summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix PromoteIntRes_TRUNCATE: Add support for cases where theNadav Rotem2011-06-202-4/+39
| | | | | | | source vector type is to be split while the target vector is to be promoted. (eg: <4 x i64> -> <4 x i8> ) llvm-svn: 133424
* Remove more unnecessary #include <llvm/ADT/SmallVector.h>Francois Pichet2011-06-205-5/+0
| | | | llvm-svn: 133418
* Remove unnecessary include.Francois Pichet2011-06-201-1/+0
| | | | llvm-svn: 133417
* Fix MSVC build. next() function already exists in the MSVC headers. This ↵Francois Pichet2011-06-201-1/+1
| | | | | | create a overload conflict. Make sure we pick up the llvm one. llvm-svn: 133416
* Teach early dup how to duplicate basic blocks with one successor and only ↵Rafael Espindola2011-06-201-2/+142
| | | | | | | | phi instructions into more complex blocks. llvm-svn: 133415
* Update to match mainline ConstantStruct::get API change. Also, use Chris Lattner2011-06-2012-70/+71
| | | | | | | | | | | ConvertType on InitListExprs as they are being converted. This is needed for a forthcoming patch, and improves the IR generated anyway (see additional type names in testcases). This patch also converts a bunch of std::vector's in CGObjCMac to use C arrays. There are a ton more that should be converted as well. llvm-svn: 133413
* Revamp the "ConstantStruct::get" methods. Previously, these were scatteredChris Lattner2011-06-2013-113/+144
| | | | | | | | | | | | | | | all over the place in different styles and variants. Standardize on two preferred entrypoints: one that takes a StructType and ArrayRef, and one that takes StructType and varargs. In cases where there isn't a struct type convenient, we now add a ConstantStruct::getAnon method (whose name will make more sense after a few more patches land). It would be "really really nice" if the ConstantStruct::get and ConstantVector::get methods didn't make temporary std::vectors. llvm-svn: 133412
* [analyzer] Replace stream-built error message with constant string. No ↵Jordy Rose2011-06-201-5/+4
| | | | | | functionality change. llvm-svn: 133410
* introduce an isLayoutIdentical() method, which is currently just a pointerChris Lattner2011-06-201-1/+8
| | | | | | equality check. llvm-svn: 133409
* [analyzer] Re-enable checking for strncpy, along with a new validation of ↵Jordy Rose2011-06-202-9/+131
| | | | | | the size argument. strncat is not yet up-to-date, but I'm leaving it enabled for now (there shouldn't be any false positives, at least...) llvm-svn: 133408
* Add a RegisterTuples class to Target.td and TableGen.Jakob Stoklund Olesen2011-06-202-1/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A RegisterTuples instance is used to synthesize super-registers by zipping together lists of sub-registers. This is useful for generating pseudo-registers representing register sequence constraints like 'two consecutive GPRs', or 'an even-odd pair of floating point registers'. The RegisterTuples def can be used in register set operations when building register classes. That is the only way of accessing the synthesized super-registers. For example, the ARM QQ register class of pseudo-registers could have been formed like this: // Form pairs Q0_Q1, Q2_Q3, ... def QQPairs : RegisterTuples<[qsub_0, qsub_1], [(decimate QPR, 2), (decimate (shl QPR, 1), 2)]>; def QQ : RegisterClass<..., (add QQPairs)>; Similarly, pseudo-registers representing '3 consecutive D-regs with wraparound' look like: // Form D0_D1_D2, D1_D2_D3, ..., D30_D31_D0, D31_D0_D1. def DSeqTriples : RegisterTuples<[dsub_0, dsub_1, dsub_2], [(rotl DPR, 0), (rotl DPR, 1), (rotl DPR, 2)]>; TableGen automatically computes aliasing information for the synthesized registers. Register tuples are still somewhat experimental. We still need to see how they interact with MC. llvm-svn: 133407
* [analyzer] Eliminate "byte string function" from CStringChecker's ↵Jordy Rose2011-06-203-76/+113
| | | | | | diagnostics, and make it easier to provide custom messages for overflow checking, in preparation for re-enabling strncpy checking. llvm-svn: 133406
* Restructure the API in Type based on a conversation with Richard Smith.Chandler Carruth2011-06-203-28/+25
| | | | | | | | | | | This makes 'isPointerLikeType' a little less confusing, and pulls the decay check into a separate interface that is much more clear and concrete. Also, just implement these as logical wrappers around other predicates. Having a switch based implementation isn't likely to be necessary. We can try to optimize them later if they show up on a profile. llvm-svn: 133405
* Add TestInlinedFrame.py to exercise the newly added SBFrame APIs: ↵Johnny Chen2011-06-205-3/+132
| | | | | | IsInlined() and GetFunctionName(). llvm-svn: 133404
* More fixes: One of my fixes to type_traits earlier today was incorrect, so ↵Howard Hinnant2011-06-193-46/+46
| | | | | | that is reverted. Recently clang appears to have tightened up its definition of is_convertible and that has caused some failures in [unordered_][multi]map. I've switched to using is_constructible to restablish the desired functionality in [unordered_][multi]map. Specifically, inserting rvalues of move-only types for the keys. llvm-svn: 133402
* Miscellaneous minor fixes in <type_traits>Howard Hinnant2011-06-191-2/+16
| | | | llvm-svn: 133401
* Fix a FIXME by making GlobalVariable::getInitializer() return aJay Foad2011-06-199-17/+17
| | | | | | const Constant *. llvm-svn: 133400
* Update test.Benjamin Kramer2011-06-191-27/+27
| | | | llvm-svn: 133390
* Code cleanups: Remove duplicated logic in PromotInteRes_BITCAST, reserve ↵Nadav Rotem2011-06-191-7/+5
| | | | | | vector space, reuse types. llvm-svn: 133389
* Calls to AssertZext and getZeroExtendInReg must be made using scalar types.Nadav Rotem2011-06-191-3/+4
| | | | llvm-svn: 133388
* More clarifications.John McCall2011-06-191-15/+16
| | | | llvm-svn: 133387
* Improve the intro to the runtime-functions section.John McCall2011-06-191-4/+27
| | | | llvm-svn: 133386
* Describe the ARC runtime support calls.John McCall2011-06-191-0/+265
| | | | llvm-svn: 133385
* Turn -Wnull-arithmetic back on by default -- we now have tests for theChandler Carruth2011-06-191-1/+1
| | | | | | | | | false positives, including those in the GCC test suite, and don't warn about them. Let me know if this causes fallout, we can turn it back off if needed. llvm-svn: 133384
* Add test cases for false positives on -Wnull-arithmetic from RichardChandler Carruth2011-06-195-28/+56
| | | | | | | | | | | | | Trieu, and fix them by checking for array and function types as well as pointer types. I've added a predicate method on Type to bundle together the logic we're using here: isPointerLikeType(). I'd welcome better names for this predicate, this is the best I came up with. It's implemented as a switch to be a touch lighter weight than all the chained isa<...> casts that would result otherwise. llvm-svn: 133383
* When promoting the vector elements in CopyToParts, use vector truncNadav Rotem2011-06-191-11/+3
| | | | | | instead of scalarizing, and doing an element-by-element truncat. llvm-svn: 133382
* Reduce the runtime of the test. Keep only the interesting cases.Nadav Rotem2011-06-191-1077/+0
| | | | llvm-svn: 133381
* Handle decltype keyword in Parser::isDeclarationSpecifier.Francois Pichet2011-06-192-0/+9
| | | | | | Fixes PR10154. Found by parsing MFC 2010 code with clang. llvm-svn: 133380
* Bumping Xcode project version for lldb-63.Greg Clayton2011-06-192-16/+16
| | | | llvm-svn: 133378
* Fixed a crasher where we were accessing a symbol with a bad index.Greg Clayton2011-06-191-1/+1
| | | | llvm-svn: 133377
* Make sure we have a valid object file before we try getting the symbol tableGreg Clayton2011-06-191-30/+32
| | | | | | so we avoid crashing. llvm-svn: 133376
* Fixed a case where LLDB would crash if we get C++ operators with invalidGreg Clayton2011-06-192-0/+34
| | | | | | | operator counts due to bad debug DWARF debug info. We now verify the operator has a valid number of params using the clang operator tables. llvm-svn: 133375
* Revert r133373. I was going to use this to teach the Verifier to verify constantNick Lewycky2011-06-191-101/+1
| | | | | | | expressions, but Chris wants to instead reduce the set of possible constant expression types. llvm-svn: 133374
* Add the remaining instructions/constant expressions as Operators so that codeNick Lewycky2011-06-191-1/+101
| | | | | | can manipulate instructions and constantexpr's uniformly. No users yet though. llvm-svn: 133373
* Add support for MSVC __debugbreak compiler intrinsic.Francois Pichet2011-06-191-0/+2
| | | | llvm-svn: 133372
* Remove support for parsing the "type i32" syntax for defining a numberedChris Lattner2011-06-1930-334/+89
| | | | | | | top level type without a specified number. This syntax isn't documented and blocks forward progress. llvm-svn: 133371
* Switch from USEC_PER_SEC/NSEC_PER_SEC/NSEC_PER_USEC to TimeValue constantsPeter Collingbourne2011-06-187-27/+26
| | | | | | Fixes the Linux build. llvm-svn: 133370
* revert r133368, apparently I missed the tests to be updated.Chris Lattner2011-06-181-8/+15
| | | | llvm-svn: 133369
* Remove support for parsing the "type i32" syntax for defining a numberedChris Lattner2011-06-181-15/+8
| | | | | | | | top level type without a specified number. This asmprinter has never generated this, as you can tell by no tests being updated. It also isn't documented. llvm-svn: 133368
* update for api change.Chris Lattner2011-06-189-116/+66
| | | | llvm-svn: 133365
* fix the varargs version of StructType::get to not require an LLVMContext, ↵Chris Lattner2011-06-187-19/+19
| | | | | | | | making usage much cleaner. llvm-svn: 133364
* eliminate some pointless virtual methods.Chris Lattner2011-06-182-54/+37
| | | | llvm-svn: 133363
* simplify some code.Chris Lattner2011-06-181-8/+3
| | | | llvm-svn: 133362
* now that Type::getDescription() is dead, the TypePrinting class can move ↵Chris Lattner2011-06-183-63/+42
| | | | | | | | from Assembly/Writer.h to being a private class in AsmWriter.cpp. llvm-svn: 133361
* eliminate the Type::getDescription() method, using "<<" instead. This Chris Lattner2011-06-188-67/+41
| | | | | | removes some gunk from LLVMContext. llvm-svn: 133360
* improve some comments.Chris Lattner2011-06-181-13/+12
| | | | llvm-svn: 133359
* Don't print the baton when a breakpoint has a callback since it is prettyGreg Clayton2011-06-181-8/+0
| | | | | | useless to show. llvm-svn: 133358
* Added two new API functions to SBFrame:Greg Clayton2011-06-182-13/+91
| | | | | | | | | | | | | | | | | | | const char * SBFrame::GetFunctionName(); bool SBFrame::IsInlined(); The first one will return the correct name for a frame. The name of a frame is: - the name of the inlined function (if there is one) - the name of the concrete function (if there is one) - the name of the symbol (if there is one) - NULL We also can now easily check if a frame is an inline function or not. llvm-svn: 133357
* remove an unreduced testcase.Chris Lattner2011-06-181-282/+0
| | | | llvm-svn: 133356
* rework the remaining autoupgrade logic to use a StringRef instead of creating aChris Lattner2011-06-181-49/+34
| | | | | | temporary std::string for every function being checked. llvm-svn: 133355
OpenPOWER on IntegriCloud