summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Change hwloc discovery algorithm to print topology only for accessible resourcesJonathan Peyton2016-06-161-17/+29
| | | | | | | | | | | | | Change hwloc discovery algorithm to print topology for only accessible resources, and report uniformity correspondingly, similar to what other topology discovery algorithms do. Fixes minor inconsistency in total topology reported and resources used for threads binding in case hwloc used. Patch by Andrey Churbanov. Differential Revision: http://reviews.llvm.org/D21389 llvm-svn: 272952
* Teach OpenMP Library to use Hwloc on WindowsJonathan Peyton2016-06-165-63/+116
| | | | | | | | | | | | | | | | | | | This patch allows a user to enable Hwloc on windows. There are three main changes in here: 1.kmp.h - Move definitions/declarations out of KMP_OS_WINDOWS guard (our windows implementation of affinity) because they need to be defined when KMP_USE_HWLOC is on as well. 2.teach __kmp_set_system_affinity, __kmp_get_system_affinity, __kmp_get_proc_group, and __kmp_affinity_bind_thread how to use hwloc. 3.teach CMake how to include hwloc when building Windows Another minor change in here is to make sure that anything under KMP_USE_HWLOC is also guarded by KMP_AFFINITY_SUPPORTED as well. This is to prevent Mac builds from requiring anything from Hwloc. Differential Revision: http://reviews.llvm.org/D21441 llvm-svn: 272951
* Fix for crash in task dependenciesJonathan Peyton2016-06-161-1/+1
| | | | | | | | | | | | With single thread using __kmpc_omp_wait_deps segfaults in OpenMP runtime. Offloading with depend also encounters this problem when we generate kmpc_omp_wait_deps instead of kmpc_omp_task_with_deps. Patch by Alex Duran Differential Revision: http://reviews.llvm.org/D21384 llvm-svn: 272949
* [libFuzzer] use the new chainable malloc hooks instead of the old ↵Kostya Serebryany2016-06-163-39/+32
| | | | | | un-chainable ones, use atomic for malloc/free counters instead of a thread local counter in the main thread. This should make on-the-spot leak detection in libFuzzer more reliable llvm-svn: 272948
* Minor fixes for miamcpu-opt.c testArtem Belevich2016-06-161-6/+9
| | | | | | | Added -no-canonical-prefixes to make cc1 binary name more predictable. Added appropriate REQUIRES keywords. llvm-svn: 272947
* Fixed missing memory cleanup in __kmp_affinity_create_hwloc_map()Jonathan Peyton2016-06-161-0/+2
| | | | | | | | | | | Cleanup: fixed missing memory cleanup in couple of corner cases. Fixes possible memory leak in some corner cases Patch by Andrey Churbanov Differential Revision: http://reviews.llvm.org/D21355 llvm-svn: 272946
* Reduce perf impact of redundant ittnotify callsJonathan Peyton2016-06-163-8/+18
| | | | | | | | | | | | Improved performance of ittnotify calls by request from ittnotify owner: calls to __itt_string_handle_create made unique (it was called multiple times). Patch by Andrey Churbanov Differential Revision: http://reviews.llvm.org/D21353 llvm-svn: 272945
* [DebugInfo] Put the vftable index in the debug infoReid Kleckner2016-06-162-9/+24
| | | | | | | This won't always be enough info to call a virtual method from the debugger, but it's a start. llvm-svn: 272944
* [sanitizers] introduce yet another API function: ↵Kostya Serebryany2016-06-1610-16/+114
| | | | | | __sanitizer_install_malloc_and_free_hooks llvm-svn: 272943
* Simplify *(x+y) to x[y]. NFC.Rui Ueyama2016-06-161-11/+11
| | | | | | They are equivalent in C (and in C++ in this case). llvm-svn: 272942
* Fix strip-dead-debug-info test if path contains "bar".Justin Lebar2016-06-161-2/+2
| | | | | | | | | | | This test checks that the string 'bar' (no quotes) doesn't exist in the output after running opt. But opt embeds the absolute path to the filename, and on my machine, the filename contains the string 'jlebar', causing the test to fail. This patch changes the test to look for the string '"bar"' instead. llvm-svn: 272941
* Make check lines not match themselves.Paul Robinson2016-06-161-3/+4
| | | | | | Noticed during review of the recent FileCheck change. llvm-svn: 272940
* Refactor more duplicated code.Rafael Espindola2016-06-162-21/+18
| | | | llvm-svn: 272939
* NFC; refactor getFrameIndexReferenceFromSPSanjoy Das2016-06-165-44/+39
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: ... into getFrameIndexReferencePreferSP. This change folds the fail-then-retry logic into getFrameIndexReferencePreferSP. There is a non-functional but behaviorial change in WinException -- earlier if `getFrameIndexReferenceFromSP` failed we'd trip an assert, but now we'll silently use the (wrong) offset from the base pointer. I could not write the assert I'd like to write ("FrameReg == StackRegister", like I've done in X86FrameLowering) since there is no easy way to get to the stack register from WinException (happy to be proven wrong here). One solution to this is to add a `bool OnlyStackPointer` parameter to `getFrameIndexReferenceFromSP` that asserts if it could not satisfy its promise of returning an offset from a stack pointer, but that seems overkill. Reviewers: rnk Subscribers: sanjoy, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D21427 llvm-svn: 272938
* Deprecate KMP_PLACE_THREADS and rename as KMP_HW_SUBSETJonathan Peyton2016-06-163-33/+55
| | | | | | | | | | | | | Deprecate KMP_PLACE_THREADS and rename it to KMP_HW_SUBSET due to confusion about its purpose and function among users. KMP_HW_SUBSET is an environment variable which allows users to easily pick a subset of the hardware topology to use. e.g., KMP_HW_SUBSET=30c,2t means use 30 cores, 2 threads per core. Patch by Andrey Churbanov Differential Revision: http://reviews.llvm.org/D21340 llvm-svn: 272937
* Refactor duplicated code.Rafael Espindola2016-06-161-4/+4
| | | | llvm-svn: 272936
* Bug fix: crash if teams executed on hostJonathan Peyton2016-06-161-0/+1
| | | | | | | | | | | | | | Added argv array check/allocation for parallel directly nested inside the teams construct, as new coming Fortran codegen passes parameters directly into kmpc_fork_call missing same parameters in kmpc_fork_teams (earlier codegen passed to parallel the subset of parameter passed to teams, and thus no check/allocation needed). Patch by Andrey Churbanov Differential Revision: http://reviews.llvm.org/D21336 llvm-svn: 272935
* [ELF] - Handle every global as unversioned export in versioned script.George Rimar2016-06-162-3/+54
| | | | | | | | | Patch updates the version script parser to parse versioned files. In a simple way, just adding them to VersionScriptGlobals list. Differential revision: http://reviews.llvm.org/D21439 llvm-svn: 272934
* [x86] generate IR for AVX2 integer min/max builtinsSanjay Patel2016-06-162-17/+41
| | | | | | | Sibling patch to r272932: http://reviews.llvm.org/rL272932 llvm-svn: 272933
* [x86] autoupgrade and remove AVX2 integer min/max intrinsicsSanjay Patel2016-06-165-91/+180
| | | | | | | This will (hopefully very temporarily) break clang. The clang side of this should be the next commit. llvm-svn: 272932
* Re-apply r272900 - [OpenMP] Cast captures by copy when passed to fork call ↵Samuel Antao2016-06-169-115/+193
| | | | | | | | so that they are compatible to what the runtime library expects. An issue in one of the regression tests was fixed for 32-bit hosts. llvm-svn: 272931
* [codeview] Use hashBufferV8 to verify all type records.Rui Ueyama2016-06-161-15/+15
| | | | | | Differential Revision: http://reviews.llvm.org/D21393 llvm-svn: 272930
* Resubmit "[pdb] Change type visitor pattern to be dynamic."Zachary Turner2016-06-1614-387/+483
| | | | | | | There was a regression introduced during type stream merging when visiting a field list record. This has been fixed in this patch. llvm-svn: 272929
* dos2unix this test. NFC.Rafael Espindola2016-06-161-45/+45
| | | | llvm-svn: 272928
* Revert "[pdb] Change type visitor pattern to be dynamic."Zachary Turner2016-06-1614-466/+390
| | | | | | | | This reverts commit fb0dd311e1ad945827b8ffd5354f4810e2be1579. This breaks some llvm-readobj tests. llvm-svn: 272927
* [pdb] Change type visitor pattern to be dynamic.Zachary Turner2016-06-1614-390/+466
| | | | | | | | | | | | | | | This allows better catching of compiler errors since we can use the override keyword to verify that methods are actually overridden. Also in this patch I've changed from storing a boolean Error code everywhere to returning an llvm::Error, to propagate richer error information up the call stack. Reviewed By: ruiu, rnk Differential Revision: http://reviews.llvm.org/D21410 llvm-svn: 272926
* [PM] Revert the port of MergeLoadStoreMotion to the new pass manager.Davide Italiano2016-06-168-172/+134
| | | | | | | | Daniel Berlin expressed some real concerns about the port and proposed and alternative approach. I'll revert this for now while working on a new patch, which I hope to put up for review shortly. Sorry for the churn. llvm-svn: 272925
* Simplify. NFC.Rui Ueyama2016-06-161-1/+1
| | | | llvm-svn: 272924
* Inline a small function. NFC.Rui Ueyama2016-06-161-5/+1
| | | | llvm-svn: 272923
* [DSE] Minor style cleanup. NFC.Chad Rosier2016-06-161-12/+5
| | | | llvm-svn: 272922
* remove old FileCheck lines that are no longer usedSanjay Patel2016-06-161-18/+0
| | | | llvm-svn: 272921
* [DAG] Remove redundant FMUL in Newton-Raphson SQRT codeSanjay Patel2016-06-163-68/+152
| | | | | | | | | | | | | | | | | When calculating a square root using Newton-Raphson with two constants, a naive implementation is to use five multiplications (four muls to calculate reciprocal square root and another one to calculate the square root itself). However, after some reassociation and CSE the same result can be obtained with only four multiplications. Unfortunately, there's no reliable way to do such a reassociation in the back-end. So, the patch modifies NR code itself so that it directly builds optimal code for SQRT and doesn't rely on any further reassociation. Patch by Nikolai Bozhenov! Differential Revision: http://reviews.llvm.org/D21127 llvm-svn: 272920
* AMDGPU: Add v_mad 16-bit instructions definition.Wei Ding2016-06-162-0/+11
| | | | | | Differential Revision: http://reviews.llvm.org/D21362 llvm-svn: 272919
* [LLE] New test to check that no versioning for symbolic strides occurs. NFCAdam Nemet2016-06-161-0/+35
| | | | | | | | | This is currently only performed in the Vectorizer. I will change this as symbolic stride collection is moved to LAA. This test will track when the actual functional change occurs. llvm-svn: 272918
* Early return. NFC.Rui Ueyama2016-06-161-13/+8
| | | | llvm-svn: 272917
* Allow installing watchpoints at less than 8-byte alligned addresses for ↵Omair Javaid2016-06-166-4/+232
| | | | | | | | | | | | AArch64 targets This patch allows LLDB for AArch64 to watch all bytes, words or double words individually on non 8-byte alligned addresses. This patch also adds tests to verify this functionality. Differential revision: http://reviews.llvm.org/D21280 llvm-svn: 272916
* Early return. NFC.Rui Ueyama2016-06-161-12/+11
| | | | llvm-svn: 272915
* LangRef: Note expectations when loading with extra alignmentMatt Arsenault2016-06-161-2/+14
| | | | llvm-svn: 272914
* Rename PltZero -> PltHeader.Rui Ueyama2016-06-164-23/+23
| | | | | | | | | | | | PltZero (or PLT[0]) was an appropriate name for the little code we have at beginning of the PLT section when we only supported x86 since the code for x86 just fits in the first PLT slot. It's not the case anymore. The code for ARM64 occupies first two slots, so PltZero spans PLT[0] and PLT[1], for example. This patch renames it to avoid confusion. llvm-svn: 272913
* Revert r272891 "[JumpThreading] Prevent dangling pointer problems in ↵Igor Laevsky2016-06-168-64/+7
| | | | | | | | BranchProbabilityInfo" It was causing failures in Profile-i386 and Profile-x86_64 tests. llvm-svn: 272912
* [PATCH] Fix RuntimeDyldCOFFI386 to handle relocations with a non-zero addendReid Kleckner2016-06-162-3/+34
| | | | | | | | | This fixes IMAGE_REL_I386_DIR32, IMAGE_REL_I386_DIR32NB, IMAGE_REL_I386_SECREL, and IMAGE_REL_I386_REL32 relocations. Based on patch by Jon Turney <jon.turney@dronecode.org.uk> llvm-svn: 272911
* Eliminate unnecessary call of SymbolBody::getPltVA.Rui Ueyama2016-06-163-14/+14
| | | | | | | | For ARM and MIPS, we don't need to call this function. This patch passes a symbol instead of a PLT entry address so that the target handler can call it if necessary. llvm-svn: 272910
* Don't print (PLT) on arm.Rafael Espindola2016-06-1610-57/+29
| | | | | | | | | The R_ARM_PLT32 relocation is deprecated and is not produced by MC. This means that the code being deleted is dead from the .o point of view and was making the .s more confusing. llvm-svn: 272909
* Revert r272900 - [OpenMP] Cast captures by copy when passed to fork call so ↵Samuel Antao2016-06-169-162/+110
| | | | | | | | that they are compatible to what the runtime library expects. Was causing trouble in one of the regression tests for a 32-bit address space. llvm-svn: 272908
* [x86] autoupgrade and remove SSE2/SSE41 integer min/max intrinsicsSanjay Patel2016-06-165-59/+177
| | | | | | | | Follow-up to: http://reviews.llvm.org/rL272806 http://reviews.llvm.org/rL272807 llvm-svn: 272907
* Remove redundant -mattr options from llvm-objdump commands.Daniel Sanders2016-06-164-6/+2
| | | | | | | | The -mattr options in these four tests have no effect on the output of llvm-objdump. In the case of the two Mips tests, removing the -mattr option left duplicate RUN lines so the duplicates have been removed. llvm-svn: 272906
* Refactor duplicated code. NFC.Rafael Espindola2016-06-161-3/+1
| | | | llvm-svn: 272905
* Refactor duplicated code. NFC.Rafael Espindola2016-06-161-6/+5
| | | | llvm-svn: 272904
* Refactor duplicated code. NFC.Rafael Espindola2016-06-161-4/+5
| | | | llvm-svn: 272903
* xfail TestWithModuleDebugging.py on macOSTodd Fiala2016-06-161-0/+1
| | | | | | | Tracked by: https://llvm.org/bugs/show_bug.cgi?id=28156 llvm-svn: 272902
OpenPOWER on IntegriCloud