summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [tsan] Fix scoping of ScopedInteceptor in libdispatch supportKuba Brecka2015-12-183-0/+36
| | | | | | | | Some interceptors in tsan_libdispatch_mac.cc currently wrongly use TSAN_SCOPED_INTERCEPTOR/ScopedInterceptor. Its constructor can start ignoring memory accesses, and the destructor the stops this -- however, e.g. dispatch_sync can call user's code, so the ignoring will extend to user's code as well. This is not expected and we should only limit the scope of ScopedInterceptor to TSan code. This patch introduces annotations that mark the beginning and ending of a callback into user's code. Differential Revision: http://reviews.llvm.org/D15419 llvm-svn: 255995
* GlobalsAA: Take advantage of ArgMemOnly, InaccessibleMemOnly and ↵Vaivaswatha Nagaraj2015-12-183-1/+83
| | | | | | | | | | | | | | | | | | | | | InaccessibleMemOrArgMemOnly attributes Summary: 1. Modify AnalyzeCallGraph() to retain function info for external functions if the function has [InaccessibleMemOr]ArgMemOnly flags. 2. When analyzing the use of a global is function parameter at a call site, mark the callee also as modifying the global appropriately. 3. Add additional test cases. Depends on D15499 Reviewers: hfinkel, jmolloy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15605 llvm-svn: 255994
* Replace SM.getFileEntryForID(Lexer->getFileID()) with Lexer->getFileEntry().Yaron Keren2015-12-182-7/+4
| | | | llvm-svn: 255993
* [OPENMP] Remove explicit call for implicit barrierAlexey Bataev2015-12-1816-88/+1
| | | | | | | #pragma omp parallel needs an implicit barrier that is currently done by an explicit call to __kmpc_barrier. However, the runtime already ensures a barrier in __kmpc_fork_call which currently leads to two barriers per region per thread. Differential Revision: http://reviews.llvm.org/D15561 llvm-svn: 255992
* [mips][microMIPS][DSP] Implement PACKRL.PH, PICK.PH, PICK.QB, SHILO, SHILOV ↵Zlatko Buljan2015-12-1820-67/+218
| | | | | | | | and WRDSP instructions Differential Revision: http://reviews.llvm.org/D14429 llvm-svn: 255991
* [OPENMP] Fix for http://llvm.org/PR25878: Error compiling an OpenMP programAlexey Bataev2015-12-184-6/+124
| | | | | | OpenMP codegen tried to emit the code for its constructs even if it was detected as a dead-code. Added checks to ensure that the code is emitted if the code is not dead. llvm-svn: 255990
* [OPENMP 4.5] Parsing/sema analysis for 'depend(source)' clause in 'ordered' ↵Alexey Bataev2015-12-1813-41/+178
| | | | | | | | directive. OpenMP 4.5 adds 'depend(source)' clause for 'ordered' directive to support cross-iteration dependence. Patch adds parsing and semantic analysis for this construct. llvm-svn: 255986
* Add a test for LLVMGetBitcodeModule.Rafael Espindola2015-12-184-11/+35
| | | | llvm-svn: 255985
* [RS4GC] Use an value handle to help isolate errors quicklyPhilip Reames2015-12-181-2/+2
| | | | | | | | Inspired by the bug reported in 25846. Whatever we end up doing about that one, the value handle change is a generally good one since it will help catch this type of mistake more quickly. Patch by: Manuel Jacob llvm-svn: 255984
* clang-format to reduce diff in another patch.Rafael Espindola2015-12-181-4/+3
| | | | llvm-svn: 255981
* Revert "[Option] Introduce Arg::print(raw_ostream&) and use llvm::dbgs"Vedant Kumar2015-12-182-15/+9
| | | | | | | This reverts commit r255977. This is part of http://reviews.llvm.org/D15634. llvm-svn: 255978
* [Option] Introduce Arg::print(raw_ostream&) and use llvm::dbgsVedant Kumar2015-12-182-9/+15
| | | | llvm-svn: 255977
* Fix formatting for last commit.Jim Ingham2015-12-181-3/+3
| | | | llvm-svn: 255973
* Make the Language print the description of the Exception Breakpoint ↵Jim Ingham2015-12-187-8/+32
| | | | | | | | | | | resolver. Also have the breakpoint description print the precondition description if one exists. No behavior change. <rdar://problem/22885189> llvm-svn: 255972
* Reorganize the C API headers to improve build times.Eric Christopher2015-12-1839-146/+212
| | | | | | | | | Type specific declarations have been moved to Type.h and error handling routines have been moved to ErrorHandling.h. Both are included in Core.h so nothing should change for projects directly including the headers, but transitive dependencies may be affected. llvm-svn: 255965
* Fix type in tuple test. Sorry for the noiseEric Fiselier2015-12-181-2/+2
| | | | llvm-svn: 255944
* ObjC properties: consider ownership of properties from protocols when ↵Douglas Gregor2015-12-182-0/+23
| | | | | | | | | | synthesizing. When determining whether ownership was explicitly written for a property when it is being synthesized, also consider that the original property might have come from a protocol. Fixes rdar://problem/23931441. llvm-svn: 255943
* The lldb side changes to go along with r255711 where a newJason Molenda2015-12-186-0/+144
| | | | | | | | | | | | | | | | | | | | | | "thread-pcs" key is added to the T (questionmark) packet in gdb-remote protocol so that lldb doesn't need to query the pc values of every thread before it resumes a process. The only odd part with this is that I'm sending the pc values in big endian order, so we need to know the endianness of the remote process before we can use them. All other register values in gdb-remote protocol are sent in native-endian format so this requirement doesn't exist. This addition is a performance enhancement -- lldb will fall back to querying the pc of each thread individually if it needs to -- so when we don't have the byte order for the process yet, we don't use these values. Practically speaking, the only way I've been able to elicit this condition is for the first T packet when we attach to a process. <rdar://problem/21963031> llvm-svn: 255942
* [libcxx] LWG2485: get() should be overloaded for const tuple&&. Patch from ↵Eric Fiselier2015-12-1811-14/+420
| | | | | | | K-Ballo. Review: http://reviews.llvm.org/D14839 llvm-svn: 255941
* BranchProbabilityTest.cpp: Suppress warnings. [-Wsign-compare]NAKAMURA Takumi2015-12-181-3/+3
| | | | llvm-svn: 255940
* Remove unused class variables.Eric Christopher2015-12-171-5/+3
| | | | llvm-svn: 255939
* Fix typo in MSC pathXinliang David Li2015-12-171-1/+1
| | | | llvm-svn: 255938
* Add a test for r255875 & r255929, comparisons on DynTypeNode wrapped QualType.Richard Trieu2015-12-171-0/+7
| | | | llvm-svn: 255937
* [X86] Use push-pop for materializing small constants under 'minsize'Hans Wennborg2015-12-178-106/+262
| | | | | | | | | | | | | Use the 3-byte (4 with REX prefix) push-pop sequence for materializing small constants. This is smaller than using a mov (5, 6 or 7 bytes depending on size and REX prefix), but it's likely to be slower, so only used for 'minsize'. This is a follow-up to r255656. Differential Revision: http://reviews.llvm.org/D15549 llvm-svn: 255936
* Revert "Disable test reruns on arm unless explicitly marked with ↵Todd Fiala2015-12-171-7/+2
| | | | | | | | | | | | | --rerun-all-issues" and Revert "prevent rerun logic from kicking in on test runs including aarch64." This reverts commits: r255719 r255747 llvm-svn: 255935
* [BranchProbability] Remove the restriction that known and unknown ↵Cong Hou2015-12-172-11/+57
| | | | | | | | | | | | | | | | | | | probabilities cannot coexist when being normalized. The current BranchProbability::normalizeProbabilities() forbids known and unknown probabilities to coexist in the list. This was once used to help capture probability exceptions but has caused some reported build failures (https://llvm.org/bugs/show_bug.cgi?id=25838). This patch removes this restriction by evenly distributing the complement of the sum of all known probabilities to unknown ones. We could still treat this as an abnormal behavior, but it is better to emit warnings in our future profile validator. Differential revision: http://reviews.llvm.org/D15548 llvm-svn: 255934
* [CUDA] runtime wrapper header tweaksArtem Belevich2015-12-171-3/+24
| | | | | | | | * Pull in host-only implementations of few CUDA-specific math functions. * #nclude <cmath> early to prevent its inclusion from CUDA headers after they've messed with __THROW macro. llvm-svn: 255933
* [InstCombine] Extend peephole DSE to handle unordered atomicsPhilip Reames2015-12-172-6/+124
| | | | | | | | | | | | This extends the same line of reasoning used in EarlyCSE w/http://reviews.llvm.org/D15352 to the DSE implementation in InstCombine. Key points: * We only remove unordered or simple stores. * The loads producing values consumed by dead stores don't influence whether the store is dead. Differential Revision: http://reviews.llvm.org/D15354 llvm-svn: 255932
* Polish atomic pointersJF Bastien2015-12-173-50/+46
| | | | | | | | | | | | | | | | | | | | | | Summary: I didn't realize that we already allowed atomic load/store of pointers, it was added in 2012 by r162146. This patch updates the documentation and tightens the verifier by using DataLayout to make sure that the stored size is byte-sized and power-of-two. DataLayout is also used for integers, and while I'm here I updated the corresponding code for cmpxchg and rmw. See the following discussion for context and upcoming changes to add floating-point and vector atomics: https://groups.google.com/forum/#!topic/llvm-dev/Nh0P_E3CRoo/discussion Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15512 llvm-svn: 255931
* Pass -m elf_x84_64 to gold invocations.Rafael Espindola2015-12-171-2/+2
| | | | | | Fixes pr25868. llvm-svn: 255930
* Fix r255875, use '<' instead of '==' for 'operator<'Richard Trieu2015-12-171-1/+1
| | | | | | | Aaron Ballman pointed out a typo from the copy and paste in r255875. This will preserve the strict weak ordering when comparing DynTypedNode. llvm-svn: 255929
* Revert "[AArch64] Add DAG combine for extract extend pattern"Matthew Simpson2015-12-172-27/+10
| | | | | | | This reverts commit r255895. The patch breaks internal tests. Reverting until a fix is ready. llvm-svn: 255928
* Drop function that are deprecated since 2010.Rafael Espindola2015-12-173-30/+3
| | | | | | These functions were deprecated in r97608. llvm-svn: 255927
* Test commitDave Bartolomeo2015-12-171-1/+1
| | | | llvm-svn: 255926
* [WebAssembly] Switch WebAssemblyMCAsmInfo.h from MCAsmInfo to MCAsmInfoELF.Dan Gohman2015-12-173-2/+24
| | | | llvm-svn: 255925
* [docs] Motivate ninja in GettingStarted.rstVedant Kumar2015-12-171-1/+1
| | | | llvm-svn: 255924
* Fix of a comment.Roman Gareev2015-12-171-1/+1
| | | | llvm-svn: 255923
* Fix delinearization of fortran arraysRoman Gareev2015-12-172-2/+42
| | | | | | | | | | | | | | | The patch fixes Bug 25759 produced by inappropriate handling of unsigned maximum SCEV expressions by SCEVRemoveMax. Without a fix, we get an infinite loop and a segmentation fault, if we try to process, for example, '((-1 + (-1 * %b1)) umax {(-1 + (-1 * %yStart)),+,-1}<%.preheader>)'. It also fixes a potential issue related to signed maximum SCEV expressions. Tested-by: Roman Gareev <gareevroman@gmail.com> Fixed-by: Tobias Grosser <tobias@grosser.es> Differential Revision: http://reviews.llvm.org/D15563 llvm-svn: 255922
* [SCEV] Add and use SCEVConstant::getAPInt; NFCISanjoy Das2015-12-1713-147/+132
| | | | llvm-svn: 255921
* [InstCombine] Adding "\n" to debug output. NFC.Weiming Zhao2015-12-171-2/+2
| | | | | | | | | | | | | | | Summary: [InstCombine] Adding '\n' to debug output. NFC. Patch by Zhaoshi Zheng <zhaoshiz@codeaurora.org> Reviewers: apazos, majnemer, weimingz Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15403 llvm-svn: 255920
* Hardcode the target in this testcase — it depends on the ABI.Adrian Prantl2015-12-171-1/+1
| | | | | | This fixes a failure on Windows buildbots. llvm-svn: 255919
* Attach maximum function count to Module when using PGO mode.Easwaran Raman2015-12-173-2/+55
| | | | | | | | This sets the maximum entry count among all functions in the program to the module using module flags. This allows the optimizer to use this information. Differential Revision: http://reviews.llvm.org/D15163 llvm-svn: 255918
* ResultsFormatter: always lock on handle_event()Todd Fiala2015-12-171-92/+91
| | | | | | | Some of the newer structures were not protected. Now that we have a recursive lock, we just lock the whole handle_event() call. llvm-svn: 255917
* [x86] Filecheck is case sensitive. Capitalize directives.Chad Rosier2015-12-171-4/+4
| | | | llvm-svn: 255916
* [x86] Filecheck is case sensitive. Capitalize directives.Chad Rosier2015-12-171-48/+48
| | | | llvm-svn: 255915
* [EarlyCSE] DSE of atomic unordered storesPhilip Reames2015-12-172-18/+91
| | | | | | | | | | The rules for removing trivially dead stores are a lot less complicated than loads. Since we know the later store post dominates the former and the former dominates the later, unless the former has side effects other than the actual store, we can remove it. One slightly surprising thing is that we can freely remove atomic stores, even if the later one isn't atomic. There's no guarantee the atomic one was every visible. For the moment, we don't handle DSE of ordered atomic stores. We could extend the same chain of reasoning to them, but the catch is we'd then have to model the ordering effect without a store instruction. Since our fences are a stronger than our operation orderings, simple using a fence isn't an obvious win. This arguable calls for a refinement in our fence specification, but that's (much) later work. Differential Revision: http://reviews.llvm.org/D15352 llvm-svn: 255914
* make this test less whitespace-sensitive.Adrian Prantl2015-12-171-1/+1
| | | | llvm-svn: 255913
* Rewrite test to use llvm-dwarfdump instead of checking for asm comments.Adrian Prantl2015-12-171-4/+12
| | | | llvm-svn: 255912
* [CUDA] Make vtable construction aware of host/device side of CUDA compilation.Artem Belevich2015-12-173-0/+94
| | | | | | | | | | | | | | | | | | | C++ emits vtables for classes that have key function present in the current TU. While we compile CUDA the fact that key function was found in this TU does not mean that we are going to generate code for it. E.g. vtable for a class with host-only methods should not (and can not) be generated on device side, because we'll never generate code for them during device-side compilation. This patch adds an extra CUDA-specific check during key method computation and filters out potential key methods that are not suitable for this side of CUDA compilation. When we codegen vtable, entries for unsuitable methods are set to null. Differential Revision: http://reviews.llvm.org/D15309 llvm-svn: 255911
* [STATS] Properly guard the tick_time() function and its usesJonathan Peyton2015-12-173-2/+13
| | | | llvm-svn: 255910
OpenPOWER on IntegriCloud