summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This ↵Michael Ilseman2013-02-262-10/+9
| | | | | | reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. llvm-svn: 176072
* A quick variable rename Sean and I had discussed earlier to make things a ↵Greg Clayton2013-02-261-9/+9
| | | | | | bit clearer. llvm-svn: 176071
* [mips] Use class RegDefsUses to track register defs and uses.Akira Hatanaka2013-02-261-89/+82
| | | | | | No functionality change. llvm-svn: 176070
* [analyzer] Don't look through casts when creating pointer temporaries.Jordan Rose2013-02-263-12/+34
| | | | | | | | | | | | | | | Normally, we need to look through derived-to-base casts when creating temporary object regions (added in r175854). However, if the temporary is a pointer (rather than a struct/class instance), we need to /preserve/ the base casts that have been applied. This also ensures that we really do create a new temporary region when we need to: MaterializeTemporaryExpr and lvalue CXXDefaultArgExprs. Fixes PR15342, although the test case doesn't include the crash because I couldn't isolate it. llvm-svn: 176069
* [analyzer] StackAddrEscapeChecker: strip qualifiers from temporary types.Jordan Rose2013-02-262-12/+13
| | | | | | | | | | | | With the new support for trivial copy constructors, we are not always consistent about whether a CXXTempObjectRegion gets reused or created from scratch, which affects whether qualifiers are preserved. However, we probably don't care anyway. This also switches to using the current PrintingPolicy for the type, which means C++ types don't get a spurious 'struct' prefix anymore. llvm-svn: 176068
* Fixed several problems with class uniq'ing in theSean Callanan2013-02-262-47/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | SymbolFileDWARF code: - If a class is being uniqued to another copy of itself and the method lists don't match exactly, take a slow path and at least unique the methods that they have in common. - Sort name_to_die maps before querying them. This would otherwise result in uniquing failures because looking up a name in a map that contains it would often fail. - Tolerate classes in other symbol files in the case of debugging with .o files rather than with a .dSYM. We used to assume that the classes being uniqued were in the same symbol file, causing unpredictable results. This will dramatically reduce the number of cases where a function does not have a valid DeclContext. <rdar://problem/12153915> llvm-svn: 176067
* [fast-isel] Make sure the FastLowerArguments function checks to make sure theChad Rosier2013-02-262-0/+2
| | | | | | | arguments type is a simple type. rdar://13290455 llvm-svn: 176066
* Removing leftover printf() statementEnrico Granata2013-02-261-1/+0
| | | | llvm-svn: 176065
* If the user has disabled kext loading with theJason Molenda2013-02-261-12/+25
| | | | | | | | | plugin.dynamic-loader.darwin-kernel.load-kexts setting, don't print any messages about loading the kexts (which isn't being done) and don't read the Mach-O headers out of memory (which can be slow and they're not being used for anything at this point). llvm-svn: 176064
* <rdar://problem/13289157>Greg Clayton2013-02-262-2/+21
| | | | | | Set the exception breakpoints more efficiently by specifying two module basenames as module filters for Apple vendor targets. llvm-svn: 176063
* <rdar://problem/13282582>Han Ming Ong2013-02-261-2/+5
| | | | | | Really don't call sysctl again when we already have the result. llvm-svn: 176062
* Fix the .categories, it had "dataformatter" not "dataformatters".Jim Ingham2013-02-254-6/+6
| | | | | | | | Remove the getCategory from TestDataFormatterObjC.py, since it was superceded by the .categories file, and didn't work anyway (getCategories currently has to be a method on the test class, not on the test.) Add a "basic_process" category, and start to find some tests for simple process running sniff tests. llvm-svn: 176061
* Refine fix to PR10499, no functionality changeMichael Liao2013-02-251-1/+1
| | | | | | - Put expensive checking after simple one llvm-svn: 176060
* Being explicit about how ignoring optparse's exceptions is not a best principleEnrico Granata2013-02-251-0/+2
| | | | llvm-svn: 176059
* Fix PR10499Michael Liao2013-02-252-1/+15
| | | | | | | - Check whether SSE is available before lowering all 1s vector building with PCMPEQD, which is only available from SSE2 llvm-svn: 176058
* Provide workaround for PR 15130.Andrew Kaylor2013-02-252-12/+34
| | | | | | This changes the RecordingMemoryManager in lli to use mapped memory rather than malloc to allocate memory for sections and uses a 'near' MemoryBlock to keep the allocations together. This works around a problem in MCJIT where relocations are applied to a generated image immediately oupon generation, which isn't appropriate for the remote case. llvm-svn: 176057
* [ubsan] Emit single check for left shift.Will Dietz2013-02-253-21/+37
| | | | | | Avoids warning twice on same shift. llvm-svn: 176056
* Fix wording.Chad Rosier2013-02-251-3/+4
| | | | llvm-svn: 176055
* [analyzer] Restrict ObjC type inference to methods that have related result ↵Anna Zaks2013-02-252-30/+49
| | | | | | | | | | | | type. This addresses a case when we inline a wrong method due to incorrect dynamic type inference. Specifically, when user code contains a method from init family, which creates an instance of another class. Use hasRelatedResultType() to find out if our inference rules should be triggered. llvm-svn: 176054
* Remove extraneous attribute number.Chad Rosier2013-02-251-1/+1
| | | | llvm-svn: 176053
* [fast-isel] Add X86FastIsel::FastLowerArguments to handle functions with 6 orChad Rosier2013-02-253-0/+108
| | | | | | | | | | fewer scalar integer (i32 or i64) arguments. It completely eliminates the need for SDISel for trivial functions. Also, add the new llc -fast-isel-abort-args option, which is similar to -fast-isel-abort option, but for formal argument lowering. llvm-svn: 176052
* <rdar://problem/13281528>Greg Clayton2013-02-252-9/+9
| | | | | | Fixed issues with the SBModule "sections" property, and with the SBBlock "ranges" attributes. llvm-svn: 176051
* [analyzer] Recover all PreStmtPurgeDeadSymbols nodes with a single successor ↵Ted Kremenek2013-02-251-2/+21
| | | | | | | | | | | | | | or predecessor. These nodes are never consulted by any analyzer client code, so they are used only for machinery for removing dead bindings. Once successor nodes are generated they can be safely removed. This greatly reduces the amount of nodes that are generated in some case, lowering the memory regression when analyzing Sema.cpp introduced by r176010 from 14% to 2%. llvm-svn: 176050
* Added missing lldb module namespace.Greg Clayton2013-02-251-1/+1
| | | | llvm-svn: 176049
* Skip test that fails intermittently with Clang/GCC on LinuxDaniel Malea2013-02-251-1/+1
| | | | | | - was causing buildbot failures due to unexpected pass llvm-svn: 176048
* Various additions to ASTMatcher library:Edwin Vane2013-02-253-1/+285
| | | | | | | | | | | | | | | | New type matchers: * recordType * elaboratedType New narrowing matchers: * hasQualifier * namesType * hasDeclContext Added tests and updated LibASTMatchersReference. Reviewers: klimek llvm-svn: 176047
* Add user documentation for cpp11-migrateEdwin Vane2013-02-252-1/+242
| | | | | | | | | | | | | | | | | | Adding an RST document for cpp11-migrate. This user documentation explains command line options, transformations, risk level and how it applies to loop convert, and code examples of transformations. There is a TODO task under "Risk" for "Loop Convert" to find code examples that produce incorrect transformations that change semantics. The definition of risk in loop convert and instances where the confidence level is lowered will need to be looked at more carefully. Information for all new features (including verbose output, auto transform) will be added in a later change. Author: Jack Yang <jack.wang@intel.com> Reviewer: grigozavr llvm-svn: 176046
* [ELF][Writer] Fill in dynamic table entries.Michael J. Spencer2013-02-252-3/+62
| | | | llvm-svn: 176045
* Revert "Add more attributes from the command line to functions."Anna Zaks2013-02-2544-444/+449
| | | | | | | | This reverts commit 176009. The commit is a likely cause of several buildbot failures. llvm-svn: 176044
* [analyzer] Address Jordan's code review of r175857.Anna Zaks2013-02-252-20/+31
| | | | llvm-svn: 176043
* [analyzer] Handle reference parameters with default values.Jordan Rose2013-02-254-4/+23
| | | | | | | | | | | | r175026 added support for default values, but didn't take reference parameters into account, which expect the default argument to be an lvalue. Use createTemporaryRegionIfNeeded if we can evaluate the default expr as an rvalue but the expected result is an lvalue. Fixes the most recent report of PR12915. The original report predates default argument support, so that can't be it. llvm-svn: 176042
* Optimization of the code-running NSDictionary formatter to skip runtime ↵Enrico Granata2013-02-251-4/+2
| | | | | | symbol fetching llvm-svn: 176041
* <rdar://problem/13286937> Greg Clayton2013-02-251-3/+13
| | | | | | Make sure to not look in self.images when we have a symbolicator with a live process. llvm-svn: 176040
* Add a log line when debugserver exits, and clean up some of the other ↵Jim Ingham2013-02-251-8/+14
| | | | | | standard logs output to make it more useful. llvm-svn: 176039
* Add a front-end test case for r176036.Chad Rosier2013-02-251-0/+8
| | | | llvm-svn: 176038
* pre-RA-sched fix: only reevaluate physreg interferences when necessary.Andrew Trick2013-02-252-33/+117
| | | | | | Fixes rdar:13279013: scheduler was blowing up on select instructions. llvm-svn: 176037
* [ms-inline asm] Add support for the pushad/popad mnemonics.Chad Rosier2013-02-252-4/+15
| | | | | | rdar://13254235 llvm-svn: 176036
* Fix empty declaration printing.Michael Han2013-02-252-1/+1
| | | | | | | Don't print the semicolon when visiting an empty declaration because the semicolon will be printed as a terminator later. llvm-svn: 176035
* [analyzer] Base regions may be invalid when layered on symbolic regions.Jordan Rose2013-02-252-0/+54
| | | | | | | | | | | | | | | | While RegionStore checks to make sure casts on TypedValueRegions are valid, it does not do the same for SymbolicRegions, which do not have perfect type info anyway. Additionally, MemRegion::getAsOffset does not take a ProgramState, so it can't use dynamic type info to determine a better type for the regions. (This could also be dangerous if the type of a super-region changes!) Account for this by checking that a base object region is valid on top of a symbolic region, and falling back to "symbolic offset" mode if not. Fixes PR15345. llvm-svn: 176034
* ARM build docs easier for copy&pasteRenato Golin2013-02-251-5/+5
| | | | llvm-svn: 176033
* Add forgotten testcase.Eric Christopher2013-02-251-0/+7
| | | | llvm-svn: 176032
* 'Hexadecimal' has two 'a's and only one 'i'.Matt Beaumont-Gay2013-02-254-6/+6
| | | | llvm-svn: 176031
* Fix missing relocation for TLS addressing peephole optimization.Bill Schmidt2013-02-253-6/+15
| | | | | | Report and fix due to Kai Nacke. Testcase update by me. llvm-svn: 176029
* Re-add hack that caused regression.Daniel Jasper2013-02-252-1/+7
| | | | | | | | | | | | | | | | | | | This fixes llvm.org/PR15350. Before: Constructor(int Parameter = 0) : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa), aaaaaaaaaaaa(aaaaaaaaaaaaaaaaa) {} After: Constructor(int Parameter = 0) : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa), aaaaaaaaaaaa(aaaaaaaaaaaaaaaaa) {} I think the correct solution is to put the VariablePos into ParenState, not LineState. Added FIXME. llvm-svn: 176027
* Alexey Samsonov: #ifdefs out undefined function in static build of libc++ ↵Howard Hinnant2013-02-252-3/+10
| | | | | | w/o RTTI. llvm-svn: 176026
* Adding hasDeclaration overload for TemplateSpecializationTypeEdwin Vane2013-02-254-16/+101
| | | | | | | | | | | | | | TemplateSpecializationType doesn't quite have getDecl(). Need to go through TemplateName to get a TemplateDecl. Added test cases for the hasDeclaration() overload for TemplateSpecializationType. Also introduced the type matcher templateSpecializationType() used by the new hasDeclaration() test case. Updated LibASTMatchersReference. Reviewers: klimek llvm-svn: 176025
* Support in hasDeclaration for types with getDecl()Edwin Vane2013-02-252-2/+26
| | | | | | | | | | | Re-introducing r175532. The has_getDecl metafunction didn't compile with Visual Studio. This revision uses approaches has_getDecl from a different angle that isn't a problem for Visual Studio. Added dedicated tests for the metafunction. Reviewers: klimek llvm-svn: 176024
* Fix spelling noticed by Duncan.Chandler Carruth2013-02-251-3/+3
| | | | llvm-svn: 176023
* Fix the root cause of PR15348 by correctly handling alignment 0 onChandler Carruth2013-02-254-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | memory intrinsics in the SDAG builder. When alignment is zero, the lang ref says that *no* alignment assumptions can be made. This is the exact opposite of the internal API contracts of the DAG where alignment 0 indicates that the alignment can be made to be anything desired. There is another, more explicit alignment that is better suited for the role of "no alignment at all": an alignment of 1. Map the intrinsic alignment to this early so that we don't end up generating aligned DAGs. It is really terrifying that we've never seen this before, but we suddenly started generating a large number of alignment 0 memcpys due to the new code to do memcpy-based copying of POD class members. That patch contains a bug that rounds bitfield alignments down when they are the first field. This can in turn produce zero alignments. This fixes weird crashes I've seen in library users of LLVM on 32-bit hosts, etc. llvm-svn: 176022
* Reverting r176019. Corrupt patch.Edwin Vane2013-02-252-36/+2
| | | | llvm-svn: 176021
OpenPOWER on IntegriCloud