summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix broken visual studio builds by disabling KMP_USE_TSX.Jonathan Peyton2015-12-141-1/+2
| | | | | | Visual studio can't handle the asm extension in the KMP_USE_TSX code sections. llvm-svn: 255514
* Add add_lvalue_ref tests for a few function types, with a note why not moreMarshall Clow2015-12-141-0/+36
| | | | llvm-svn: 255513
* AMDGPU: Use generic bitreverse intrinsicMatt Arsenault2015-12-148-37/+143
| | | | | | Also fix bug in vector legalization for bitreverse. llvm-svn: 255512
* getParent() ^ 3 == getModule() ; NFCISanjay Patel2015-12-1416-40/+28
| | | | llvm-svn: 255511
* [Hexagon] Xfail two tests that fail due to over-aligning arraysKrzysztof Parzyszek2015-12-142-0/+9
| | | | llvm-svn: 255510
* Remove dead function AArch64TargetLowering::getFunctionAlignment. NFC.Geoff Berry2015-12-142-8/+0
| | | | | | | | | | Reviewers: t.p.northover, jmolloy, mcrosier Subscribers: aemerson, rengolin, llvm-commits Differential Revision: http://reviews.llvm.org/D15458 llvm-svn: 255509
* AMDGPU: Fix splitting vector loads with existing offsetsMatt Arsenault2015-12-142-9/+122
| | | | | | | If the original MMO had an offset, it was dropped. Also use the correct alignment after adding the new offset. llvm-svn: 255508
* [TSAN, PPC64] Fix obvious typo of supported virtual memory sizesBill Schmidt2015-12-141-1/+1
| | | | llvm-svn: 255507
* BlockGenerator: Do not use fast-path for external constantsTobias Grosser2015-12-141-3/+6
| | | | | | | This change should not change the behavior of Polly today, but it allows external constants to be remapped e.g. when targetting multiple LLVM modules. llvm-svn: 255506
* BlockGenerator: Drop unneeded const_castsTobias Grosser2015-12-141-3/+3
| | | | llvm-svn: 255505
* [InstCombine] fold trunc ([lshr] (bitcast vector) ) --> extractelement (PR25543)Sanjay Patel2015-12-142-66/+54
| | | | | | | | | | | | | | | | | | | | | | | This is a fix for PR25543: https://llvm.org/bugs/show_bug.cgi?id=25543 The idea is to take the existing fold of: bitcast ( trunc ( lshr ( bitcast X))) --> extractelement (bitcast X) ( http://reviews.llvm.org/rL112232 ) And break it into less specific transforms so we'll catch more cases such as the example in the bug report: bitcast ( trunc ( lshr ( bitcast X))) --> bitcast ( extractelement (bitcast X)) --> extractelement (bitcast X) Enabling patches for this change: http://reviews.llvm.org/rL255399 (combine bitcasts) http://reviews.llvm.org/rL255433 (canonicalize extractelement(bitcast X)) Differential Revision: http://reviews.llvm.org/D15392 llvm-svn: 255504
* Revert "Always treat scalar writes as MUST_WRITEs"Tobias Grosser2015-12-146-16/+24
| | | | | | | | | | | | | | | | | | | This reverts commit r255471. Johannes raised in the post-commit review of r255471 the concern that PHI writes in non-affine regions with two exiting blocks are not really MUST_WRITE, but we just know that at least one out of the set of all possible PHI writes will be executed. Modeling all PHI nodes as MUST_WRITEs is probably save, but adding the needed documentation for such a special case is probably not worth the effort. Michael will be proposing a new patch that ensures only a single PHI_WRITE is created for non-affine regions, which - besides other benefits - should also allow us to use a single well-defined MUST_WRITE for such PHI writes. (This is not a full revert, but the condition and documentation have been slightly extended) llvm-svn: 255503
* [Hexagon] Update default paths and argumentsKrzysztof Parzyszek2015-12-1416-1326/+679
| | | | | | | | | - Removed support for hexagonv3 and earlier. - Added handling of hexagonv55 and hexagonv60. - Added handling of target features (hvx, hvx-double). - Updated paths to reflect current directory layout. llvm-svn: 255502
* [Hexagon] Subtarget features/default CPU correctionsKrzysztof Parzyszek2015-12-146-15/+22
| | | | llvm-svn: 255501
* Add unit test for r255473Michael Kruse2015-12-141-0/+51
| | | | | | | Check that memory accesses in non-affine regions that are always executed are MUST_WRITE. llvm-svn: 255500
* Add failure paths to a few JSONNumber membersOmair Javaid2015-12-142-2/+6
| | | | | | Differential revision: http://reviews.llvm.org/D15355 llvm-svn: 255499
* Add parse and sema of OpenMP distribute directive with all clauses except ↵Carlo Bertolli2015-12-1429-23/+1457
| | | | | | dist_schedule llvm-svn: 255498
* [PPC] Early exit loop. NFC.Chad Rosier2015-12-141-1/+4
| | | | llvm-svn: 255497
* [compiler-rt] [msan] Variadic support for AArch64Adhemerval Zanella2015-12-142-4/+1
| | | | | | | | | Now with variadic support for msan on aarch6 there is no need for XFAIL signal_stress_test anymore. Also to garantee aligned stores for the FP/SIMD arguments enforce the '__msan_va_arg_tls' alignment to sizeof the SIMD register (16). llvm-svn: 255496
* [sanitizer] [msan] VarArgHelper for AArch64Adhemerval Zanella2015-12-142-0/+314
| | | | | | | | This patch add support for variadic argument for AArch64. All the MSAN unit tests are not passing as well the signal_stress_test (currently set as XFAIl for aarch64). llvm-svn: 255495
* [tsan] Update dispatch_group support to avoid using a disposed group objectKuba Brecka2015-12-142-0/+62
| | | | | | | | | | We're using the dispatch group itself to synchronize (to call Release() and Acquire() on it), but in dispatch group notifications, the group can already be disposed/deallocated. This causes a later assertion failure at `DCHECK_EQ(*meta, 0);` in `MetaMap::AllocBlock` when the same memory is reused (note that the failure only happens in debug builds). Fixing this by retaining the group and releasing it in the notification. Adding a stress test case that reproduces this. Differential Revision: http://reviews.llvm.org/D15380 llvm-svn: 255494
* Make test categories composablePavel Labath2015-12-143-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously the add_test_categories would simply overwrite the current set of categories for a method. This change makes the decorator truly "add" categories, by extending the current set of categories instead of replacing it. To do this, I have: - replaced the getCategories() property on a method (which was itself a method), with a simple list property "categories". This makes add_test_categories easier to implement, and test categories isn't something which should change between calls anyway. - rewritten the getCategoriesForTest function to merge method categories with the categories of the test case. Previously, it would just use the method categories if they were present. I have also greatly simplified this method. Originally, it would use a lot of introspection to enable it being called on various types of objects. Based on my tests, it was only ever being called on a test case. The new function uses much less introspection then the preivous one, so we should easily catch any stray uses, if there are any, as they will generate exceptions now. Reviewers: zturner, tfiala, tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D15451 llvm-svn: 255493
* Extend XFAIL on TestNamespaceLookup on linuxPavel Labath2015-12-141-1/+1
| | | | | | one of the tests seems to (occasionally) fail with clang as well. llvm-svn: 255492
* [compiler-rt] [safestack] Silent overflow.c test on aarch64Adhemerval Zanella2015-12-142-0/+7
| | | | | | | | | | | | The safestack overflow.c test is currently failing on an aarch64 buildbot with a segfault, but it is currently passing on other configuration. This patch silent the issue for now on aarch64 by setting to all supported architectures the 'stable-runtime' configure and set the test to requires it. llvm-svn: 255491
* XFAIL TestNamespaceLookup for linuxPavel Labath2015-12-141-0/+4
| | | | llvm-svn: 255490
* Don't create unnecessary PHIsJames Molloy2015-12-143-4/+205
| | | | | | | | | | | | In conditional store merging, we were creating PHIs when we didn't need to. If the value to be predicated isn't defined in the block we're predicating, then it doesn't need a PHI at all (because we only deal with triangles and diamonds, any value not in the predicated BB must dominate the predicated BB). This fixes a large code size increase in some benchmarks in a popular embedded benchmark suite. llvm-svn: 255489
* [LLDB][MIPS] Mark TestConcurrentEvents.py expected failure, as MIPS atomic ↵Mohit K. Bhakkad2015-12-141-0/+1
| | | | | | | | | | sequences are yet to be supported in LLDB Reviewers: jaydeep. Subscribers: lldb-commits. Differential Revision: http://reviews.llvm.org/D15488 llvm-svn: 255488
* [OPENMP] Fix debug info for 'atomic' construct.Alexey Bataev2015-12-142-5/+6
| | | | | | Debug info for statement under 'atomic' construct must point exactly to that statement, not the directive itself. llvm-svn: 255487
* clang-format: Add test for AlignAfterOpenBracket = AlwaysBreak in C++.Daniel Jasper2015-12-141-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revision 251405 added AlwaysBreak to support Google's JavaScript style. This changeset complete existing AlignsAfterOpenBracket tests to exercise AlwaysBreak for C++. I thought this would be worthwhile. With this option we can support request from http://lists.llvm.org/pipermail/cfe-dev/2015-May/042942.html, that had been requested a few times. This also partially solve related Bug 23422 and is probably sufficient for most people. AlignAfterOpenBracket = FormatStyle::BAS_AlwaysBreak; BinPackArguments = false; BinPackParameters = false; With these setting we obtain this formatting: void fooWithAVeryLongParamList( int firstParameter, int secondParameter int lastParameter) { object.alsoThisDoenstFitSoIBreakImmidiatly( firstParameter, secondParameter, lastParameter); } Patch by Jean-Philippe Dufraigne, thank you. llvm-svn: 255486
* clang-format: Extend Linux-brace-wrapping test.Daniel Jasper2015-12-141-0/+2
| | | | llvm-svn: 255485
* clang-format: Fix style default for WebKit and Linux styles.Daniel Jasper2015-12-141-2/+0
| | | | | | | | Brought up in codereviews: http://reviews.llvm.org/D15445 http://reviews.llvm.org/D15485 llvm-svn: 255484
* Reformat to untabify.NAKAMURA Takumi2015-12-142-12/+11
| | | | llvm-svn: 255483
* [llvm-dwp] Deduplicate type unitsDavid Blaikie2015-12-144-6/+47
| | | | | | | | It's O(N^2) because it does a simple walk through the existing types to find duplicates, but that will be fixed in a follow-up commit to use a mapping data structure of some kind. llvm-svn: 255482
* [llvm-dwp] Remove some unused test codeDavid Blaikie2015-12-142-5/+0
| | | | llvm-svn: 255481
* [Docs] Fix underlines that were too short or too long.Akira Hatanaka2015-12-141-3/+3
| | | | llvm-svn: 255480
* clang-tools-extra/test/clang-tidy/cppcoreguidelines-pro-bounds-constant-arra ↵NAKAMURA Takumi2015-12-132-2/+2
| | | | | | y-index*.cpp: Don't assume size_t were unsigned int. llvm-svn: 255475
* Rename addScalar(Read|Write)Access to addValue(Read|Write)AccessMichael Kruse2015-12-132-16/+16
| | | | | | Adapt the method names to the new scheme introduced in r255467. llvm-svn: 255474
* Check guaranteed execution by using DominatorTreeMichael Kruse2015-12-131-3/+4
| | | | | | | | | Before this commit, only the region's entry block was assumed to always execute in a non-affine subregion. We replace this by a test whether it dominates the exit block (this necessarily includes the entry block) which should be more accurate. llvm-svn: 255473
* Store DominatorTree as a field in ScopInfoMichael Kruse2015-12-132-5/+8
| | | | | | | This harmonizes DT with the other analyses in ScopInfo and makes it available for use in its methods. llvm-svn: 255472
* Always treat scalar writes as MUST_WRITEsMichael Kruse2015-12-136-10/+14
| | | | | | | | | LLVM's IR guarantees that a value definition occurs before any use, and also the value of a PHI must be one of the incoming values, "written" in one of the incoming blocks. Hence, such writes are never conditional in the context of a non-affine subregion. llvm-svn: 255471
* [clang-tidy] add check cppcoreguidelines-pro-bounds-constant-array-indexMatthias Gehre2015-12-138-0/+346
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is http://reviews.llvm.org/D13746 but instead of including <array>, a stub is provided. This check flags all array subscriptions on static arrays and std::arrays that either have a non-compile-time-constant index or are out of bounds. Dynamic accesses into arrays are difficult for both tools and humans to validate as safe. array_view is a bounds-checked, safe type for accessing arrays of data. at() is another alternative that ensures single accesses are bounds-checked. If iterators are needed to access an array, use the iterators from an array_view constructed over the array. This rule is part of the "Bounds safety" profile of the C++ Core Guidelines, see https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#-bounds2-only-index-into-arrays-using-constant-expressions Reviewers: alexfh, sbenza, bkramer, aaron.ballman Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15030 llvm-svn: 255470
* I Added a triple flag for x86-evenDirective test.Michael Zuckerman2015-12-131-1/+1
| | | | | | | | Continue of rL255461 Differential Revision: http://reviews.llvm.org/D15413 llvm-svn: 255469
* ScopInfo: Split out invariant load hoisting into multiple functions [NFC]Tobias Grosser2015-12-132-78/+105
| | | | | | This reduces indentation and makes the code more readable. llvm-svn: 255468
* ScopInfo: Harmonize the different array kindsTobias Grosser2015-12-134-209/+232
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Over time different vocabulary has been introduced to describe the different memory objects in Polly, resulting in different - often inconsistent - naming schemes in different parts of Polly. We now standartize this to the following scheme: KindArray, KindValue, KindPHI, KindExitPHI | ------- isScalar -----------| In most cases this naming scheme has already been used previously (this minimizes changes and ensures we remain consistent with previous publications). The main change is that we remove KindScalar to clearify the difference between a scalar as a memory object of kind Value, PHI or ExitPHI and a value (former KindScalar) which is a memory object modeling a llvm::Value. We also move all documentation to the Kind* enum in the ScopArrayInfo class, remove the second enum in the MemoryAccess class and update documentation to be formulated from the perspective of the memory object, rather than the memory access. The terms "Implicit"/"Explicit", formerly used to describe memory accesses, have been dropped. From the perspective of memory accesses they described the different memory kinds well - especially from the perspective of code generation - but just from the perspective of a memory object it seems more straightforward to talk about scalars and arrays, rather than explicit and implicit arrays. The last comment is clearly subjective, though. A less subjective reason to go for these terms is the historic use both in mailing list discussions and publications. llvm-svn: 255467
* Print "null" for ISL objects that are nullptrMichael Kruse2015-12-132-2/+3
| | | | | | | | Use it to print "null" if a MemoryAccess's access relation is not available instead of printing nothing. Suggested-by: Johannes Doerfert llvm-svn: 255466
* Reuse ScopStmt::isEmpty() functionMichael Kruse2015-12-132-7/+15
| | | | | | | | Introduce a function getStmtForRegionNode() to the corresponding ScopStmt of a RegionNode. We can use it to call the existing ScopStmt::isEmpty() function instead of searching for accesses. llvm-svn: 255465
* Check if access relation is available before printingMichael Kruse2015-12-131-1/+2
| | | | | | | Currently MemoryAccesses are not printed before the access relations are available, but might be printed during gdb sessions. llvm-svn: 255464
* Revert r255460, which still causes test failures on some platforms.Cong Hou2015-12-133-176/+32
| | | | | | Further investigation on the failures is ongoing. llvm-svn: 255463
* [X86][inline asm] support even directive Michael Zuckerman2015-12-134-1/+76
| | | | | | | | | | | The .even directive aligns content to an evan-numbered address. In at&t syntax .even In Microsoft syntax even (without the dot). Differential Revision: http://reviews.llvm.org/D15413 llvm-svn: 255462
* Fix a type issue in r255455. Should not use unsigned type as std::abs()'s ↵Cong Hou2015-12-131-1/+1
| | | | | | template type. llvm-svn: 255461
OpenPOWER on IntegriCloud