summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix undefined behavior: don't bind a dereferenced null pointer to a reference.Richard Smith2012-08-142-8/+6
| | | | | | No functionality change. llvm-svn: 161832
* Placate the mingw32 buildbot by suffixing 64-bit constants with ULL.Richard Smith2012-08-141-2/+2
| | | | llvm-svn: 161831
* Fix undefined behavior in code completion, caught byRichard Smith2012-08-142-72/+71
| | | | | | | -fcatch-undefined-behavior. Don't try to fit 34 different flags into 32 bits. Also, don't use 32-bit signed left shifts for this. llvm-svn: 161830
* Avoid undefined behavior in DenseMap::shrink_and_clear(). Log2_32_Ceil(0)Richard Smith2012-08-141-2/+3
| | | | | | | returns 32. This change mirrors the corresponding code in SmallDenseMap::shrink_and_clear(). llvm-svn: 161829
* Make __is_convertible_to handle abstract types correctly. PR13591.Eli Friedman2012-08-143-1/+21
| | | | llvm-svn: 161828
* Fix undefined behavior (and wrong code, as far as I can tell) in NEON builtinRichard Smith2012-08-142-5/+5
| | | | | | | | | tablegen code, found by -fcatch-undefined-behavior. I would appreciate if someone more familiar with the NEON code could point me in the direction of how to write a test for this. We appear to have essentially no test coverage whatsoever for these builtins. llvm-svn: 161827
* Typo.Eric Christopher2012-08-141-1/+1
| | | | llvm-svn: 161826
* llvm/test/CodeGen/ARM/floorf.ll: Add explicit -mtriple=arm-unknown-unknown, ↵NAKAMURA Takumi2012-08-141-1/+1
| | | | | | or it fails on msvc. llvm-svn: 161825
* Clean up the basic instructions for getting started with clang to alwaysChandler Carruth2012-08-141-4/+4
| | | | | | return to the same directory. llvm-svn: 161823
* [analyzer] Teach live variable analyzes that super uses self pointer.Anna Zaks2012-08-142-0/+41
| | | | llvm-svn: 161822
* [analyzer] Disable autorelease pool tracking.Anna Zaks2012-08-141-2/+21
| | | | | | | | | The autorelease pool has not been implemented completely: we were adding the autoreleased symbols to the state, but never looking at them. Until we have a complete implementation, remove the overhead and comment out the unused code. llvm-svn: 161821
* [analyzer] Refactor RetainReleaseChecker to go through a function callAnna Zaks2012-08-141-40/+53
| | | | | | | | | | | to set/get/remove the RefBinding. No functional change here. Having these setter and getter methods will make it much easier when replacing the underlining representation of RefBindings (I just went through the exercise). It makes the code more readable as well. llvm-svn: 161820
* [analyzer] Add getStackFrame() to CheckerContext and ExplodedNode.Anna Zaks2012-08-143-3/+7
| | | | llvm-svn: 161819
* [analyzer] Look up DynamicTypeInfo by region instead of symbol.Jordan Rose2012-08-131-18/+14
| | | | | | | | This allows us to store type info for non-symbolic regions. No functionality change. llvm-svn: 161811
* [analyzer] Reduce code duplication: make CXXDestructorCall a CXXInstanceCall.Jordan Rose2012-08-136-147/+132
| | | | | | | | | | | | | | | | | While there is now some duplication between SimpleCall and the CXXInstanceCall sub-hierarchy, this is much better than copy-and-pasting the devirtualization logic shared by both instance methods and destructors. An unfortunate side effect is that there is no longer a single CallEvent type that corresponds to "calls written as CallExprs". For the most part this is a good thing, but the checker callback eval::Call still takes a CallExpr rather than a CallEvent (since we're not sure if we want to allow checkers to evaluate other kinds of calls). A mistake here will be caught by a cast<> in CheckerManager::runCheckersForEvalCall. No functionality change. llvm-svn: 161809
* [analyzer] Be more careful when downcasting for devirtualization.Jordan Rose2012-08-132-12/+66
| | | | | | | | | Virtual base regions are never layered, so simply stripping them off won't necessarily get you to the correct casted class. Instead, what we want is the same logic for evaluating dynamic_cast: strip off base regions if possible, but add new base regions if necessary. llvm-svn: 161808
* Add a roundToIntegral method to APFloat, which can be parameterized over ↵Owen Anderson2012-08-135-0/+116
| | | | | | various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC. llvm-svn: 161807
* Simplify the "Watchpoint ... hit" printout, make it more terse.Johnny Chen2012-08-135-13/+39
| | | | | | Change the test case, too. llvm-svn: 161806
* Transfer weights in transferSuccessorsAndUpdatePHIs().Jakob Stoklund Olesen2012-08-131-5/+7
| | | | llvm-svn: 161805
* Print out MachineBasicBlock successor weights when available.Jakob Stoklund Olesen2012-08-131-1/+4
| | | | llvm-svn: 161804
* LICM uses AliasSet information to hoist and sink instructions. However, ↵Nadav Rotem2012-08-132-1/+7
| | | | | | | | | | | | other passes, such as LoopRotate may invalidate its AliasSet because SSAUpdater does not update the AliasSet properly. This patch teaches SSAUpdater to notify AliasSet that it made changes. The testcase in PR12901 is too big to be useful and I could not reduce it to a normal size. rdar://11872059 PR12901 llvm-svn: 161803
* MemoryDependenceAnalysis attempts to find the first memory dependency for ↵Nadav Rotem2012-08-132-2/+41
| | | | | | | | | | | function calls. Currently, if GetLocation reports that it did not find a valid pointer (this is the case for volatile load/stores), we ignore the result. This patch adds code to handle the cases where we did not obtain a valid pointer. rdar://11872864 PR12899 llvm-svn: 161802
* ARM: Move Thumb2 tests to Thumb2 test file and fix CHECK lines.Jim Grosbach2012-08-132-8/+10
| | | | | | These tests weren't actually being run before (missing ':' after CHECK). llvm-svn: 161800
* [analyzer] Handle dynamic_casts that turn out to be upcasts.Jordan Rose2012-08-132-13/+61
| | | | | | | | | | | This can occur with multiple inheritance, which jumps from one parent to the other, and with virtual inheritance, since virtual base regions always wrap the actual object and can't be nested within other base regions. This also exposed some incorrect logic for multiple inheritance: even if B is known not to derive from C, D might still derive from both of them. llvm-svn: 161798
* [analyzer] Don't strip CXXBaseObjectRegions when checking dynamic_casts.Jordan Rose2012-08-138-25/+140
| | | | | | | | | | | | | | | ...and /do/ strip CXXBaseObjectRegions when casting to a virtual base class. This allows us to enforce the invariant that a CXXBaseObjectRegion can always provide an offset for its base region if its base region has a known class type, by only allowing virtual bases and direct non-virtual bases to form CXXBaseObjectRegions. This does mean some slight problems for our modeling of dynamic_cast, which needs to be resolved by finding a path from the current region to the class we're trying to cast to. llvm-svn: 161797
* [ms-inline asm] Add a helpful assert.Chad Rosier2012-08-131-0/+1
| | | | llvm-svn: 161796
* When emulating instructions that read from memory,Jason Molenda2012-08-131-0/+1
| | | | | | | | | return 0x0 as the read value instead of uninitialized stack data so we get consistent behavior from the emulator. <rdar://problem/12058770> llvm-svn: 161795
* Remove the TII::scheduleTwoAddrSource() hook.Jakob Stoklund Olesen2012-08-134-66/+0
| | | | | | | | | | | | | | | It never does anything when running 'make check', and it get's in the way of updating live intervals in 2-addr. The hook was originally added to help form IT blocks in Thumb2 code before register allocation, but the pass ordering has changed since then, and we run if-conversion after register allocation now. When the MI scheduler is enabled, there will be no less than two schedulers between 2-addr and Thumb2ITBlockPass, so this hook is unlikely to help anything. llvm-svn: 161794
* [ms-inline asm] Address a potential buffer overflow.Chad Rosier2012-08-131-5/+1
| | | | llvm-svn: 161793
* Rename test since it's not linux-specific.Bill Wendling2012-08-131-0/+0
| | | | llvm-svn: 161792
* PR13570: When an unresolved overloaded call appeared in a dependent context, weRichard Smith2012-08-132-0/+11
| | | | | | | forgot to set it as being instantiation-dependent as well as being type- and value-dependent. llvm-svn: 161791
* ARM: enable struct byval for AAPCS-VFP.Manman Ren2012-08-132-7/+8
| | | | | | rdar://9877866 llvm-svn: 161790
* ARM: enable struct byval for AAPCS-VFP.Manman Ren2012-08-131-0/+3
| | | | | | | | This change is to be enabled in clang. rdar://9877866 llvm-svn: 161789
* Whitespace cleanup.Bill Wendling2012-08-131-7/+7
| | | | llvm-svn: 161788
* Comment changes.Johnny Chen2012-08-131-1/+2
| | | | llvm-svn: 161787
* c: small refactoring of checking for __attribute__(const))Fariborz Jahanian2012-08-134-12/+11
| | | | | | per Richard's comment. llvm-svn: 161786
* rdar://problem/12007576Johnny Chen2012-08-139-34/+223
| | | | | | | Record the snapshot of our watched value when the watchpoint is set or hit. And report the old/new values when watchpoint is triggered. Add some test scenarios. llvm-svn: 161785
* Count triangles and diamonds in early if-conversion.Jakob Stoklund Olesen2012-08-131-0/+16
| | | | llvm-svn: 161783
* Delete dead typedef.Jakob Stoklund Olesen2012-08-131-2/+0
| | | | llvm-svn: 161782
* Handle extra Tail predecessors in if-conversion.Jakob Stoklund Olesen2012-08-132-20/+97
| | | | | | | | It is still possible to if-convert if the tail block has extra predecessors, but the tail phis must be rewritten instead of being removed. llvm-svn: 161781
* [ms-inline asm] Have patchMSAsmStrings() return a vector or AsmStrings.Chad Rosier2012-08-132-62/+111
| | | | | | | | | | | | | | | | | | | | | | | | | The AsmParser expects a single asm instruction, but valid ms-style inline asm statements may contain multiple instructions. This happens with asm blocks __asm { mov ebx, eax mov ecx, ebx } or when multiple asm statements are adjacent to one another __asm mov ebx, eax __asm mov ecx, ebx and __asm mov ebx, eax __asm mov ecx, ebx Currently, asm blocks are not properly handled. llvm-svn: 161780
* Factor out computation of whether a typeid's expression is potentiallyRichard Smith2012-08-137-27/+31
| | | | | | evaluated into a CXXTypeid member function. No functionality change. llvm-svn: 161779
* [Hexagon] Don't mark callee saved registers as clobbered by a tail callArnold Schwaighofer2012-08-132-9/+17
| | | | | | | | | | This was causing unnecessary spills/restores of callee saved registers. Fixes PR13572. Patch by Pranav Bhandarkar! llvm-svn: 161778
* Fix failure on Atom bot due to r161769Manman Ren2012-08-131-1/+1
| | | | llvm-svn: 161777
* Minor rework of code example for clarity. No functionality changeMarshall Clow2012-08-131-7/+5
| | | | llvm-svn: 161776
* Do not optimize (or (and X,Y), Z) into BFI and other sequences if the AND ↵Nadav Rotem2012-08-132-1/+22
| | | | | | | | ISDNode has more than one user. rdar://11876519 llvm-svn: 161775
* <rdar://problem/12087275>Greg Clayton2012-08-131-1/+1
| | | | | | Make the crashlog parser able to deal with spaces in the process name. llvm-svn: 161772
* tsan: handle larger number of goroutines + fix a memory leak of goroutine ↵Dmitry Vyukov2012-08-132-9/+16
| | | | | | descriptors llvm-svn: 161770
* X86: move Int_CVTSD2SSrr, Int_CVTSI2SSrr, Int_CVTSI2SDrr, Int_CVTSS2SDrr fromManman Ren2012-08-132-6/+20
| | | | | | | | | OpTbl1 to OpTbl2 since they have 3 operands and the last operand can be changed to a memory operand. PR13576 llvm-svn: 161769
* Add support for the %H output modifier.Eric Christopher2012-08-132-2/+24
| | | | | | Patch by Weiming Zhao. llvm-svn: 161768
OpenPOWER on IntegriCloud