- Jul 20, 2017
-
-
Matt Arsenault authored
llvm-svn: 308638
-
Vitaly Buka authored
Reviewers: kcc, alekseyshl Subscribers: kubamracek, llvm-commits, dberris Differential Revision: https://reviews.llvm.org/D35654 llvm-svn: 308637
-
David Blaikie authored
llvm-svn: 308636
-
Michael Kruse authored
When constructing a schedule true and there are multiple statements for a basic block, create a sequence node for these statements. Contributed-by:
Nandini Singhal <cs15mtech01004@iith.ac.in> Differential Revision: https://reviews.llvm.org/D35679 llvm-svn: 308635
-
Rafael Espindola authored
It was fixed by r308544. llvm-svn: 308634
-
Michael Kruse authored
We are working towards removing uses of Scop::getStmtFor(BB). In this patch, we remove dependency of Scop::getLastStmtFor(BB) on getStmtFor(BB). To do so, we get the list of all statements corresponding to the BB and then fetch the last one. Contributed-by:
Nandini Singhal <cs15mtech01004@iith.ac.in> Differential Revision: https://reviews.llvm.org/D35665 llvm-svn: 308633
-
Michael Kruse authored
llvm-svn: 308632
-
Martin Storsjö authored
Also extend the tests for IMAGE_REL_ARM64_PAGEOFFSET_12L to test all 8/16/32/64 bit GPR and 8/16/32/64/128 SIMD/FP bit ldr/str variants, and a ldr with an existing offset. Differential revision: https://reviews.llvm.org/D35647 llvm-svn: 308631
-
Michael Kruse authored
Introduce previously missing PHIReads analogous the the already existing PHIWrites/ValueWrites/ValueReads maps. PHIReads was initially not required and the later introduced lookupPHIReadOf() used a linear search instead. With PHIReads, lookupPHIReadOf() can now also do a map lookup and remove any surprising performance/behaviour differences to lookupPHIWriteOf(), lookupValueWriteOf() and lookupValueReadOf(). llvm-svn: 308630
-
Alexey Bataev authored
If the member declaration is captured in the OMPCapturedExprDecl, we may loose data-sharing attribute info for this declaration. Patch fixes this bug. llvm-svn: 308629
-
Michael Kruse authored
Use a mark-and-sweep algorithm to find and remove unused instructions and MemoryAccesses. This is useful in particular to remove scalar writes that are never used anywhere. A scalar write in a loop induces a write-after-write dependency that stops the loop iterations to be rescheduled. Such writes can be a result of previous transformations such as DeLICM and operand tree forwarding. It adds a new class VirtualInstruction that represents an instruction in a particular statement. At the moment an instruction can only belong to the statement that represents a BasicBlock. In the future, instructions can be in one of multiple statements representing a BasicBlock (Nandini's work), in different statements than its BasicBlock would indicate, and even multiple statements at once (by forwarding operand trees). It also integrates nicely with the VirtualUse class. ScopStmt::contains(Instruction*) currently uses the instruction's parent BasicBlock to check whether it contains the instruction. It will need to check the actual statement list when one of the aforementioned features become possible. Differential Revision: https://reviews.llvm.org/D35656 llvm-svn: 308626
-
Siddharth Bhat authored
This commit *WILL COMPILE*. 1. `PPCG` now uses `isl_multi_pw_aff` instead of an array of `pw_aff`. This needs us to adjust how we index array bounds and how we construct array bounds. 2. `PPCG` introduces two new kinds of nodes: `init_device` and `clear_device`. We should investigate what the correct way to handle these are. 3. `PPCG` has gotten smarter with its use of live range reordering, so some of the tests have a qualitative improvement. 4. `PPCG` changed its output style, so many test cases need to be updated to fit the new style for `polly-acc-dump-code` checks. Differential Revision: https://reviews.llvm.org/D35677 llvm-svn: 308625
-
Siddharth Bhat authored
- This commit *WILL NOT COMPILE*. `PPCGCodeGeneration` requires changes since some of PPCG's internal data structures have been modified. - Has polly-speific changes to PPCG. Polly exports certain functionality that is private to PPCG. It also creates stubs for large parts of the pet API as well as other functions in `ppcg/external.c` to keep the linker happy. - This commit includes changes to CMakeLists.txt. Differential Revision: https://reviews.llvm.org/D35676 llvm-svn: 308624
-
Siddharth Bhat authored
- This commit *WILL NOT COMPILE*, as it checks in vanilla PPCG 0.07 - We choose to introduce this commit into the history to cleanly display the Polly-specific changes made to PPCG. Differential Revision: https://reviews.llvm.org/D35675 llvm-svn: 308623
-
Simon Pilgrim authored
revert: [llvm] r308609 - This patch added some test cases to demonsrate the issues described in Bug 33848 - X86 Asm does not support symbolic names inside address calculation. llvm-svn: 308622
-
Alexander Kornienko authored
llvm-svn: 308621
-
Kamil Rytarowski authored
llvm-svn: 308620
-
Simon Dardis authored
This patch teaches the driver to pass -mgpopt by default to the backend when it is supported, i.e. we are using -mno-abicalls. Reviewers: atanasyan, slthakur Differential Revision: https://reviews.llvm.org/D35548 This version fixes a logic error that generated warnings incorrectly and gets rid of spurious arguments to the backend when -mgpopt is not used. llvm-svn: 308619
-
Nirav Dave authored
Summary: When pushing an extension of a constant bitwise operator on a load into the load, change other uses of the load value if they exist to prevent the old load from persisting. Reviewers: spatel, RKSimon, efriedma Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35030 llvm-svn: 308618
-
Nirav Dave authored
Summary: Add missing vector write of vector read reduction, i.e.: (insert_vector_elt x (extract_vector_elt x idx) idx) to x Reviewers: spatel, RKSimon, efriedma Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35563 llvm-svn: 308617
-
Kamil Rytarowski authored
Summary: Reuse Linux, FreeBSD and Apple code - no NetBSD specific changes. Part of the code inspired by the original work on libsanitizer in GCC 5.4 by Christos Zoulas. Sponsored by <The NetBSD Foundation> Reviewers: joerg, vitalybuka, filcab, kcc Reviewed By: filcab Subscribers: emaste, kubamracek, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D35628 llvm-svn: 308616
-
Kamil Rytarowski authored
Summary: Reuse Linux and FreeBSD - no NetBSD specific changes. Part of the code inspired by the original work on libsanitizer in GCC 5.4 by Christos Zoulas. Sponsored by <The NetBSD Foundation> Reviewers: joerg, filcab, kcc, vitalybuka Reviewed By: filcab Subscribers: llvm-commits, emaste, kubamracek, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D35629 llvm-svn: 308615
-
Kamil Rytarowski authored
Summary: Reuse Linux and FreeBSD code - no NetBSD specific changes. Part of the code inspired by the original work on libsanitizer in GCC 5.4 by Christos Zoulas. Sponsored by <The NetBSD Foundation> Reviewers: joerg, kcc, vitalybuka, filcab Reviewed By: filcab Subscribers: emaste, kubamracek, llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D35632 llvm-svn: 308614
-
Daniel Sanders authored
llvm-svn: 308613
-
Stefan Maksimovic authored
Builder clang-x86_64-linux-abi-test apparently failed due to a spurious error unrelated to the changes r308585 introduced. llvm-svn: 308612
-
Simon Pilgrim authored
Test constant folding both on node creation (which already works) and once the input nodes have been folded themselves (not working yet). llvm-svn: 308611
-
Michael Kruse authored
Since there will be no more a 1:1 correspondence between statements and basic blocks, we would like to get rid of the method getStmtFor(BB) and its uses. Here we remove one of its uses in ScopBuilder by fetching the statement in which the instruction lies. Contributed-by:
Nandini Singhal <cs15mtech01004@iith.ac.in> Differential Revision: https://reviews.llvm.org/D35610 llvm-svn: 308610
-
Andrew V. Tischenko authored
This patch added some test cases to demonsrate the issues described in Bug 33848 - X86 Asm does not support symbolic names inside address calculation. llvm-svn: 308609
-
Michael Kruse authored
This is one possible solution to implement wrap-arounds for integers in unsigned icmp operations. For example, store i32 -1, i32* %A_addr %0 = load i32, i32* %A_addr %1 = icmp ult i32 %0, 0 %1 should hold false, because under the assumption of unsigned integers, -1 should wrap around to 2^32-1. However, previously. it was assumed that the MSB (Most Significant Bit - aka the Sign bit) was never set for integers in unsigned operations. This patch modifies the buildConditionSets function in ScopInfo.cpp to give better information about the integers in these unsigned comparisons. Contributed-by:
Annanay Agarwal <cs14btech11001@iith.ac.in> Differential Revision: https://reviews.llvm.org/D35464 llvm-svn: 308608
-
Javed Absar authored
Remove headers not required and convert to range-loop Reviewed by: @mcrosier Differential Revision: https://reviews.llvm.org/D35626 llvm-svn: 308607
-
Simon Atanasyan authored
This patch adds handling of the `long_call`, `far`, and `near` attributes passed by front-end. The patch depends on D35479. Differential revision: https://reviews.llvm.org/D35480. llvm-svn: 308606
-
Alexander Kornienko authored
llvm-svn: 308605
-
Benjamin Kramer authored
Otherwise we'd silently compare uninitialized data. llvm-svn: 308604
-
Diana Picus authored
This reverts commit 36c6a2ea9669bc3bb695928529a85d12d1d3e3f9 because it broke the test-suite on the GlobalISel bot. llvm-svn: 308603
-
Simon Pilgrim authored
Use predicate matchers introduced in D35492 to match more ISD::SRL constant folds llvm-svn: 308602
-
Simon Pilgrim authored
llvm-svn: 308601
-
Simon Pilgrim authored
Use predicate matchers introduced in D35492 to match more ISD::SRA constant folds llvm-svn: 308600
-
Daniel Sanders authored
It seems that G++ 4.8 doesn't accept the 'enum A' in code of the form: enum A { ... }; const auto &F = []() -> enum A { ... }; However, it does accept: typedef enum { ... } A; const auto &F = []() -> A { ... }; llvm-svn: 308599
-
Simon Pilgrim authored
Most combines currently recognise scalar and splat-vector constants, but not non-uniform vector constants. This patch introduces a matching mechanism that uses predicates to check against BUILD_VECTOR of ConstantSDNode, as well as scalar ConstantSDNode cases. I've changed a couple of predicates to demonstrate - the combine-shl changes add currently unsupported cases, while the MatchRotate replaces an existing mechanism. Differential Revision: https://reviews.llvm.org/D35492 llvm-svn: 308598
-
Stefan Maksimovic authored
Builder clang-x86_64-linux-abi-test seems to fail after this change llvm-svn: 308597
-