summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix to make sure that a comdat group gets generated correctly for a static ↵Anton Korobeynikov2012-02-233-1/+34
| | | | | | | | | | member of instantiated C++ templates. Patch by Kristof Beyls! llvm-svn: 151250
* Update for the removal of Hashing.cpp.Jay Foad2012-02-231-1/+0
| | | | llvm-svn: 151249
* Reinstate r151049 now that GeneralHash is fixed.Jay Foad2012-02-232-34/+131
| | | | llvm-svn: 151248
* The implementation of GeneralHash::addBits broke C++ aliasing rules; fixJay Foad2012-02-232-72/+20
| | | | | | | | it with memcpy. This also fixes a problem on big-endian hosts, where addUnaligned would return different results depending on the alignment of the data. llvm-svn: 151247
* Remove 'if' from getSuperRegisters, getSubRegisters, and getOverlaps that ↵Craig Topper2012-02-232-8/+4
| | | | | | were added in r151038. llvm-svn: 151246
* PR12067: When emitting an evaluated constant structure in C++11 mode, don'tRichard Smith2012-02-232-12/+118
| | | | | | forget the vptrs. llvm-svn: 151245
* An easy case where GCC should really be able to work out that the value is onlyDuncan Sands2012-02-231-0/+1
| | | | | | used if IsInDevelopmentTree is 'true'. But it doesn't, so help it out. llvm-svn: 151244
* GCC warns about a comparison between signed and unsigned values.Duncan Sands2012-02-231-1/+1
| | | | llvm-svn: 151243
* GCC fails to understand that NextBB is always initialized if EvaluateBlockDuncan Sands2012-02-231-1/+1
| | | | | | returns 'true' and emits a warning. Help it out. llvm-svn: 151242
* Seriously, are injected-class-names that hard?Douglas Gregor2012-02-231-1/+1
| | | | llvm-svn: 151241
* Provide the __is_trivially_assignable type trait, which providesDouglas Gregor2012-02-2311-6/+162
| | | | | | | compiler support for the std::is_trivially_assignable library type trait. llvm-svn: 151240
* Clang supports lambdas.Douglas Gregor2012-02-231-1/+1
| | | | llvm-svn: 151239
* Fix typo.Rafael Espindola2012-02-231-1/+1
| | | | llvm-svn: 151238
* Two fixes to how we compute visibility:Rafael Espindola2012-02-234-19/+148
| | | | | | | | | | | | * Handle some situations where we should never make a decl more visible, even when merging in an explicit visibility. * Handle attributes in members of classes that are explicitly specialized. Thanks Nico for the report and testing, Eric for the initial review, and dgregor for the awesome test27 :-) llvm-svn: 151236
* More newline cleanups.Eric Christopher2012-02-232-4/+4
| | | | llvm-svn: 151235
* Add some handy-dandy newlines.Eric Christopher2012-02-231-2/+2
| | | | llvm-svn: 151234
* misched: cleanup reaching def computationAndrew Trick2012-02-231-3/+5
| | | | | | | | Ignore undef uses completely. Use a more explicit SlotIndex API. Add more explicit comments. llvm-svn: 151233
* Tweak C++ status table:Douglas Gregor2012-02-231-2/+2
| | | | | | | - Apparently, SVN is yellow - Note that initializer lists are "in progress" llvm-svn: 151232
* Clang now supports lambda expressions.Douglas Gregor2012-02-233-4/+4
| | | | llvm-svn: 151231
* Canonicalize (srl (bswap x), 16) to (rotr (bswap x), 16) if the high 16 bitsEvan Cheng2012-02-232-2/+17
| | | | | | | | of x are zero. This optimizes rev + lsr 16 to rev16. rdar://10750814 llvm-svn: 151230
* Try to handle qualifiers more consistently for array InitListExprs. Fixes ↵Eli Friedman2012-02-234-9/+14
| | | | | | | | <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent. (I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.) llvm-svn: 151229
* PostRASched: Convert physreg def/use tracking to Jakob's SparseSet.Andrew Trick2012-02-233-84/+111
| | | | | | | Added array subscript to SparseSet for convenience. Slight reorg to make it easier to manage the def/use sets. llvm-svn: 151228
* Update parser's disambiguation to cope with braced function-style casts inRichard Smith2012-02-235-13/+137
| | | | | | | | | C++11, and with braced-init-list initializers in conditions. This exposed an ambiguity with enum underlying types versus bitfields, which we resolve by treating 'enum E : T {' as always defining an enumeration (even if it would only successfully parse as a bitfield). This appears to be g++ compatible. llvm-svn: 151227
* Handle regmasks in FixupKills.Jakob Stoklund Olesen2012-02-231-0/+4
| | | | llvm-svn: 151226
* Turned on support for __declspec(deprecated) in MS compatibility mode.Aaron Ballman2012-02-232-1/+16
| | | | llvm-svn: 151225
* Optimize a couple of common patterns involving conditional moves where the falseEvan Cheng2012-02-236-8/+358
| | | | | | | | | | | | | | | | | | | | | value is zero. Instead of a cmov + op, issue an conditional op instead. e.g. cmp r9, r4 mov r4, #0 moveq r4, #1 orr lr, lr, r4 should be: cmp r9, r4 orreq lr, lr, #1 That is, optimize (or x, (cmov 0, y, cond)) to (or.cond x, y). Similarly extend this to xor as well as (and x, (cmov -1, y, cond)) => (and.cond x, y). It's possible to extend this to ADD and SUB but I don't think they are common. rdar://8659097 llvm-svn: 151224
* Handle regmasks in CriticalAntiDepBreaker.Jakob Stoklund Olesen2012-02-231-0/+14
| | | | llvm-svn: 151223
* Track reserved registers separately from RegsAvailable.Jakob Stoklund Olesen2012-02-232-7/+7
| | | | | | | The bulk masking operations from register mask operands don't account for reserved registers. llvm-svn: 151222
* Made the hidden-ivar test a little more rigorous.Sean Callanan2012-02-232-16/+31
| | | | llvm-svn: 151221
* [analyzer] Invalidate the region passed to pthread_setspecific() call.Anna Zaks2012-02-234-2/+40
| | | | | | | | | | | | | | | | | | Make this call an exception in ExprEngine::invalidateArguments: 'int pthread_setspecific(ptheread_key k, const void *)' stores a value into thread local storage. The value can later be retrieved with 'void *ptheread_getspecific(pthread_key)'. So even thought the parameter is 'const void *', the region escapes through the call. (Here we just blacklist the call in the ExprEngine's default logic. Another option would be to add a checker which evaluates the call and triggers the call to invalidate regions.) Teach the Malloc Checker, which treats all system calls as safe about the API. llvm-svn: 151220
* Tweak release note comments for checker build.Ted Kremenek2012-02-231-1/+2
| | | | llvm-svn: 151219
* Update checker build to checker-261.Ted Kremenek2012-02-232-1/+14
| | | | llvm-svn: 151218
* Add a quick TODO.Eric Christopher2012-02-231-0/+1
| | | | llvm-svn: 151217
* Fold debug scope emission into the cleanup scope.Eric Christopher2012-02-231-9/+2
| | | | llvm-svn: 151216
* Added support for looking up the complete type forSean Callanan2012-02-2230-132/+627
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Objective-C classes. This allows LLDB to find ivars declared in class extensions in modules other than where the debugger is currently stopped (we already supported this when the debugger was stopped in the same module as the definition). This involved the following main changes: - The ObjCLanguageRuntime now knows how to hunt for the authoritative version of an Objective-C type. It looks for the symbol indicating a definition, and then gets the type from the module containing that symbol. - ValueObjects now report their type with a potential override, and the override is set if the type of the ValueObject is an Objective-C class or pointer type that is defined somewhere other than the original reported type. This means that "frame variable" will always use the complete type if one is available. - The ClangASTSource now looks for the complete type when looking for ivars. This means that "expr" will always use the complete type if one is available. - I added a testcase that verifies that both "frame variable" and "expr" work. llvm-svn: 151214
* MC: Fix the MCNullStreamer which was broken in r147763.Daniel Dunbar2012-02-222-0/+15
| | | | llvm-svn: 151213
* Add @expectedFailure decorator with radar number.Johnny Chen2012-02-221-0/+4
| | | | llvm-svn: 151212
* Don't compute latencies for regmask operands.Jakob Stoklund Olesen2012-02-221-1/+3
| | | | llvm-svn: 151211
* Handle regmasks in RegisterScavenging.Jakob Stoklund Olesen2012-02-221-0/+4
| | | | llvm-svn: 151210
* Make Debugger::SetLoggingCallback public, and expose it through the SB API. ↵Jim Ingham2012-02-224-5/+19
| | | | | | | | Sometimes it is not convenient to provide a log callback right when the debugger is created. llvm-svn: 151209
* another test for modern ivar access rewrite.Fariborz Jahanian2012-02-221-0/+46
| | | | llvm-svn: 151208
* misched: Use SparseSet for VRegDegs for constant time clear().Andrew Trick2012-02-222-16/+41
| | | | llvm-svn: 151205
* Add support for SharedLibraryAtoms (proxy atoms for exported symbols from a Nick Kledzik2012-02-2223-134/+1230
| | | | | | | | shared library) and AbsoluteAtoms (proxy atoms for absolute address (e.g. ROM)). Redesign weak importing as can-be-null-at-runtime and can-be-null-at-build-time. Add lots of test cases for all the above. llvm-svn: 151204
* Revert r151172: Unwind path cleanup for array new list initializers.Chad Rosier2012-02-222-72/+7
| | | | llvm-svn: 151203
* Added support for the DWARF 4 DW_FORM values.Greg Clayton2012-02-221-140/+66
| | | | llvm-svn: 151202
* more tests for modern objc translator.Fariborz Jahanian2012-02-222-1/+30
| | | | llvm-svn: 151201
* Allow the use of an alternate symbol for calculating a function's size.Hal Finkel2012-02-224-2/+32
| | | | | | | | | | | | | The standard function epilog includes a .size directive, but ppc64 uses an alternate local symbol to tag the actual start of each function. Until recently, binutils accepted the .size directive as: .size test1, .Ltmp0-test1 however, using this directive with recent binutils will result in the error: .size expression for XXX does not evaluate to a constant so we must use the label which actually tags the start of the function. llvm-svn: 151200
* Remove extra semicolon (breaking g++ builds).Benjamin Kramer2012-02-221-2/+2
| | | | llvm-svn: 151199
* Revert the RTTI change from r151187. It make lldb compile with g++ 4.4 but ↵Benjamin Kramer2012-02-221-3/+0
| | | | | | it doesn't link anymore. The bug seems to be fixed in g++ 4.5. llvm-svn: 151198
* Improve placement of clang crash diagnostics section.Chad Rosier2012-02-221-21/+21
| | | | llvm-svn: 151192
OpenPOWER on IntegriCloud