summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [libFuzzer] add -print_final_stats=1 flagKostya Serebryany2016-02-266-3/+41
| | | | llvm-svn: 262084
* Strip trailing whitespace. NFCI.Simon Pilgrim2016-02-262-10/+10
| | | | llvm-svn: 262083
* Fix Clang-tidy modernize-use-nullptr warnings in remaining files in ↵Eugene Zelenko2016-02-267-477/+447
| | | | | | source/Plugins/ABI; other minor fixes. llvm-svn: 262082
* Register value is not necessarily scalar.Chaoren Lin2016-02-261-261/+262
| | | | | | | | | | Reviewers: aidan.dodds, mamai Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D17658 llvm-svn: 262081
* [ConstantRange] Add umin/smin operatorsPhilip Reames2016-02-263-0/+73
| | | | | | | | This was split off from http://reviews.llvm.org/D17184. Reviewed by: Sanjoy llvm-svn: 262080
* [PPC] Legalize FNEG on PPC when possibleKit Barton2016-02-262-2/+34
| | | | | | | | Currently we always expand ISD::FNEG. For v4f32 and v2f64 vector types VSX has native support for this opcode Phabricator: http://reviews.llvm.org/D17647 llvm-svn: 262079
* Fix spelling. NFCI.Simon Pilgrim2016-02-261-1/+1
| | | | llvm-svn: 262078
* [x86, InstCombine] transform x86 AVX2 masked stores to LLVM intrinsicsSanjay Patel2016-02-262-1/+54
| | | | | | | | | Replicate everything for integers...because x86. Continuation of: http://reviews.llvm.org/rL262064 llvm-svn: 262077
* Report duplicated symbols in bitcode.Rafael Espindola2016-02-264-7/+21
| | | | llvm-svn: 262076
* [libFuzzer] initial implementation of path coverage based on ↵Kostya Serebryany2016-02-267-0/+103
| | | | | | -fsanitize-coverage=trace-pc. This does not scale well yet, but already cracks FullCoverageSetTest in seconds llvm-svn: 262073
* Make SymbolBodies private.Rafael Espindola2016-02-262-3/+3
| | | | | | | | | This makes BitcodeFile a bit closer to ObjectFile. If anyone prefers I can go the other way and delete getSymbols from ObjectFile. llvm-svn: 262072
* [CMake] Only configure Native target in stage 1, configure all in other stagesChris Bieneman2016-02-262-1/+2
| | | | | | This patch causes the 3-stage build pipeline to only build a host compiler in the first stage, and to build all targets for subsequent stages. The host target is determined via the Native target specifier added in r262070. llvm-svn: 262071
* [CMake] Allow LLVM_TARGETS_TO_BUILD to accept "Native"Chris Bieneman2016-02-261-0/+4
| | | | | | This allows a user to specify "Native" as a target when configuring LLVM. Native will resolve to the LLVM_NATIVE_ARCH, which is the target that supports code generation for the host. llvm-svn: 262070
* Reapply r262054 with triple fix.Paul Robinson2016-02-261-15/+15
| | | | llvm-svn: 262069
* Power9] Implement new vsx instructions: compare and conversionKit Barton2016-02-268-0/+453
| | | | | | | | | | | | | | | | | | | This change implements the following vsx instructions: Quad/Double-Precision Compare: xscmpoqp xscmpuqp xscmpexpdp xscmpexpqp xscmpeqdp xscmpgedp xscmpgtdp xscmpnedp xvcmpnedp(.) xvcmpnesp(.) Quad-Precision Floating-Point Conversion xscvqpdp(o) xscvdpqp xscvqpsdz xscvqpswz xscvqpudz xscvqpuwz xscvsdqp xscvudqp xscvdphp xscvhpdp xvcvhpsp xvcvsphp xsrqpi xsrqpix xsrqpxp 28 instructions Phabricator: http://reviews.llvm.org/D16709 llvm-svn: 262068
* [CMake] Add the gold plugin before clangChris Bieneman2016-02-261-0/+1
| | | | | | | | | | This is needed to connect dependencies between the LLVMgold plugin and the clang stage-2 builds due to limitations in ExternalProject_Add. Patch by Mike Edwards Differential Revision: http://reviews.llvm.org/D17655 llvm-svn: 262067
* [CMake] Assigning the LTO component to lto.hChris Bieneman2016-02-261-1/+2
| | | | | | This makes it so lto.h is installed when you run the install-LTO target. llvm-svn: 262066
* [CMake] Add BINUTILS_INCDIR to the default passthrough list for multi-stage ↵Chris Bieneman2016-02-261-0/+1
| | | | | | | | | | | | builds This is needed to build the gold plugin in multi-stage builds. Patch by Mike Edwards Differential Revision: http://reviews.llvm.org/D17655 llvm-svn: 262065
* [x86, InstCombine] transform x86 AVX masked stores to LLVM intrinsicsSanjay Patel2016-02-262-0/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intended effect of this patch in conjunction with: http://reviews.llvm.org/rL259392 http://reviews.llvm.org/rL260145 is that customers using the AVX intrinsics in C will benefit from combines when the store mask is constant: void mstore_zero_mask(float *f, __m128 v) { _mm_maskstore_ps(f, _mm_set1_epi32(0), v); } void mstore_fake_ones_mask(float *f, __m128 v) { _mm_maskstore_ps(f, _mm_set1_epi32(1), v); } void mstore_ones_mask(float *f, __m128 v) { _mm_maskstore_ps(f, _mm_set1_epi32(0x80000000), v); } void mstore_one_set_elt_mask(float *f, __m128 v) { _mm_maskstore_ps(f, _mm_set_epi32(0x80000000, 0, 0, 0), v); } ...so none of the above will actually generate a masked store for optimized code. Differential Revision: http://reviews.llvm.org/D17485 llvm-svn: 262064
* [CMake] Fix a typo in add_compiler_rt_library.Alexey Samsonov2016-02-261-1/+1
| | | | llvm-svn: 262063
* [x86] refactor to eliminate duplicated code; NFCISanjay Patel2016-02-261-23/+12
| | | | llvm-svn: 262062
* Fix warning in DwarfCFIException. NFCAmaury Sechet2016-02-261-1/+1
| | | | llvm-svn: 262061
* Revert r262054 on one file that fails sometimes.Paul Robinson2016-02-261-14/+14
| | | | llvm-svn: 262060
* Extract the method to begin and end a fragment in AsmPrinterHandler in their ↵Amaury Sechet2016-02-264-12/+43
| | | | | | | | | | | | | | own method. NFC Summary: This is extracted from D17555 Reviewers: davidxl, reames, sanjoy, MatzeB, pete Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17580 llvm-svn: 262058
* [GlobalISel] Fix a ranlib warning about empty TOC.Quentin Colombet2016-02-261-3/+6
| | | | | | Fixes PR26733 llvm-svn: 262057
* [dllexport] Sort out emission order of delayed exported classesReid Kleckner2016-02-266-0/+47
| | | | | | | | | | | | | | | | Relands r260194 with a fix. If we have a template that transitions from an extern template to an explicitly instantiated dllexport template, we would add that class to the delayed exported class list without flushing it. For explicit instantiations, we can just flush the list of delayed classes immediately. We don't have to worry about the bug fixed in r260194 in this case because explicit instantiations can only occur at file and namespace scope. Fixes PR26490. llvm-svn: 262056
* Make sure to #include <atomic> for the std::atomic<bool> that was recently ↵Greg Clayton2016-02-261-0/+1
| | | | | | added. llvm-svn: 262055
* Fix tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT.Paul Robinson2016-02-2612-31/+37
| | | | | | | | FileCheck actually doesn't support combo suffixes. Differential Revision: http://reviews.llvm.org/D17588 llvm-svn: 262054
* Make sure the Target, Process and Thread GetGlobalProperties() static ↵Greg Clayton2016-02-263-8/+18
| | | | | | | | methods are thread safe. <rdar://problem/22595283> llvm-svn: 262053
* Fix Clang tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT.Paul Robinson2016-02-265-20/+20
| | | | | | | | FileCheck actually doesn't support combo suffixes. Differential Revision: http://reviews.llvm.org/D17589 llvm-svn: 262052
* SymbolFileDWARFDebugMap::FindTypes didn't obey the max_matches flag, Jim Ingham2016-02-261-1/+4
| | | | | | | but kept looking through .o files even after it had found as many matches as were requested. llvm-svn: 262051
* SemaCXX: Support templates in availability attributesDuncan P. N. Exon Smith2016-02-263-1/+65
| | | | | | | | | | | | | | | | | | | If the availability context is `FunctionTemplateDecl`, we should look through it to the `FunctionDecl`. This prevents a diagnostic in the following case: class C __attribute__((unavailable)); template <class T> void foo(C&) __attribute__((unavailable)); This adds tests for availability in templates in many other cases, but that was the only case that failed before this patch. I added a feature `__has_feature(attribute_availability_in_templates)` so users can test for this. rdar://problem/24561029 llvm-svn: 262050
* Fix Sparc 32bit Lowering to rebundle up v2i32 values.Nirav Dave2016-02-262-4/+56
| | | | | | | | | | | | Summary: Fix LowerCall to rebundle v2i32 values after lowering and add testcase Reviewers: jyknight Subscribers: llvm-commits, jyknight Differential Revision: http://reviews.llvm.org/D17615 llvm-svn: 262048
* [x86, AVX] fold 'isPositive' 256-bit vector integer operations (PR26701)Sanjay Patel2016-02-262-14/+17
| | | | | | | This extends the fold introduced with: http://reviews.llvm.org/rL262036 llvm-svn: 262047
* tsan: revert r262037Dmitry Vyukov2016-02-2618-226/+99
| | | | | | Broke aarch64 and darwin bots. llvm-svn: 262046
* [IR] Optimize bitfield layout of Value for MSVCReid Kleckner2016-02-264-31/+30
| | | | | | | | | | | | | | | This should save a pointer of padding from all MSVC Value subclasses. Recall that MSVC will not pack the following bitfields together: unsigned Bits : 29; unsigned Flag1 : 1; unsigned Flag2 : 1; unsigned Flag3 : 1; Add a static_assert because LLVM developers always trip over this behavior. This regressed in June. llvm-svn: 262045
* [x86, AVX] add 256-bit testsSanjay Patel2016-02-261-0/+136
| | | | llvm-svn: 262044
* remove unused local string in IRForTarget.cppAidan Dodds2016-02-261-2/+0
| | | | | | | | Committed on behalf of: ldrumm <luke.drummond@codeplay.com> Differential revision: http://reviews.llvm.org/D16412 llvm-svn: 262043
* Minor tweak to match the overall style.Sunil Srivastava2016-02-261-2/+2
| | | | llvm-svn: 262042
* Fix bug with register values byte order in expression evaluation.Aidan Dodds2016-02-261-3/+9
| | | | | | | | | | The evaluation of expressions containing register values was broken for targets for which endianness differs from host. Committed on behalf of: mamai <marianne.mailhot.sarrasin@gmail.com> Differential revision: http://reviews.llvm.org/D17167 llvm-svn: 262041
* The IOHandlerProcessSTDIO is the _only_ IOHandler that gets pushed and ↵Greg Clayton2016-02-261-3/+22
| | | | | | | | | | | | | | popped from functions that are run due to something that is NOT input from the user. All other IOHandler objects result from input from the user. An issue rose up where if a command caused the process to resume and stop and process state changed, where state changed Event objects were broadcast, it would cause the IOHandlerProcessSTDIO to have its IOHandlerProcessSTDIO::Cancel() function called. This used to always write a byte to the control pipe (IOHandlerProcessSTDIO::m_pipe) even if the IOHandlerProcessSTDIO::Run() was never called. What would happen is: (lldb) command_that_steps_process_thousands_of_times As the "command_that_steps_process_thousands_of_times" could be a python command that resumed the process thousands of times and in doing so the IOHandlerProcessSTDIO would get pushed when the process resumed, and popped when it stoppped, causing the call to IOHandlerProcessSTDIO::Cancel(). Since the IOHandler thread is currently in IOHandlerEditline::Run() for the command interpreter handling the "command_that_steps_process_thousands_of_times" command, IOHandlerProcessSTDIO::Run() would never get called, even though the IOHandlerProcessSTDIO is on the top of the stack. This caused the command pipe to keep getting 1 bytes written each time the IOHandlerProcessSTDIO::Cancel() was called and eventually we will deadlock since the write buffer is full. The fix here is to make sure we are in IOHandlerProcessSTDIO::Run() before we write anything to the command pipe, and just call SetIsDone(true) if we are not. <rdar://problem/22361364> llvm-svn: 262040
* Introduce fine-grain dependence analysis by tagging access functions and ↵Hongbin Zheng2016-02-265-3/+175
| | | | | | | | schedules tree with either the id of memory access or memory references. Differential Revision: http://reviews.llvm.org/D17381 llvm-svn: 262039
* [CMAKE] Update build on recent HaikuRenato Golin2016-02-264-3/+8
| | | | | | | | | This patch updates cmake build scripts to build on Haiku. It adds Haiku x86_64 to config.guess. Please consider reviewing. Pathc by Jérôme Duval. llvm-svn: 262038
* tsan: split thread into logical and physical stateDmitry Vyukov2016-02-2618-99/+226
| | | | | | | | | | | | | | | | | | | | Currently ThreadState holds both logical state (required for race-detection algorithm, user-visible) and physical state (various caches, most notably malloc cache). Move physical state in a new Process entity. Besides just being the right thing from abstraction point of view, this solves several problems: 1. Cache everything on P level in Go. Currently we cache on a mix of goroutine and OS thread levels. This unnecessary increases memory consumption. 2. Properly handle free operations in Go. Frees are issue by GC which don't have goroutine context. As the result we could not do anything more than just clearing shadow. For example, we leaked sync objects and heap block descriptors. 3. This will allow to get rid of libc malloc in Go (now we have Processor context for internal allocator cache). This in turn will allow to get rid of dependency on libc entirely. 4. Potentially we can make Processor per-CPU in C++ mode instead of per-thread, which will reduce resource consumption. The distinction between Thread and Processor is currently used only by Go, C++ creates Processor per OS thread, which is equivalent to the current scheme. llvm-svn: 262037
* [x86, SSE] fold 'isPositive' vector integer operations (PR26701)Sanjay Patel2016-02-262-37/+121
| | | | | | | | | | | | | This is one of the cases shown in: https://llvm.org/bugs/show_bug.cgi?id=26701 Shift and negate is what InstCombine appears to prefer, so I've started with that pattern. Note that the 'pcmpeq' instructions are always generating the negative one for the actual 'pcmpgt' comparison in each case (side note: why isn't there an alias mnemonic for that?). Differential Revision: http://reviews.llvm.org/D17630 llvm-svn: 262036
* [WinEH] Fix funclet return block clobber mask placementReid Kleckner2016-02-262-2/+79
| | | | | | | | | | | | | | | | | | MBB slot index intervals are half open, not closed. getMBBEndIndex() returns the slot index of the start of the next block in layout order. Placing a register mask there is incorrect if the successor of the funclet return is not laid out after the return. Clang generates IR for catch bodies before generating the following normal code, so we never noticed this issue until the D frontend authors filed a bug about it. Instead, we can put the clobber mask on the last instruction of the funclet return block. We still aren't using a register mask operand on the CATCHRET instruction because it would cause PEI to spill all CSRs, including XMM regs, in the prologue. Fixes PR26679. llvm-svn: 262035
* Fix broken buildbots.Rui Ueyama2016-02-261-1/+1
| | | | llvm-svn: 262034
* ScopDetect/Info: Add option to disable invariant load hoistingTobias Grosser2016-02-263-20/+31
| | | | | | This is helpful for test case reduction and other experiments. llvm-svn: 262033
* ScopDetection: Fix mix-up of isLoad and isStore.Michael Kruse2016-02-261-2/+2
| | | | | | | | | This was accidentally introduced in r258947. Thanks to Hongbin Zheng for finding this. Found-by: etherzhhb llvm-svn: 262032
* Simplify. NFC.Rui Ueyama2016-02-261-21/+13
| | | | | | | | | Regarding the comment, it is out of context because it describes what it does not do there. It got too long because it was originally two different comments that were simply merged together. The semantics is described in fixAbsoluteSymbols, so we don't need it. llvm-svn: 262031
OpenPOWER on IntegriCloud