summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ThinLTO] Refactor function body scan during importing into helper (NFC)Teresa Johnson2015-11-241-36/+27
| | | | llvm-svn: 254020
* [OpenMP] Parsing and sema support for num_teams clauseKelvin Li2015-11-2416-9/+274
| | | | | | http://reviews.llvm.org/D14802 llvm-svn: 254019
* Fix sphinx-build error when building documentation.Xinliang David Li2015-11-241-16/+10
| | | | | | | Consolidate the description of -binary/-text option description to avoid duplicate ID error by sphinux-build. llvm-svn: 254018
* [RuntimeDyld] Fix a class of arithmetic errors introduced in r253918Sanjoy Das2015-11-241-4/+4
| | | | | | | | | | | r253918 had refactored expressions like "A - B.Address + C" to "A - B.getAddressWithOffset(C)". This is incorrect, since the latter really computes "A - B.Address - C". None of the tests I can run locally on x86 broke due to this bug, but it is the current suspect for breakage on the AArch64 buildbots. llvm-svn: 254017
* [X86][FMA] Optimize FNEG(FMA) PatternsSimon Pilgrim2015-11-242-0/+97
| | | | | | | | | | X86 needs to use its own FMA opcodes, preventing the standard FNEG(FMA) pattern table recognition method used by other platforms. This patch adds support for lowering FNEG(FMA(X,Y,Z)) into a single suitably negated FMA instruction. Fix for PR24364 Differential Revision: http://reviews.llvm.org/D14906 llvm-svn: 254016
* [compiler-rt] [msan] Couple of fixes for msan with libc++Adhemerval Zanella2015-11-241-3/+13
| | | | | | | | | | | | This patch adds some fixes for MSAN with libc++ for aarch64: 1. Adds the libmsan_loadable name for aarch64. 2. Fixes some pthread_attr_setstacksize for aarch64, since glibc sets the mininum stack size to be higher than the x86_64 default (16KB vs 128KB). 3. Fixes a swprintf null char constant definition. llvm-svn: 254015
* Replace [=] lambda capture with [&] per David Blaikieþ suggestion.Yaron Keren2015-11-241-1/+1
| | | | llvm-svn: 254013
* LiveVariables should not clobber MachineOperand::IsDead, ::IsKill on ↵Matthias Braun2015-11-241-2/+6
| | | | | | | | | | reserved physical registers Patch by Nick Johnson <Nicholas.Paul.Johnson@deshawresearch.com> Differential Revision: http://reviews.llvm.org/D14875 llvm-svn: 254012
* [ThinLTO] Enable iterative importing in FunctionImport passTeresa Johnson2015-11-242-2/+46
| | | | | | | | | | | Analyze imported function bodies and add any new external calls to the worklist for importing. Currently no controls on the importing so this will end up importing everything possible in the call tree below the importing module. Basic profitability checks coming next. Update test to check for iteratively inlined functions. llvm-svn: 254011
* [X86] Fix several issues related to X86's psadbw instruction.Cong Hou2015-11-2411-78/+80
| | | | | | | | | | | | | | | | This patch fixes the following issues: 1. Fix the return type of X86psadbw: it should not be the same type of inputs. For vNi8 inputs the output should be vMi64, where M = N/8. 2. Fix the return type of int_x86_avx512_psad_bw_512 accordingly. 3. Fix the definiton of PSADBW, VPSADBW, and VPSADBWY accordingly. 4. Adjust the return type when building a DAG node of X86ISD::PSADBW type. 5. Update related tests. Differential revision: http://reviews.llvm.org/D14897 llvm-svn: 254010
* [ThinLTO] Handle previously imported and promoted locals in module linkerTeresa Johnson2015-11-242-2/+8
| | | | | | | | | | | The new function import pass exposed an issue when we import references to local values on multiple importing passes. They are renamed on each import pass, and we need to ensure that the already promoted and renamed references existing in the dest module are correctly identified and updated so that they aren't spuriously renamed again (due to a perceived conflict with the newly linked reference). llvm-svn: 254009
* [PGO] Introduce value profile data closure type.Xinliang David Li2015-11-241-0/+12
| | | | | | | | | | | | | | | | The closure is designed to abstact away two types of value profile data: - InstrProfRecord which is the primary data structure used to represent profile data in host tools (reader, writer, and profile-use) - value profile runtime data structure suitable to be used by C runtime library. Both sources of data need to serialize to disk/memory-buffer in common format: ValueProfData. The abstraction allows compiler-rt's raw profiler writer to share the same code with indexed profile writer. llvm-svn: 254008
* [analyzer] Pass value expression for inlined defensive checks when binding ↵Devin Coughlin2015-11-242-2/+44
| | | | | | | | | | | | | | | | null to nonnull. The nullability checker was not suppressing false positives resulting from inlined defensive checks when null was bound to a nonnull variable because it was passing the entire bind statement rather than the value expression to trackNullOrUndefValue(). This commit changes that checker to synactically match on the bind statement to extract the value expression so it can be passed to trackNullOrUndefValue(). rdar://problem/23575439 llvm-svn: 254007
* Temporarily add expectedFailureFreeBSD to tests that fail to detect Clang on ↵Ed Maste2015-11-242-0/+2
| | | | | | | | | | FreeBSD On FreeBSD we may get Clang via CC=cc or CC=/usr/bin/cc. llvm.org/pr25626 llvm-svn: 254006
* [Utils] Put includes in correct order. NFC.Weiming Zhao2015-11-248-10/+8
| | | | | | | | | | | | | | | | | | | Summary: Followed the guidelines in: http://llvm.org/docs/CodingStandards.html#include-style However, I noticed that uppercase named headers come before lowercase ones throughout the codebase. So kept them as is. Patch by Mandeep Singh Grang <mgrang@codeaurora.org> Reviewers: majnemer, davide, jmolloy, atrick Subscribers: sanjoy Differential Revision: http://reviews.llvm.org/D14939 llvm-svn: 254005
* ELF: Improve error handling of unknown emulation names.Rui Ueyama2015-11-241-19/+11
| | | | | | | This patch reverts r253985 and implements the same feature in a less intrusive way. llvm-svn: 254004
* Revert "ELF: Make .note.GNU-stack more compatible with traditional linkers."Rui Ueyama2015-11-2424-129/+205
| | | | | | | This reverts commit r253797 because it was based on a misunderstanding that lld wouldn't work on NetBSD without this change. llvm-svn: 254003
* Add expectedFlakeyFreeBSD to TestBatchMode failing on buildbotEd Maste2015-11-241-0/+1
| | | | | | | | | | This test was already expectedFlakeyLinux for occasional failures on the Linux buildbot. It seems the new FreeBSD buildbot fails the same way on occasion. llvm.org/pr25172 llvm-svn: 254002
* Remove expectedFailureFreeBSD decorator from now-passing testsEd Maste2015-11-243-3/+0
| | | | | | | | | These pass on my FreeBSD stable/10 desktop and my (not-yet-connected) FreeBSD 11-CURRENT buildbot llvm.org/pr20548 llvm-svn: 254001
* Remove expectedFailureFreeBSD from passing ThreadExitTestCase::test_with_dwarfEd Maste2015-11-241-1/+0
| | | | | | | | | This passes on my FreeBSD stable/10 desktop and my new FreeBSD 11-current buildbot (which is not yet hooked up to the buildmaster). llvm.org/pr18190 llvm-svn: 254000
* [PGO] Small interface change to be profile rt ready Xinliang David Li2015-11-242-28/+31
| | | | | | | | Convert two C++ static member functions to be C APIs. This is one of the many steps to get ready to share VP writer code with profiler runtime. llvm-svn: 253999
* Add expectedFailureFreeBSD decorators for new Python fd leakEd Maste2015-11-241-0/+3
| | | | | | llvm.org/pr25624 llvm-svn: 253998
* [InstCombine] fix propagation of fast-math-flagsSanjay Patel2015-11-242-16/+11
| | | | | | | Noticed while working on D4583: http://reviews.llvm.org/D4583 llvm-svn: 253997
* use convenience function for copying IR flags; NFCISanjay Patel2015-11-241-12/+2
| | | | llvm-svn: 253996
* ScopInfo: Add support for delinearizing fortran arraysTobias Grosser2015-11-244-0/+422
| | | | | | | | | | | | gfortran (and fortran in general?) does not compute the address of an array element directly from the array sizes (e.g., %s0, %s1), but takes first the maximum of the sizes and 0 (e.g., max(0, %s0)) before multiplying the resulting value with the per-dimension array subscript expressions. To successfully delinearize index expressions as we see them in fortran, we first filter 'smax' expressions out of the SCEV expression, use them to guess array size parameters and only then continue with the existing delinearization. llvm-svn: 253995
* Minor refactor to make VP writing more efficientXinliang David Li2015-11-242-7/+11
| | | | llvm-svn: 253994
* Make this test a bit more strict.Rafael Espindola2015-11-241-9/+18
| | | | | | It now tests with files in both orders. llvm-svn: 253993
* Add vector types for intrinsicsKrzysztof Parzyszek2015-11-243-8/+33
| | | | | Author: Ron Lieberman <ronl@codeaurora.org> llvm-svn: 253992
* [ThinLTO] Fix FunctionImport alias checking and testTeresa Johnson2015-11-243-13/+15
| | | | | | | Skip imports for weak_any aliases as well. Fix the test to check non-import of weak aliases and functions, and import of normal alias. llvm-svn: 253991
* Fix rewrite of reserved library name in case of -nodefaultlibsNirav Dave2015-11-242-9/+12
| | | | | | | | | | | | The Driver only checked if nostdlib was set when deciding to add reserved_lib_stdcxx, but as nostdlib is always exactly nodefaultlibs and nostartfiles we should be checking one (clearly nodefaultlibs in the case) as well. This appears to be the only such instance of this in the codebase. Differential Revision: http://reviews.llvm.org/D14935 llvm-svn: 253990
* Add names for the new vector types in CodeGenTarget.cppKrzysztof Parzyszek2015-11-241-0/+9
| | | | llvm-svn: 253989
* [x86] remove duplicate movq instruction defs (PR25554)Sanjay Patel2015-11-243-29/+13
| | | | | | | | | | | | | | | | | | | | | | | | | We had duplicated definitions for the same hardware '[v]movq' instructions. For example with SSE: def MOVZQI2PQIrr : RS2I<0x6E, MRMSrcReg, (outs VR128:$dst), (ins GR64:$src), "mov{d|q}\t{$src, $dst|$dst, $src}", // X86-64 only [(set VR128:$dst, (v2i64 (X86vzmovl (v2i64 (scalar_to_vector GR64:$src)))))], IIC_SSE_MOVDQ>; def MOV64toPQIrr : RS2I<0x6E, MRMSrcReg, (outs VR128:$dst), (ins GR64:$src), "mov{d|q}\t{$src, $dst|$dst, $src}", [(set VR128:$dst, (v2i64 (scalar_to_vector GR64:$src)))], IIC_SSE_MOVDQ>, Sched<[WriteMove]>; As shown in the test case and PR25554: https://llvm.org/bugs/show_bug.cgi?id=25554 This causes us to miss reusing an operand because later passes don't know these 'movq' are the same instruction. This patch deletes one pair of these defs. Sadly, this won't fix the original test case in the bug report. Something else is still broken. Differential Revision: http://reviews.llvm.org/D14941 llvm-svn: 253988
* [Hexagon] Add missing include of <cctype>Krzysztof Parzyszek2015-11-241-0/+1
| | | | | | | Lack thereof breaks Windows builds due to the use of std::isspace in HexagonInstrInfo.cpp. llvm-svn: 253987
* [Hexagon] Bring HexagonInstrInfo up to dateKrzysztof Parzyszek2015-11-249-1173/+3004
| | | | llvm-svn: 253986
* ELF: print out a verbose error when a windows emulation is usedMartell Malone2015-11-241-9/+19
| | | | llvm-svn: 253985
* Add an already passing test.Rafael Espindola2015-11-242-0/+28
| | | | | | | | | This tests that a declaration can resolve to an alias. I broke this locally while prototyping a change and it looks like a nice test to have. llvm-svn: 253984
* [tsan] Fix signal number definitions for OS XKuba Brecka2015-11-241-1/+1
| | | | | | | | On OS X, SIGBUS is 10 and SIGSYS is 12. Differential Revision: http://reviews.llvm.org/D14946 llvm-svn: 253983
* [tsan] Implement basic GCD interceptors for OS XKuba Brecka2015-11-245-0/+206
| | | | | | | | We need to intercept libdispatch APIs (dispatch_sync, dispatch_async, etc.) to add synchronization between the code that submits the task and the code that gets executed (possibly on a different thread). This patch adds release+acquire semantics for dispatch_sync, and dispatch_async (plus their "_f" and barrier variants). The synchronization is done on malloc'd contexts (separate for each submitted block/callback). Added tests to show usage of dispatch_sync and dispatch_async, for cases where we expect no warnings and for cases where TSan finds races. Differential Revision: http://reviews.llvm.org/D14745 llvm-svn: 253982
* [tsan] Fix stack_sync_reuse.cc test on OS XKuba Brecka2015-11-241-2/+4
| | | | | | | | The test relies on two variables in different frames to end up being on the same address. For some reason, this isn't true on OS X. This patch adds `__attribute__((aligned(64)))` to the variables, which actually makes the variables occupy the same address. This is still not a guarantee, but it's more likely to work (the test looks very fragile already). Differential Revision: http://reviews.llvm.org/D14925 llvm-svn: 253981
* [tsan] Replace pthread semaphore in signal_cond.cc with barrier_waitKuba Brecka2015-11-241-5/+7
| | | | | | | | | | Pthread semaphores are not available on OS X. Let's replace sem_wait/sem_post with barrier_wait, which makes the test pass on OS X. I know that sem_wait/sem_post is intercepted by TSan, whereas barrier_wait is TSan-invisible, but the purpose of the test is not affected by this. Also, let's properly initialize the mutex and cond variables. Differential Revision: http://reviews.llvm.org/D14924 llvm-svn: 253980
* [tsan] Fix CallocOverflow unit test on OS XKuba Brecka2015-11-241-1/+3
| | | | | | | | On OS X, interceptors don't work in unit tests, so calloc() calls the system allocator. We need to use user_calloc() instead. Differential Revision: http://reviews.llvm.org/D14918 llvm-svn: 253979
* Add new vector types for 512-, 1024- and 2048-bit vectorsKrzysztof Parzyszek2015-11-245-142/+242
| | | | | | | | Those types are needed to implement instructions for Hexagon Vector Extensions (HVX): 16x32, 16x64, 32x16, 32x32, 32x64, 64x8, 64x16, 64x32, 128x8, 128x16, 256x8, 512x1, and 1024x1. llvm-svn: 253978
* [OPENMP] Fix crash on codegen for 'task' directive with no shared variables.Alexey Bataev2015-11-242-1/+4
| | | | | | If 'task' region does not have shared variables codegen could crash on calculation of size of list of shared variables. llvm-svn: 253977
* ScopInfo: Add option to ignore integer wrappingTobias Grosser2015-11-241-0/+11
| | | | llvm-svn: 253976
* AMDGPU: Split LDS vector loadsMatt Arsenault2015-11-247-94/+73
| | | | | | If properly aligned this could allow using ds_read_b64. llvm-svn: 253975
* AMDGPU: Split x8 and x16 vector loads instead of scalarizeMatt Arsenault2015-11-2410-290/+171
| | | | | | | | The one regression in the builtin tests is in the read2 test which now (again) has many extra copies, but this should be solved once the pass is replaced with a DAG combine. llvm-svn: 253974
* Disable forcing -marm (A32 instruction set) while running testsuite on arm ↵Omair Javaid2015-11-241-0/+4
| | | | | | | | targets. Differential revision: http://reviews.llvm.org/D14823 llvm-svn: 253973
* Use libcxx's default rune table with the Musl C library.Vasileios Kalintiris2015-11-243-19/+15
| | | | | | | | | | | | | | | | | Summary: Also, there are no exported character type tables from Musl so we have to Fallback to the standard functions. This reduces the number of libcxx's test-suite failures down to ~130 for MIPS. Most of the remaining failures come from the atomics (due to the lack of 8-byte atomic-ops in MIPS32) and thread tests. Reviewers: mclow.lists, EricWF, dalias, jroelofs Subscribers: tberghammer, danalbert, srhines, cfe-commits Differential Revision: http://reviews.llvm.org/D14926 llvm-svn: 253972
* Reapply fixed r253967.George Rimar2015-11-2417-52/+349
| | | | llvm-svn: 253971
* Revert r253967 which broke buildbot.George Rimar2015-11-2417-349/+52
| | | | llvm-svn: 253970
OpenPOWER on IntegriCloud