summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix typosBruce Mitchener2015-07-027-17/+17
| | | | | | | | | | | | Summary: Fixes more typos. Reviewers: clayborg Subscribers: lldb-commits-list Differential Revision: http://reviews.llvm.org/D10898 llvm-svn: 241289
* [Statepoints] Make operator bool() explicit.Sanjoy Das2015-07-021-1/+1
| | | | | | (Addressing post-commit review.) llvm-svn: 241288
* Move PlatformFreeBSD to its own namespaceEd Maste2015-07-023-158/+164
| | | | | | Based on r233679 llvm-svn: 241287
* Remove a report_fatal_error that should be unreachable.Rafael Espindola2015-07-021-4/+1
| | | | | | If we created a relocation iterator, we have a valid relocation section. llvm-svn: 241286
* [PPC64LE] Teach swap optimization about the doubleword splat idiomBill Schmidt2015-07-022-12/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With a previous patch, the VSX swap optimization is able to recognize the doubleword load-splat idiom that can be implemented using lxvdsx. However, that does not cover a doubleword splat where the source is a register. We can implement this using xxspltd (a special form of xxpermdi). This patch teaches the swap optimization pass about this idiom. As a prerequisite, it also permits swap optimization to succeed for all forms of SUBREG_TO_REG. Previously we were conservative and only allowed SUBREG_TO_REG when it copied a full register. However, on reflection any form of SUBREG_TO_REG is safe in and of itself, so long as an unsafe operation is not performed on its result. In particular, a widening SUBREG_TO_REG often occurs as an input to a doubleword splat idiom, particularly in auto-vectorized code. The doubleword splat idiom is an XXPERMDI operation where both source registers are identical, and the selection mask is either 0 (splat the first element) or 3 (splat the second element). To determine whether the registers are identical, we use the existing mechanism for looking through "copy-like" operations. That mechanism has a side effect of marking the XXPERMDI operation as using a physical register, which would invalidate its presence in a swap-optimized region. This is correct for the form of XXPERMDI that performs a swap and hence would be removed, but is not what we want for a doubleword-splat variety of XXPERMDI. Therefore we reset the physical-register flag on the XXPERMDI when it represents a splat. A simple test case is added to verify that we generate the splat and that we also remove the xxswapd instructions that would otherwise be associated with the load and store of another operand. llvm-svn: 241285
* Convert a member variable to a local one.Rafael Espindola2015-07-021-3/+3
| | | | llvm-svn: 241284
* Reworking the test part of r241149Gabor Ballabas2015-07-024-0/+33
| | | | | | | | | The test part of r241149 has been reverted in r241451, due to misplaced test cases. This patch splits those test cases among the appropriate targets. Differential Revision: http://reviews.llvm.org/D10897 llvm-svn: 241283
* Make sure we can lookup re-exported symbols after recent changes to ↵Greg Clayton2015-07-021-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lldb_private::Symbol. Recently lldb_private::Symbol was changed so the old code: Address &Symbol::GetAddress(); Is now: Address Symbol::GetAddress(); And the Address object that is returned will be invalid for non-address based symbols. When we have re-exported symbols this code would now fail: const Address sym_address = sym_ctx.symbol->GetAddress(); if (!sym_address.IsValid()) continue; symbol_load_addr = sym_ctx.symbol->ResolveCallableAddress(*target_sp); if (symbol_load_addr == LLDB_INVALID_ADDRESS) { symbol_load_addr = sym_address.GetLoadAddress(target_sp.get()); } It used to return an Address reference to the value of the re-exported symbol that contained no section and a zero value for Address.m_offset (since the original symbol in the symbol table had a value of zero). When a reference was returned, this meant the "sym_address.IsValid()" would return true because the Address.m_offset was not LLDB_INVALID_ADDRESS, it was zero. This was working by mistake. The Symbol::ResolveCallableAddress(...) actually checks for reexported symbols and whole bunch of other cases and resolves the address correctly, so we should let it do its thing and not cut it off before it can resolve the address with the "if (!sym_address.IsValid()) continue;". llvm-svn: 241282
* Fix for PR23310: llvm-dis crashes when trying to upgrade an intrinsic.Rafael Espindola2015-07-023-3/+4
| | | | | | | | | | | | When trying to upgrade @llvm.x86.sse2.psrl.dq while parsing a module, BitcodeReader adds the function to its worklist twice, resulting in a crash when accessing it the second time. This patch replaces the worklist vector by a map. Patch by Philip Pfaffe. llvm-svn: 241281
* Handle .dynsym a bit more like we handle .symtab.Rafael Espindola2015-07-021-25/+25
| | | | | | | They have the same format and we find them in the same way, no reason to handle them differently. llvm-svn: 241280
* Rangify some loops.Rafael Espindola2015-07-021-17/+13
| | | | | | Patch by Philip Pfaffe! llvm-svn: 241279
* Fix linking issue after r241271 (dbghelp.lib was removed from default ↵Leny Kholodov2015-07-021-0/+1
| | | | | | dependencies on Windows) llvm-svn: 241278
* Use default member initializes. NFC.Rafael Espindola2015-07-021-13/+10
| | | | llvm-svn: 241277
* Remove outdated comment.Chaoren Lin2015-07-021-1/+0
| | | | llvm-svn: 241276
* Revert "Refactored ARMTargetInfo in order to use the API of ↵Rafael Espindola2015-07-021-72/+117
| | | | | | | | llvm/lib/Support/TargetParser.cpp for extracting target specific information." This reverts commit r241267. Tests were failing on the bots. llvm-svn: 241275
* [ELF] Remove dead code. NFCSimon Atanasyan2015-07-022-20/+0
| | | | llvm-svn: 241274
* clang-format: [JS] Treat regex literals like string literals.Daniel Jasper2015-07-022-0/+6
| | | | | | | Using the token type "unknown" can interfere badly with WhitespaceManager's way of handling multiline comments. llvm-svn: 241273
* Remove whitespace from start of line, NFC.Yaron Keren2015-07-021-1/+1
| | | | llvm-svn: 241272
* [Support] Lazy load of dbghlp.dll on WindowsLeny Kholodov2015-07-028-50/+55
| | | | | | | | | | | | | This patch changes linkage with dbghlp.dll for clang from static (at load time) to on demand (at the first use of required functions). Clang uses dbghlp.dll only in minor use-cases. First of all in case of crash and in case of plugin load. The dbghlp.dll library can be absent on system. In this case clang will fail to load. With lazy load of dbghlp.dll clang can work even if dbghlp.dll is not available. Differential Revision: http://reviews.llvm.org/D10737 llvm-svn: 241271
* [X86] Convert an instruction relaxation test to use objdump instead of readobjMichael Kuperstein2015-07-021-58/+64
| | | | | | Patch by: david.l.kreitzer@intel.com llvm-svn: 241270
* Move error checking from once per relocation to once per relocation section.Rafael Espindola2015-07-021-25/+27
| | | | llvm-svn: 241269
* Remove whitespace from start of line, NFC.Yaron Keren2015-07-021-2/+2
| | | | llvm-svn: 241268
* Refactored ARMTargetInfo in order to use the API of ↵Alexandros Lamprineas2015-07-021-117/+72
| | | | | | | | | llvm/lib/Support/TargetParser.cpp for extracting target specific information. Change-Id: Ia0b83ecdb8d9223f9c4ef38dd9206969f78e53f3 llvm-svn: 241267
* Expose getRel and getRela to reduce code duplication.Rafael Espindola2015-07-022-22/+13
| | | | llvm-svn: 241266
* Delete whitespace at start of line.Yaron Keren2015-07-021-1/+1
| | | | llvm-svn: 241265
* clang-format: [JS] Skip comments when applying the regex-literal heuristicDaniel Jasper2015-07-022-5/+11
| | | | llvm-svn: 241264
* When testing for anyOf(), the test should not be for an exact type match for ↵Aaron Ballman2015-07-022-2/+6
| | | | | | all members of the set. Instead, test that all members are convertible to the common type. llvm-svn: 241263
* clang-format: [JS] Fix bug in regex literal parsing.Daniel Jasper2015-07-022-0/+2
| | | | | | The lexer wasn't properly reset leading to unexpected deletions. llvm-svn: 241262
* [sanitizer] add #ifdefs around slow unwinder to fix OS X debug buildKuba Brecka2015-07-021-0/+4
| | | | | | | | | | A recent change in slow unwinder causes the OS X build to fail when using COMPILER_RT_DEBUG=On. Let's fix this by #ifdef'ing it with #if SANITIZER_CAN_SLOW_UNWIND. See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150622/284294.html Reviewed at http://reviews.llvm.org/D10870 llvm-svn: 241261
* test commitAlexandros Lamprineas2015-07-021-0/+2
| | | | | Change-Id: Ibaa2e1115544ddfa491335b81226819fd9cc04b4 llvm-svn: 241260
* clang-format: [JS] Support regex literals at the start of a file.Daniel Jasper2015-07-022-5/+7
| | | | llvm-svn: 241259
* [Modules] Be consistent about finding a module for framework headersBen Langmuir2015-07-0211-41/+88
| | | | | | | | | | | | | | | | We use findModuleForHeader() in several places, but in header search we were not calling it when a framework module didn't show up with the expected name, which would then lead to unexpected non-modular includes. Now we will find the module unconditionally for frameworks. For regular frameworks, we use the spelling of the module name from the module map file, and for inferred ones we use the canonical directory name. In the future we might want to lock down framework modules sufficiently that these name mismatches cannot happen. rdar://problem/20465870 llvm-svn: 241258
* clang-format: [JS] Fix character counting in template strings.Daniel Jasper2015-07-022-12/+13
| | | | | | | Some counts were off, we don't need to take the leading newlines of the first ` into account and some tests were just wrong. llvm-svn: 241257
* Implement an AST matcher for C++ exception catch handlers that can catch any ↵Aaron Ballman2015-07-024-0/+32
| | | | | | exception type (...). llvm-svn: 241256
* Improve error message.Rafael Espindola2015-07-022-2/+3
| | | | | | Thanks to Sean Silva for the suggestion. llvm-svn: 241255
* Reapply r240291: Fix shl folding in DAG combiner.Pawel Bylica2015-07-022-1/+10
| | | | | | | | The code responsible for shl folding in the DAGCombiner was assuming incorrectly that all constants are less than 64 bits. This patch simply changes the way values are compared. It has been reverted previously because of some problems with comparing APInt with raw uint64_t. That has been fixed/changed with r241204. llvm-svn: 241254
* [OPENMP 4.0] Initial support for 'omp cancel' construct.Alexey Bataev2015-07-0225-5/+342
| | | | | | Implemented parsing/sema analysis + (de)serialization. llvm-svn: 241253
* Add new bugreport command to lldbTamas Berghammer2015-07-025-0/+190
| | | | | | | | | | | The new command add functionality to print out domain specific information for reporting a bug. Currently the only supported domain is stack unwinding (with "bugreport unwind") but adding new domains is fairly easy. Differential revision: http://reviews.llvm.org/D10868 llvm-svn: 241252
* [MS ABI] nullptr data member ptrs are mangled differently for classes vs fnsDavid Majnemer2015-07-023-5/+32
| | | | | | | | | | | It turns out that nullptr pointers to data members act differently in function templates vs class templates. Class templates use a variable width representation proportional to the number of fields needed to materialize it. Function templates always use a single '0' template parameter. However, using '0' all the time is problematic if the class uses single or multiple inheritance. In those cases, use -1. llvm-svn: 241251
* [GraphWriter] Don't wait on xdg-open when not on Apple.Charlie Turner2015-07-022-2/+2
| | | | | | | | | | | | | | | | | | | | By default, the GraphWriter code assumes that the generic file open program (`open` on Apple, `xdg-open` on other systems) can wait on the forked proces to complete. When the fork ends, the code would delete the temporary dot files created, and return. On GNU/Linux, the xdg-open program does not have a "wait for your fork to complete before dying" option. So the behaviour was that xdg-open would launch a process, quickly die itself, and then the GraphWriter code would think its OK to quickly delete all the temporary files. Once the temporary files were deleted, the dot viewers would get very upset, and often give you weird errors. This change only waits on the generic open program on Apple platforms. Elsewhere, we don't wait on the process, and hence we don't try and clean up the temporary files. llvm-svn: 241250
* [NFC] Minor editorial fixes to the CodeGen docs.Charlie Turner2015-07-021-2/+2
| | | | llvm-svn: 241249
* Specify --target, hopefully fixing non-x86 bots.Peter Collingbourne2015-07-021-4/+4
| | | | llvm-svn: 241248
* Update isl to isl-0.15-35-ga1e44f0Tobias Grosser2015-07-025-29/+106
| | | | | | This fixes a memory leak with in the sioimath backend. llvm-svn: 241247
* Remove versions from README and add update instructionsTobias Grosser2015-07-021-2/+2
| | | | llvm-svn: 241246
* [clang-tidy] Enhance clang-tidy misc-macro-repeated-side-effects...Daniel Marjamaki2015-07-022-31/+81
| | | | | | | | | | | Enhance clang-tidy misc-macro-repeated-side-effects to handle ? and : better. When ? is used in a macro, there are 2 possible control flow paths through the macro. These paths are tracked separately so problems can be detected properly. http://reviews.llvm.org/D10653 llvm-svn: 241245
* Revert 241171, 241187, 241199 (32-bit SEH).Nico Weber2015-07-029-383/+235
| | | | | | | It still doesn't produce quite the right code, test binaries built with this enabled fail some tests. llvm-svn: 241244
* Parse 'technical term' format specifier.Ted Kremenek2015-07-025-2/+146
| | | | | | | | | | | | | | | | | | | | | | | Objective-C format strings now support modifier flags that can be attached to a '@' conversion. Currently the only one supported, as of iOS 9 and OS X 10.11, is the new "technical term", denoted by the flag "tt", for example: %[tt]@ instead of just: %@ The 'tt' stands for "technical term", which is used by the string-localization facilities on Darwin to add the appropriate spacing or quotation depending the language locale. Implements <rdar://problem/20374720>. llvm-svn: 241243
* Change OptionalFlag::setPosition() to set the flag as well.Ted Kremenek2015-07-021-7/+1
| | | | | | | | | | This change reduces some unnecessary boilerplate since all calls to 'setPosition' are currently paired with setting the flag of OptionalFlag. No functionality change. llvm-svn: 241242
* Support mingw-w64 and mingw.org toolchains at any install location.Yaron Keren2015-07-028-66/+424
| | | | | | | | | | | | | No more hardcoded paths: clang will use -sysroot as gcc root location if provided. Otherwise, it will search for gcc on the path. If not found it will use the driver installed location. http://reviews.llvm.org/D5268 Patch by Ruben Van Boxem, Martell Malone, Yaron Keren. Reviewed by Reid Kleckner. llvm-svn: 241241
* [OPENMP 4.0] Fixed test for 'cancellation point' directive.Alexey Bataev2015-07-021-1/+1
| | | | | | Added explicit target to pch test llvm-svn: 241240
OpenPOWER on IntegriCloud