summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Clean up arc annotations by moving the top/bottom BB annotations into ↵Michael Gottesman2013-04-031-58/+46
| | | | | | | | conditional macros that no-op in Release mode instead of #ifdef sections of the code. This is to follow the example of the DEBUG macro. llvm-svn: 178705
* <rdar://problem/12789467>Greg Clayton2013-04-031-1/+2
| | | | | | Fixed an attach case for ARM that was imporperly detecting an application bundle when there wasn't one. llvm-svn: 178704
* X86 cost model: Vector shifts are expensive in most casesArnold Schwaighofer2013-04-035-2/+772
| | | | | | | | | | | | | | The default logic does not correctly identify costs of casts because they are marked as custom on x86. For some cases, where the shift amount is a scalar we would be able to generate better code. Unfortunately, when this is the case the value (the splat) will get hoisted out of the loop, thereby making it invisible to ISel. radar://13130673 radar://13537826 llvm-svn: 178703
* <rdar://problem/13384801>Greg Clayton2013-04-0310-96/+127
| | | | | | Make lldb_private::RegularExpression thread safe everywhere. This was done by removing the m_matches array from the lldb_private::RegularExpression class and putting it into the new lldb_private::RegularExpression::Match class. When executing a regular expression you now have the option to create a lldb_private::RegularExpression::Match object and pass a pointer in if you want to get parenthesized matching. If you don't want any matching, you pass in NULL. The lldb_private::RegularExpression::Match object is initialized with the number of matches you desire. Any matching strings are now extracted from the lldb_private::RegularExpression::Match objects. This makes the regular expression objects thread safe and as a result many more regex objects were turned into static objects that end up using a local lldb_private::RegularExpression::Match object when executing. llvm-svn: 178702
* [analyzer] Allow tracknullOrUndef look through the ternary operator even ↵Anna Zaks2013-04-032-16/+21
| | | | | | | | | | | | | when condition is unknown Improvement of r178684 and r178685. Jordan has pointed out that I should not rely on the value of the condition to know which expression branch has been taken. It will not work in cases the branch condition is an unknown value (ex: we do not track the constraints for floats). The better way of doing this would be to find out if the current node is the right or left successor of the node that has the ternary operator as a terminator (which is how this is done in other places, like ConditionBRVisitor). llvm-svn: 178701
* Fix build.Rafael Espindola2013-04-034-11/+0
| | | | | | This should fix the build breakage caused by the api change in 178663. llvm-svn: 178700
* [preprocessor] Minor optimization following r178671.Argyrios Kyrtzidis2013-04-031-2/+3
| | | | | | Don't bother looking for parameter index of 'B' token if 'A' is not a parameter. llvm-svn: 178699
* Complain about attempts to befriend declarations via a usingJohn McCall2013-04-034-1/+29
| | | | | | declaration. Patch by Stephen Lin! llvm-svn: 178698
* [analyzer] Correctly handle destructors for lifetime-extended temporaries.Jordan Rose2013-04-032-14/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | The lifetime of a temporary can be extended when it is immediately bound to a local reference: const Value &MyVal = Value("temporary"); In this case, the temporary object's lifetime is extended for the entire scope of the reference; at the end of the scope it is destroyed. The analyzer was modeling this improperly in two ways: - Since we don't model temporary constructors just yet, we create a fake temporary region when it comes time to "materialize" a temporary into a real object (lvalue). This wasn't taking base casts into account when the bindings being materialized was Unknown; now it always respects base casts except when the temporary region is itself a pointer. - When actually destroying the region, the analyzer did not actually load from the reference variable -- it was basically destroying the reference instead of its referent. Now it does do the load. This will be more useful whenever we finally start modeling temporaries, or at least those that get bound to local reference variables. <rdar://problem/13552274> llvm-svn: 178697
* <rdar://problem/13561911>Greg Clayton2013-04-032-7/+31
| | | | | | Modify LLDB to handle DW_FORM_ref_addr attributes for DWARF3 and DWARF4. llvm-svn: 178696
* Update for API change for handling mips64el.Rafael Espindola2013-04-032-8/+18
| | | | llvm-svn: 178695
* Implement the "mips endian" for r_info.Rafael Espindola2013-04-034-20/+85
| | | | | | | | Normally r_info is just a 32 of 64 bit number matching the endian of the rest of the file. Unfortunately, mips 64 bit little endian is special: The top 32 bits are a little endian number and the following 32 are a big endian one. llvm-svn: 178694
* Update the lld testsuite for the llvm-readobj format change.Rafael Espindola2013-04-034-53/+208
| | | | llvm-svn: 178693
* #include clang's AST/DeclCXX.h to pick up CXXRecordDecl definition,Jason Molenda2013-04-031-0/+2
| | | | | | needed for some versions of clang. llvm-svn: 178692
* Fix stupid but harmless type-o. Fixes ↵Howard Hinnant2013-04-031-2/+2
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=15657. llvm-svn: 178691
* The move / swap members were not correctly taking all of the possible states ↵Howard Hinnant2013-04-032-40/+161
| | | | | | of the basic_stringbuf into account. Just rewrote these members. Test included. This fixes http://llvm.org/bugs/show_bug.cgi?id=15659. llvm-svn: 178690
* [XCore] Check disassembly of the st8 instruction.Richard Osborne2013-04-031-0/+3
| | | | llvm-svn: 178689
* [XCore] Update disassembler test to improve coverage of the instructions.Richard Osborne2013-04-031-6/+6
| | | | | | | Previously some instructions were unintentionally covered twice and others were not covered at all. llvm-svn: 178688
* [analyzer] Rename “Mac OS X API”, “Mac OS API” -> “API Misuse ↵Anna Zaks2013-04-034-6/+7
| | | | | | | | (Apple)” As they are relevant on both Mac and iOS. llvm-svn: 178687
* [analyzer] Warn when nil receiver results in forming null referenceAnna Zaks2013-04-032-12/+36
| | | | | | This also allows us to ensure IDC/return null suppression gets triggered in such cases. llvm-svn: 178686
* [analyzer] make peelOffOuterExpr in BugReporterVisitors recursively peel off ↵Anna Zaks2013-04-032-30/+56
| | | | | | select Exprs llvm-svn: 178685
* [analyzer] Properly handle the ternary operator in trackNullOrUndefValueAnna Zaks2013-04-033-12/+26
| | | | | | | | | | | | 1) Look for the node where the condition expression is live when checking if it is constrained to true or false. 2) Fix a bug in ProgramState::isNull, which was masking the problem. When the expression is not a symbol (,which is the case when it is Unknown) return unconstrained value, instead of value constrained to “false”! (Thankfully other callers of isNull have not been effected by the bug.) llvm-svn: 178684
* [analyzer] Fix typo.Anna Zaks2013-04-031-1/+1
| | | | | | Thanks Jordan! llvm-svn: 178683
* Add 178663 back.Rafael Espindola2013-04-0338-339/+220
| | | | | | | | | | | http://lab.llvm.org:8011/builders/clang-x86_64-darwin10-gdb went back green before it processed the reverted 178663, so it could not have been the culprit. Revert "Revert 178663." This reverts commit 4f8a3eb2ce5d4ba422483439e20c8cbb4d953a41. llvm-svn: 178682
* Revert 178663.Rafael Espindola2013-04-0338-220/+339
| | | | | | | | | | Looks like it broke http://lab.llvm.org:8011/builders/clang-x86_64-darwin10-gdb Revert "Don't compute a patched/semantic storage class." This reverts commit 8f187f62cb0487d31bc4afdfcd47e11fe9a51d05. llvm-svn: 178681
* Objective-C modern rewriter. Fixes a bugFariborz Jahanian2013-04-032-3/+20
| | | | | | | | rewriting typedef for a qualified object type and also when two declarations happen to be on the same line. // rdar://13562505 llvm-svn: 178680
* Implements low-level object file format specific output for COFF andEric Christopher2013-04-0334-521/+3928
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ELF with support for: - File headers - Section headers + data - Relocations - Symbols - Unwind data (only COFF/Win64) The output format follows a few rules: - Values are almost always output one per line (as elf-dump/coff-dump already do). - Many values are translated to something readable (like enum names), with the raw value in parentheses. - Hex numbers are output in uppercase, prefixed with "0x". - Flags are sorted alphabetically. - Lists and groups are always delimited. Example output: ---------- snip ---------- Sections [ Section { Index: 1 Name: .text (5) Type: SHT_PROGBITS (0x1) Flags [ (0x6) SHF_ALLOC (0x2) SHF_EXECINSTR (0x4) ] Address: 0x0 Offset: 0x40 Size: 33 Link: 0 Info: 0 AddressAlignment: 16 EntrySize: 0 Relocations [ 0x6 R_386_32 .rodata.str1.1 0x0 0xB R_386_PC32 puts 0x0 0x12 R_386_32 .rodata.str1.1 0x0 0x17 R_386_PC32 puts 0x0 ] SectionData ( 0000: 83EC04C7 04240000 0000E8FC FFFFFFC7 |.....$..........| 0010: 04240600 0000E8FC FFFFFF31 C083C404 |.$.........1....| 0020: C3 |.| ) } ] ---------- snip ---------- Relocations and symbols can be output standalone or together with the section header as displayed in the example. This feature set supports all tests in test/MC/COFF and test/MC/ELF (and I suspect all additional tests using elf-dump), making elf-dump and coff-dump deprecated. Patch by Nico Rieck! llvm-svn: 178679
* Don't disassemble symbols with an unknown address or size.Eric Christopher2013-04-031-0/+1
| | | | | | Patch by Nico Rieck! llvm-svn: 178678
* Implement sectionContainsSymbol for ELF.Eric Christopher2013-04-032-3/+13
| | | | | | Patch by Nico Rieck! llvm-svn: 178677
* When dumping clear the arm/thumb flag for now.Eric Christopher2013-04-032-0/+17
| | | | | | Patch by Nico Rieck! llvm-svn: 178676
* R600: Fix last ALU of a clause being emitted in a separate clauseVincent Lejeune2013-04-032-2/+852
| | | | llvm-svn: 178675
* Ensuring that both bits are set, and not just a combination of one or the other.Aaron Ballman2013-04-031-1/+2
| | | | llvm-svn: 178674
* Cleanup PPC reciprocal-estimate functionalityHal Finkel2013-04-032-61/+47
| | | | | | | Incorporating review feedback from Bill Schmidt on r178617. No functionality change intended. llvm-svn: 178672
* [preprocessor] Allow comparing two macro definitions syntactically instead ↵Argyrios Kyrtzidis2013-04-039-17/+57
| | | | | | | | | | | | | | of only lexically. Syntactically means the function macro parameter names do not need to use the same identifiers in order for the definitions to be considered identical. Syntactic equivalence is a microsoft extension for macro redefinitions and we'll also use this kind of comparison to check for ambiguous macros coming from modules. rdar://13562254 llvm-svn: 178671
* Emit a nicer diagnostic for misplaced attributes on ObjC directives.Nico Weber2013-04-035-8/+43
| | | | llvm-svn: 178670
* Test Hexagon tool-chain when configured as OSless target.Jyotsna Verma2013-04-031-0/+564
| | | | llvm-svn: 178669
* Give the default CorrectionCandidateCallback::ValidateCandidate someKaelyn Uhrain2013-04-034-3/+34
| | | | | | | | smarts so that it doesn't approve of keywords and/or type names when it knows (based on its flags) that those kinds of corrections are not wanted. llvm-svn: 178668
* R600: Factorize maximum alu per clause in a single locationVincent Lejeune2013-04-034-2/+6
| | | | llvm-svn: 178667
* Testing for Visual Studio 2010 SP1 or greater before calling the _xgetbv ↵Aaron Ballman2013-04-031-2/+2
| | | | | | intrinsic. This also fixes a minor code formatting issue. llvm-svn: 178666
* R600: Simplify data structure and add DEBUG to R600ControlFlowFinalizerVincent Lejeune2013-04-031-20/+21
| | | | llvm-svn: 178665
* R600: Consider KILLGT as an ALU instructionVincent Lejeune2013-04-032-3/+4
| | | | | | | Mesa does not override llvm behavior wrt KILLGT anymore so llvm has to handle KILLGT on its own. llvm-svn: 178664
* Don't compute a patched/semantic storage class.Rafael Espindola2013-04-0338-339/+220
| | | | | | | | | | | For variables and functions clang used to store two storage classes. The one "as written" in the code and a patched one, which, for example, propagates static to the following decls. This apparently is from the days clang lacked linkage computation. It is now redundant and this patch removes it. llvm-svn: 178663
* Measure time that IR parsing took as part of the -time-passes measurement.Eli Bendersky2013-04-032-4/+13
| | | | llvm-svn: 178662
* Unit test support for Clang extra toolsEdwin Vane2013-04-0311-3/+120
| | | | | | | Added support to CMake and autoconf for unit tests in clang-tools-extra. A dummy test exists for now until more meaningful tests can be written. llvm-svn: 178661
* PPC: Enable FRES and FRSQRTE on the default PPC64 descriptionHal Finkel2013-04-031-1/+2
| | | | | | | I discussed this with Bill Schmidt on IRC, and it was decided that this is a safe and reasonable default. llvm-svn: 178659
* PPC: Add a FIXME regarding the non-working fma+fneg Altivec patternHal Finkel2013-04-031-0/+2
| | | | llvm-svn: 178658
* Remove some obsolete PowerPC/README entriesHal Finkel2013-04-031-20/+0
| | | | llvm-svn: 178657
* More direct types in PowerPC AltiVec intrinsics.Ulrich Weigand2013-04-031-47/+29
| | | | | | | | | | This patch follows up on work done by Bill Schmidt in r178277, and replaces most of the remaining uses of VRRC in ISEL DAG patterns. The resulting .inc files are identical except for comments, so no change in code generation is expected. llvm-svn: 178656
* Improve formatting of for loops and multi-variable DeclStmts.Daniel Jasper2013-04-034-31/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This combines several related changes: a) Don't break before after the variable types in for loops with a single variable. b) Better indent DeclStmts defining multiple variables. Before: bool aaaaaaaaaaaaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaa), bbbbbbbbbbbbbbbbbbbbbbbbb = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb(bbbbbbbbbbbbbbbb); for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa = aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaa; aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) { } After: bool aaaaaaaaaaaaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaa), bbbbbbbbbbbbbbbbbbbbbbbbb = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb(bbbbbbbbbbbbbbbb); for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa = aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaa; aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) { } llvm-svn: 178641
* [Sanitizer] Fix OnPrint weak hook. Disable weak hooks for gotsan.Alexey Samsonov2013-04-032-7/+7
| | | | llvm-svn: 178640
OpenPOWER on IntegriCloud