summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][SSE] Vectorized i64 uniform constant SRA shiftsSimon Pilgrim2015-07-067-81/+106
| | | | | | | | This patch adds vectorization support for uniform constant i64 arithmetic shift right operators. Differential Revision: http://reviews.llvm.org/D9645 llvm-svn: 241514
* WebAssembly: add some TODOJF Bastien2015-07-061-0/+11
| | | | | | | | | | Reviewers: sunfish Subscribers: llvm-commits, jfb Differential Revision: http://reviews.llvm.org/D10971 llvm-svn: 241513
* llvm-nm: treat weak undefined as undefined.Rafael Espindola2015-07-063-14/+29
| | | | | | This matches the behavior of gnu ld. llvm-svn: 241512
* Debug info: Don't emit a bogus location for the global block pointer typeAdrian Prantl2015-07-062-5/+7
| | | | | | | | | | | (__block_literal_generic). The arbitrary nature of the location confuses lldb and prevents type uniquing. rdar://problem/21602473 llvm-svn: 241511
* [WinEH] Add some test cases I forgot to add to previous commitsReid Kleckner2015-07-062-0/+258
| | | | llvm-svn: 241510
* [WinEH] Insert the EH code load before the block terminatorReid Kleckner2015-07-062-1/+67
| | | | | | | The previous code put the load after the terminator, leading to invalid IR and downstream crashes. This caused http://crbug.com/506446. llvm-svn: 241509
* [X86][SSE4A] Shuffle lowering using SSE4A EXTRQ/INSERTQ instructionsSimon Pilgrim2015-07-069-6/+521
| | | | | | | | | | | | This patch adds support for v8i16 and v16i8 shuffle lowering using the immediate versions of the SSE4A EXTRQ and INSERTQ instructions. Although rather limited (they can only act on the lower 64-bits of the source vectors, leave the upper 64-bits of the result vector undefined and don't have VEX encoded variants), the instructions are still useful for the zero extension of any lane (EXTRQ) or inserting a lane into another vector (INSERTQ). Testing demonstrated that it wasn't typically worth it to use these instructions for v2i64 or v4i32 vector shuffles although they are capable of it. As well as adding specific pattern matching for the shuffles, the patch uses EXTRQ for zero extension cases where SSE41 isn't available and its more efficient than the SSE2 'unpack' default approach. It also adds shuffle decode support for the EXTRQ / INSERTQ cases when the instructions are handling full byte-sized extractions / insertions. From this foundation, future patches will be able to make use of the instructions for situations that use their ability to extract/insert at the bit level. Differential Revision: http://reviews.llvm.org/D10146 llvm-svn: 241508
* Normalize line endings.Adrian McCarthy2015-07-061-78/+78
| | | | llvm-svn: 241507
* [X86][SSE] Use the general SMAX/SMIN/UMAX/UMIN opcodes and remove the X86 ↵Simon Pilgrim2015-07-066-138/+177
| | | | | | | | | | | | implementation With the completion of D9746 there is now a common implementation of integer signed/unsigned min/max nodes, removing the need for the equivalent X86 specific implementations. This patch removes the old X86ISD nodes, legalizes the relevant SSE2/SSE41/AVX2/AVX512 instructions for the ISD versions and converts the small amount of existing X86 code. Differential Revision: http://reviews.llvm.org/D10947 llvm-svn: 241506
* [TwoAddressInstructionPass] Rename a variable to match the coding style.Quentin Colombet2015-07-061-4/+4
| | | | | | Spot by Bruno. llvm-svn: 241505
* Automatically detect and use clang verify in failure tests.Eric Fiselier2015-07-064-11/+19
| | | | | | | | | Automatically enable clang verify whenever the '-verify-ignore-unexpected' flag is supported. Failure tests are run using verify if they contain one or more "expected-*" diagnostics tags. Otherwise they are run normally. llvm-svn: 241492
* Mark LWG#2420 as complete. Eric did this in r228705.Marshall Clow2015-07-061-1/+1
| | | | llvm-svn: 241491
* Swap operands instead of using !.Rafael Espindola2015-07-061-1/+1
| | | | | | | | This avoids returning true for A == B. Thanks to Benjamin Kramer for noticing it. llvm-svn: 241490
* Update for llvm change.Rafael Espindola2015-07-064-4/+4
| | | | llvm-svn: 241489
* When sorting by address, undefined symbols go first.Rafael Espindola2015-07-062-16/+21
| | | | | | This matches gnu nm. llvm-svn: 241488
* [asan] Add OS X 10.11's new dyld interposition supportKuba Brecka2015-07-062-4/+40
| | | | | | | | On OS X 10.11 (which is currently a public beta), the dynamic linker has been improved so that it doesn't require the use of DYLD_INSERT_LIBRARIES in order for interposition/wrappers to work. This patch adds support of this behavior into ASan – we no longer need to re-exec in case the env. variable is not set. Reviewed at http://reviews.llvm.org/D10924 llvm-svn: 241487
* Use /proc/$$/stat instead of $PPID.Chaoren Lin2015-07-061-1/+4
| | | | | | | | | | | | Summary: $PPID is not available on old shells. Reviewers: tberghammer, ovyalov Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10968 llvm-svn: 241486
* Support -pthread in mingw toolchain.Yaron Keren2015-07-061-4/+2
| | | | | | "-pthread" appends -lpthread after the object files list passed to the linker. llvm-svn: 241485
* Reduce code duplication. NFC.Rafael Espindola2015-07-061-41/+17
| | | | llvm-svn: 241484
* [llvm-extract] Drop comdats from declarationsReid Kleckner2015-07-062-4/+13
| | | | | | The verifier rejects comdats on declarations. llvm-svn: 241483
* Add a GetDisplayName() API to SBFrame, SBFunction and SBSymbolEnrico Granata2015-07-0615-0/+156
| | | | | | | | | | This API is currently a no-op (in the sense that it has the same behavior as the already existing GetName()), but is meant long-term to provide a best-for-visualization version of the name of a function It is still not hooked up to the command line 'bt' command, nor to the 'gui' mode, but I do have ideas on how to make that work going forward rdar://21203242 llvm-svn: 241482
* COFF: Make ArchiveFile::getMember lock-free.Rui Ueyama2015-07-062-6/+8
| | | | | | | | The previous code was not even safe with MSVC 2013 because the compiler doesn't guarantee that static variables (in this case, a mutex) are initialized in a thread-safe manner. llvm-svn: 241481
* Fix printing of common symbols.Rafael Espindola2015-07-062-4/+12
| | | | | | Printing the symbol size matches the behavior or both gnu nm and freebsd nm. llvm-svn: 241480
* Add --port-file flag to lldb-platform to store port number which platform is ↵Oleksiy Vyalov2015-07-061-3/+57
| | | | | | | | listening. http://reviews.llvm.org/D10886 llvm-svn: 241479
* [Sema] Warn when shifting a negative value.Davide Italiano2015-07-064-5/+18
| | | | | | | | | | | | | | | Example: % ./clang -Wshift-negative-value emit.c emit.c:3:14: warning: shifting a negative signed value is undefined [-Wshift-negative-value] int a = -1 << 3; ~~ ^ 1 warning generated. PR: 24026 Differential Revision: http://reviews.llvm.org/D10938 Reviewed by: rsmith llvm-svn: 241478
* COFF: Support isa<> for Symbol::Body, whose type is std::atomic<SymbolBody *>.Rui Ueyama2015-07-064-11/+20
| | | | llvm-svn: 241477
* llc: Add a 'run-pass' option.Alex Lorenz2015-07-069-42/+81
| | | | | | | | | | | | | | | This commit adds a 'run-pass' option to llc, which instructs the compiler to run one specific code generation pass only. Llc already has the 'start-after' and the 'stop-after' options, and this new option complements the other two by making it easier to write tests that want to invoke a single pass only. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10776 llvm-svn: 241476
* Fix step over breakpoint on Windows (which was detected by ↵Adrian McCarthy2015-07-064-105/+101
| | | | | | TestCreateAfterAttach.py). llvm-svn: 241475
* [asan] Fix an OS X startup crash when an empty section is presentKuba Brecka2015-07-062-0/+13
| | | | | | | | On OS X, when the main instrumented binary contains a custom section with zero length, ASan will crash (assert failure) early in the initialization. Reviewed at http://reviews.llvm.org/D10944 llvm-svn: 241474
* AMDGPU: Run SIInsertWaits as pre-emit passMatt Arsenault2015-07-061-1/+1
| | | | | | | | | | | Running this after the scheduler enables scheduling waits later so other ALU instructions can run while this would be waiting. When combined with enabling the post-RA scheduler, this gives about a ~20% improvement on sgemm. llvm-svn: 241473
* Change the last few internal StringRef triples into Triple objects.Daniel Sanders2015-07-0616-79/+86
| | | | | | | | | | | | | | | | | | | | Summary: This concludes the patch series to eliminate StringRef forms of GNU triples from the internals of LLVM that began in r239036. At this point, the StringRef-form of GNU Triples should only be used in the public API (including IR serialization) and a couple objects that directly interact with the API (most notably the Module class). The next step is to replace these Triple objects with the TargetTuple object that will represent our authoratative/unambiguous internal equivalent to GNU Triples. Reviewers: rengolin Subscribers: llvm-commits, jholewinski, ted, rengolin Differential Revision: http://reviews.llvm.org/D10962 llvm-svn: 241472
* Update testcase to reflect new behavior in DIBuilder.Adrian Prantl2015-07-061-2/+1
| | | | llvm-svn: 241471
* DIBuilder: Don't rauw null pointers with empty arrays in finalize().Adrian Prantl2015-07-061-6/+12
| | | | | | This makes the IR a little easier to read. llvm-svn: 241470
* Where Triple has a suitable predicate, use it rather than the enum values. NFC.Daniel Sanders2015-07-065-9/+7
| | | | | | | | | | Reviewers: mcrosier Subscribers: llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D10960 llvm-svn: 241469
* use range-based for loops; NFCISanjay Patel2015-07-061-10/+8
| | | | llvm-svn: 241468
* Resubmit "Pass down the -flto option to the -cc1 job" (r239481)Teresa Johnson2015-07-067-1/+52
| | | | | | | | | | | | | | | | | | The patch is the same except for the addition of a new test for the issue that required reverting the dependent llvm commit. --Original Commit Message-- Pass down the -flto option to the -cc1 job, and from there into the CodeGenOptions and onto the PassManagerBuilder. This enables gating the new EliminateAvailableExternally module pass on whether we are preparing for LTO. If we are preparing for LTO (e.g. a -flto -c compile), the new pass is not included as we want to preserve available externally functions for possible link time inlining. llvm-svn: 241467
* Resubmit "Add new EliminateAvailableExternally module pass" (r239480)Teresa Johnson2015-07-066-0/+120
| | | | | | | | | | | | | | | | | | | | | | This change includes a fix for https://code.google.com/p/chromium/issues/detail?id=499508#c3, which required updating the visibility for symbols with eliminated definitions. --Original Commit Message-- Add new EliminateAvailableExternally module pass, which is performed in O2 compiles just before GlobalDCE, unless we are preparing for LTO. This pass eliminates available externally globals (turning them into declarations), regardless of whether they are dead/unreferenced, since we are guaranteed to have a copy available elsewhere at link time. This enables additional opportunities for GlobalDCE. If we are preparing for LTO (e.g. a -flto -c compile), the pass is not included as we want to preserve available externally functions for possible link time inlining. The FE indicates whether we are doing an -flto compile via the new PrepareForLTO flag on the PassManagerBuilder. llvm-svn: 241466
* Use an early exit in DIBuilder::finalize() to improve readability.Adrian Prantl2015-07-061-28/+32
| | | | llvm-svn: 241465
* Use the correct DIArray types in DICompileUnit::replace*().Adrian Prantl2015-07-061-3/+3
| | | | | | Thanks to Yaron Keren for noticing! llvm-svn: 241464
* use range-based for loops; NFCISanjay Patel2015-07-061-8/+6
| | | | llvm-svn: 241463
* AMDGPU/SI: Add debugging subtarget feature for DS offsetsMatt Arsenault2015-07-065-3/+21
| | | | | | | | We don't have a good way to detect most situations where DS offsets are usable on SI, so add an option to force using them even if unsafe for debugging performance problems. llvm-svn: 241462
* [Sparc] Add more instruction aliases.James Y Knight2015-07-064-15/+256
| | | | | | | | | These are mostly from the chart in the SparcV8 spec, section "A.3 Synthetic Instructions". Differential Revision: http://reviews.llvm.org/D9834 llvm-svn: 241461
* [Sparc] Add support for flush instruction.James Y Knight2015-07-063-0/+27
| | | | | | Differential Revision: http://reviews.llvm.org/D9833 llvm-svn: 241460
* Fix dosep.py on windows after r240946Pavel Labath2015-07-061-8/+8
| | | | | | | | | | | | | | | | Summary: On windows, global python variables are not automatically passed to child processes. This commit makes sure the default timeout value is available to child processes by passing it directly. I pass the whole dotest_opts value to the children, so we can use the other members as well if we need to do it in the future. Reviewers: amccarth Subscribers: lldb-commits-list Differential Revision: http://reviews.llvm.org/D10895 llvm-svn: 241459
* Simplify. NFC.Rafael Espindola2015-07-061-3/+1
| | | | llvm-svn: 241458
* [lldb-mi] Use 'override' on overridden virtual methods.Bruce Mitchener2015-07-0659-357/+357
| | | | | | | | | | | | Summary: [lldb-mi] Use 'override' on overridden virtual methods. Reviewers: abidh, ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10959 llvm-svn: 241457
* Simplify. NFC.Rafael Espindola2015-07-061-3/+1
| | | | llvm-svn: 241456
* Make locale code compile on CloudABI.Ed Schouten2015-07-061-10/+13
| | | | | | | | | | | | | | | | | | | After r241454 landed, libc++'s locale code compiles on CloudABI, with the exception of the following two bits: - CloudABI doesn't have setlocale(), as the C library does not keep track of any global state. The global locale is always set to "C". Disable the call to setlocale() on this system. - Similarly, mbtowc_l() is also not present, as it is also not thread-safe. As CloudABI does not support state-dependent encodings, simply disable that part of the logic. The locale code now compiles out of the box on CloudABI. Differential Revision: http://reviews.llvm.org/D10729 Reviewed by: jroelofs llvm-svn: 241455
* Cleanup: prefer _LIBCPP_GET_C_LOCALE over __cloc().Ed Schouten2015-07-062-30/+28
| | | | | | | | | | | | | The __cloc() function is only present in case the environment does not provide a way to refer to the C locale using a compile-time constant expression. _LIBCPP_GET_C_LOCALE seems to be defined unconditionally. This improves compilation of the locale code on CloudABI. Differential Revision: http://reviews.llvm.org/D10690 Reviewed by: jroelofs llvm-svn: 241454
* Inline function into single use. NFC.Rafael Espindola2015-07-061-6/+0
| | | | llvm-svn: 241453
OpenPOWER on IntegriCloud