summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Change method name ClearRefCount => ClearKnownPositiveRefCount to match the ↵Michael Gottesman2013-03-231-4/+4
| | | | | | name of the member that it is modifying. llvm-svn: 177818
* Add two additional DNBLog's in places where we're about to killJason Molenda2013-03-232-0/+2
| | | | | | | | off the inferior process so we stand a better chance of understanding what caused us to send a PT_KILL. <rdar://problem/12720340> llvm-svn: 177817
* Changed the method name PtrState.IsKnownIncremented() to ↵Michael Gottesman2013-03-231-3/+3
| | | | | | | | | PtrState.HasKnownPositiveRefCount(). Now said method matches namewise every other method which refers to the member KnownPositiveRefCount of the class PtrState. llvm-svn: 177816
* Revert svn r176894 and r177658.Bob Wilson2013-03-232-21/+10
| | | | | | | | | | | Changing -ccc-install-dir to affect cc1's resource-dir setting broke our internal LNT tests. After discussing the situation with Jim, we've decided to pursue an alternate approach. We really want the resource-dir to be located relative to clang, even when using -ccc-install-dir, but we're going to add a fallback setting for the libc++ headers if they don't exist alongside the compiler. llvm-svn: 177815
* Set the correct byte size for complex integer (-fI) memory reads.Jason Molenda2013-03-231-0/+8
| | | | | | <rdar://problem/12281172> llvm-svn: 177814
* Under ARC, when we're passing the address of a strong variableJohn McCall2013-03-239-29/+129
| | | | | | | | | | | | to an out-parameter using the indirect-writeback conversion, and we copied the current value of the variable to the temporary, make sure that we register an intrinsic use of that value with the optimizer so that the value won't get released until we have a chance to retain it. rdar://13195034 llvm-svn: 177813
* And then again only compute the more expensive piece of data if need be :-)Enrico Granata2013-03-231-1/+1
| | | | llvm-svn: 177812
* Added a python version of the performance tests. It will be good to see if ↵Greg Clayton2013-03-231-0/+197
| | | | | | the overhead of python interferes at all with our performance readings. We can try things out with this script and see how things go. llvm-svn: 177811
* Invert two condition checks to evaluate them in cheapest-to-more-expensive orderEnrico Granata2013-03-231-2/+2
| | | | llvm-svn: 177810
* Strip off local qualifiers when converting from RecordType toRichard Trieu2013-03-233-25/+41
| | | | | | | TemplateSpecializationType during template type diffing. This allows the correct printing of diffing qualifiers on templates. llvm-svn: 177809
* Added better measurements to test:Greg Clayton2013-03-231-28/+46
| | | | | | | | | | - memory delta and time for: target create - memory delta and time for: setting breakpoint at main by name - time to launch and hit bp at main - overall memory of target create + bp main + run to main - ovarall time of target create + bp main + run to main llvm-svn: 177808
* <rdar://problem/13312903>Enrico Granata2013-03-231-0/+7
| | | | | | | | | | | | | | Exports write() and flush() from SBCommandReturnObject to enable file-like output from Python commands. e.g.: def ls(debugger, command, result, internal_dict): print >>result,”just “some output” will produce (lldb) ls just “some output (lldb) llvm-svn: 177807
* [analyzer] Teach constraint managers about unsigned comparisons.Jordan Rose2013-03-236-23/+185
| | | | | | | | | | | In C, comparisons between signed and unsigned numbers are always done in unsigned-space. Thus, we should know that "i >= 0U" is always true, even if 'i' is signed. Similarly, "u >= 0" is also always true, even though '0' is signed. Part of <rdar://problem/13239003> (false positives related to std::vector) llvm-svn: 177806
* [analyzer] Loc-Loc operations (subtraction or comparison) produce a NonLoc.Jordan Rose2013-03-232-8/+8
| | | | | | | | | | For two concrete locations, we were producing another concrete location and then casting it to an integer. We should just create a nonloc::ConcreteInt to begin with. No functionality change. llvm-svn: 177805
* [analyzer] CmpRuns.py: Accept single files as input.Jordan Rose2013-03-231-46/+51
| | | | | | | | This allows us to compare two direct invocations of the analyzer on a single source file without having to wrap the output plists in their own directories. llvm-svn: 177804
* [analyzer] Also transform "a < b" to "(b - a) > 0" in the constraint manager.Jordan Rose2013-03-232-15/+61
| | | | | | | | | | | | We can support the full range of comparison operations between two locations by canonicalizing them as subtraction, as in the previous commit. This won't work (well) if either location includes an offset, or (again) if the comparisons are not consistent about which region comes first. <rdar://problem/13239003> llvm-svn: 177803
* Add reverseComparisonOp and negateComparisonOp to BinaryOperator.Jordan Rose2013-03-233-46/+32
| | | | | | ...and adopt them in the analyzer. llvm-svn: 177802
* [analyzer] Translate "a != b" to "(b - a) != 0" in the constraint manager.Jordan Rose2013-03-234-23/+101
| | | | | | | | | | | | | | | | | | | | | | | Canonicalizing these two forms allows us to better model containers like std::vector, which use "m_start != m_finish" to implement empty() but "m_finish - m_start" to implement size(). The analyzer should have a consistent interpretation of these two symbolic expressions, even though it's not properly reasoning about either one yet. The other unfortunate thing is that while the size() expression will only ever be written "m_finish - m_start", the comparison may be written "m_finish == m_start" or "m_start == m_finish". Right now the analyzer does not attempt to canonicalize those two expressions, since it doesn't know which length expression to pick. Doing this correctly will probably require implementing unary minus as a new SymExpr kind (<rdar://problem/12351075>). For now, the analyzer inverts the order of arguments in the comparison to build the subtraction, on the assumption that "begin() != end()" is written more often than "end() != begin()". This is purely speculation. <rdar://problem/13239003> llvm-svn: 177801
* [analyzer] Use SymExprs to represent '<loc> - <loc>' and '<loc> == <loc>'.Jordan Rose2013-03-232-17/+34
| | | | | | | | | | We just treat this as opaque symbols, but even that allows us to handle simple cases where the same condition is tested twice. This is very common in the STL, which means that any project using the STL gets spurious errors. Part of <rdar://problem/13239003>. llvm-svn: 177800
* <rdar://problem/13315663>Enrico Granata2013-03-231-9/+32
| | | | | | | | commands of the form frame variable -f c-string foo where foo is an arbitrary pointer (e.g. void*) now do the right thing, i.e. they deref the pointer and try to get a c-string at the pointed address instead of dumping the pointer bytes as a string. the old behavior is used as a fallback if things don’t go well llvm-svn: 177799
* Cloog: Add virtual destructor to silence gcc warningTobias Grosser2013-03-231-0/+1
| | | | | | | | | This silences the following warning: 'polly::ClastVisitor' has virtual functions but non-virtual destructor [-Wnon-virtual-dtor] llvm-svn: 177798
* documentation parsing: when providing code completion commentFariborz Jahanian2013-03-232-2/+29
| | | | | | | for a getter used in property-dot syntax, if geter has its own comment use it. // rdar://12791315 llvm-svn: 177797
* clang-format: Many more filesTobias Grosser2013-03-2346-1339/+1156
| | | | | | | | | | | | | After this commit, polly is clang-format clean. This can be tested with 'ninja polly-check-format'. Updates to clang-format may change this, but the differences will hopefully be both small and general improvements to the formatting. We currently have some not very nice formatting for a couple of items, DEBUG() stmts for example. I believe the benefit of being clang-format clean outweights the not perfect layout of this code. llvm-svn: 177796
* cmake: Do not clang-format check the externally imported json libraryTobias Grosser2013-03-231-0/+2
| | | | llvm-svn: 177795
* If there are multiple uses of an Objective-CSean Callanan2013-03-231-8/+12
| | | | | | | | | class symbol in the same expression, handle all of them instead of just the first one. <rdar://problem/13440133> llvm-svn: 177794
* Only get the script interpreter if we find scripting resources in the symbol ↵Greg Clayton2013-03-231-13/+13
| | | | | | file. This helps us avoid initializing python when it isn't needed. llvm-svn: 177793
* Don't need to resolve the .o file path.Greg Clayton2013-03-231-1/+1
| | | | llvm-svn: 177792
* Make sure the "Release" builds link against the "Release" LLDB.framework and ↵Greg Clayton2013-03-233-21/+30
| | | | | | also output the results to /dev/stdout when no outfile is supplied. llvm-svn: 177791
* Change debugserver to open the socket it listensJason Molenda2013-03-233-10/+22
| | | | | | | | | | | | | | | to in INADDR_LOOPBACK mode by default ("localhost only") instead of INADDR_ANY ("accept connections from any system"). Add a new command line argument to debugserver, --open-connection or -H which will enable the previous behavior. It would be used if you were doing two-system debugging, with lldb running on one system and debugserver running on the other. But it is a less common workflow and should not be the default. <rdar://problem/12583284> llvm-svn: 177790
* [analyzer] Warn when a nil key or value are passed to NSMutableDictionary ↵Anna Zaks2013-03-232-22/+136
| | | | | | and ensure it works with subscripting. llvm-svn: 177789
* [analyzer] Correct the stale comment.Anna Zaks2013-03-231-3/+3
| | | | llvm-svn: 177788
* RegisterPasses: clang-formatTobias Grosser2013-03-231-76/+61
| | | | llvm-svn: 177787
* Instvarsimplify: clang-formatTobias Grosser2013-03-231-269/+278
| | | | | | | Even though we will soon get rid of this pass, we reformat it on the way to make polly clang-format clean. llvm-svn: 177786
* IndependentBlocks: clang-format and remove includesTobias Grosser2013-03-231-59/+52
| | | | llvm-svn: 177785
* Build and install .syms files alongside sanitizer runtimes. These are used toRichard Smith2013-03-239-7/+24
| | | | | | | specify which symbols are exported to DSOs when the sanitizer is statically linked into a binary. llvm-svn: 177784
* If a .syms file is available alongside a sanitizer runtime, pass it to theRichard Smith2013-03-2313-9/+33
| | | | | | | | linker via --dynamic-list instead of using --export-dynamic. This reduces the size of the dynamic symbol table, and thus of the binary (in some cases by up to ~30%). llvm-svn: 177783
* DeadCodeElimination: clang-format and commentTobias Grosser2013-03-231-23/+22
| | | | llvm-svn: 177782
* CodePreparation: Comment and format the file properlyTobias Grosser2013-03-231-72/+70
| | | | llvm-svn: 177781
* Fix comparison of mixed signednessHal Finkel2013-03-231-1/+1
| | | | | | | | | | | 177774 broke the lld-x86_64-darwin11 builder; error: error: comparison of integers of different signs: 'int' and 'size_type' (aka 'unsigned long') for (SI = 0; SI < Scavenged.size(); ++SI) ~~ ^ ~~~~~~~~~~~~~~~~ Fix this by making SI also unsigned. llvm-svn: 177780
* Fix a little fallout from the changes in r174757 where we wouldJason Molenda2013-03-231-9/+0
| | | | | | | | skip every other float/double/long double as we extracted data from a buffer. <rdar://problem/13485062> llvm-svn: 177779
* [docs] Slight reword for precision.Sean Silva2013-03-221-1/+1
| | | | | | | | The new wording cannot be construed as suggesting the use of SmallVectorImpl<T> as e.g. a class member (just because the class happens to be in an interface). llvm-svn: 177778
* codegen: properly instantiate SCEVs to the place where they are usedTobias Grosser2013-03-223-33/+61
| | | | | | | | | | | | | | | | | | | | Given the following code for (i = 0; i < 10; i++) { ; } S: A[i] = 0 When code generating S using scev based code generation, we need to retrieve the scev of 'i' at the location of 'S'. If we do not do this the scev that we obtain will be expressed as {0,+,1}_for and will reference loop iterators that do not surround 'S' and that we consequently do not know how to code generate. What we really want is the scev to be instantiated to the value of 'i' after the loop. This value is {10} and it can be code generated without troubles. llvm-svn: 177777
* Don't bother calling Reserve on the vector unless we have entries to be added.Jason Molenda2013-03-221-1/+2
| | | | llvm-svn: 177776
* [docs] Document usage of SmallVectorImpl in interfaces.Sean Silva2013-03-221-0/+27
| | | | llvm-svn: 177775
* Allow the register scavenger to spill multiple registersHal Finkel2013-03-2210-43/+84
| | | | | | | | | | | | | | | | | | This patch lets the register scavenger make use of multiple spill slots in order to guarantee that it will be able to provide multiple registers simultaneously. To support this, the RS's API has changed slightly: setScavengingFrameIndex / getScavengingFrameIndex have been replaced by addScavengingFrameIndex / isScavengingFrameIndex / getScavengingFrameIndices. In forthcoming commits, the PowerPC backend will use this capability in order to implement the spilling of condition registers, and some special-purpose registers, without relying on r0 being reserved. In some cases, spilling these registers requires two GPRs: one for addressing and one to hold the value being transferred. llvm-svn: 177774
* Add a Reserve method to RangeVector and RangeDataVector. Have theJason Molenda2013-03-222-2/+16
| | | | | | | | DWARFCallFrameInfo method which returns a RangeVector pre-size the vector based on the number of entries it will be adding insted of growing the vector as items are added. llvm-svn: 177773
* Support in AAEvaluator to print alias queries of loads/stores with TBAA tags.Manman Ren2013-03-222-0/+176
| | | | | | | | | Add "evaluate-tbaa" to print alias queries of loads/stores. Alias queries between pointers do not include TBAA tags. Add testing case for "placement new". TBAA currently says NoAlias. llvm-svn: 177772
* ScopInfo: do not call getCanonicalInductionVariable for SCEVCodegenSebastian Pop2013-03-221-5/+7
| | | | llvm-svn: 177771
* Kill every call to @clang.arc.use in the ARC contract phase.John McCall2013-03-226-3/+33
| | | | llvm-svn: 177769
* Use RequireCompleteType() instead of isIncompleteType().Bill Wendling2013-03-222-2/+11
| | | | | | | | | | | | isIncompleteType() returns true or false for template types depending on whether the type is instantiated yet. In this context, that's arbitrary. The better way to check for a complete type is RequireCompleteType(). Thanks to Eli Friedman for noticing this! <rdar://problem/12700799> llvm-svn: 177768
OpenPOWER on IntegriCloud