- Nov 23, 2020
-
-
Arthur Eubanks authored
There is lots of code duplication, but hopefully it won't matter soon. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D91683
-
Arthur Eubanks authored
-print-memderefs is only used for one test and hasn't been touched in a while.
-
Arthur Eubanks authored
The devirtualization wrapper misses cases where if it wraps a pass manager, an individual pass may devirtualize an indirect call created by a previous pass. For example, inlining may create a new indirect call which is devirtualized by instcombine. Currently the devirtualization wrapper will not see that because it only checks cgscc edges at the very beginning and end of the pass (manager) it wraps. This fixes some tests testing this exact behavior in the legacy PM. Instead of checking WeakTrackingVHs for CallBases at the very beginning and end of the pass it wraps, check every time updateCGAndAnalysisManagerForPass() is called. check-llvm and check-clang with -abort-on-max-devirt-iterations-reached on by default doesn't show any failures outside of tests specifically testing it so it doesn't needlessly rerun passes more than necessary. (The NPM -O2/3 pipeline run the inliner/function simplification pipeline under a devirtualization repeater pass up to 4 times by default). http://llvm-compile-time-tracker.com/?config=O3&stat=instructions&remote=aeubanks shows that 7zip has ~1% compile time regression. I looked at it and saw that there indeed was devirtualization happening that was not previously caught, so now it reruns the CGSCC pipeline on some SCCs, which is WAI. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D89587
-
Xiangling Liao authored
Support reserved [0-100] and non-reserved[101-65535] Clang/GNU init priority values on AIX. This patch maps Clang/GNU values into priority values used in sinit/sterm functions. User can play with values and be able to get init to occur before or after XL init and vice versa. Differential Revision: https://reviews.llvm.org/D91272
-
Arthur Eubanks authored
-dot-callgraph is not ported to the NPM yet. It can be ported at a later time if necessary. Differential Revision: https://reviews.llvm.org/D91685
-
Haowei Wu authored
This change serves to create the initial framework for outputting ELF files from llvm-elfabi. Differential Revision: https://reviews.llvm.org/D61767
-
Eric Astor authored
Accept macro function definitions, and apply them when invoked in operand position. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D89734
-
Craig Topper authored
These tests invoke opt and llc even though they are in the frontend. We now do a better job of generating commuted patterns for fma so these tests now form fmls instead of fmla+fneg.
-
Amy Huang authored
-
Florian Hahn authored
-
MaheshRavishankar authored
Exposing some utility functions from Linalg to allow for promotion of fused views outside of the core tile+fuse logic. This is an alternative to patch D91322 which adds the promotion logic to the tileAndFuse method. Downside with that approach is that it is not easily customizable based on needs. Differential Revision: https://reviews.llvm.org/D91503
-
Nico Weber authored
The test needs an object file, which it currenty gets with `-target x86_64-apple-darwin10`. Rather than adding `REQUIRES: X86`, create the object file via yaml2obj. This way, the test runs and passes even if the host arch isn't x86 and only the host arch is built. Part of PR46644.
-
MaheshRavishankar authored
Enhance the tile+fuse logic to allow fusing a sequence of operations. Make sure the value used to obtain tile shape is a SubViewOp/SubTensorOp. Current logic used to get the bounds of loop depends on the use of `getOrCreateRange` method on `SubViewOp` and `SubTensorOp`. Make sure that the value/dim used to compute the range is from such ops. This fix is a reasonable WAR, but a btter fix would be to make `getOrCreateRange` method be a method of `ViewInterface`. Differential Revision: https://reviews.llvm.org/D90991
-
Craig Topper authored
[SelectionDAG][ARM][AArch64][Hexagon][RISCV][X86] Add SDNPCommutative to fma and fmad nodes in tablegen. Remove explicit commuted patterns from targets. X86 was already specially marking fma as commutable which allowed tablegen to autogenerate commuted patterns. This moves it to the target independent definition and fix up the targets to remove now unneeded patterns. Unfortunately, the tests change because the commuted version of the patterns are generating operands in a different than the explicit patterns. Differential Revision: https://reviews.llvm.org/D91842
-
Nico Weber authored
Part of PR46644, see comment 7/8.
-
George authored
Previously, there was no way to add context to the diagnostic engine via the C API. Adding this ability makes it much easier to reason about memory ownership, particularly in reference-counted languages such as Swift. There are more details in the review comments. Reviewed By: ftynse, mehdi_amini Differential Revision: https://reviews.llvm.org/D91738
-
Florian Hahn authored
-
Paul C. Anagnostopoulos authored
Step 1 in eliminating the 'code' type. Differential Revision: https://reviews.llvm.org/D91932
-
Simon Moll authored
VE Vector Predicated (VVP) SDNodes form an intermediate layer between VE vector instructions and the initial SDNodes. We introduce 'vvp_add' with isel and tests as the first of these VVP nodes. VVP nodes have a mask and explicit vector length operand, which we will make proper use of later. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D91802
-
Alex Zinenko authored
These tests fail sporadically on irrelevant commits, e.g. http://lab.llvm.org:8011/#/builders/61/builds/1777 as well as in local builds.
-
Stephen Kelly authored
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D91070
-
Kazushi (Jam) Marukawa authored
Remove magic numbers 176 from VE source codes and update comments. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D91958
-
Jay Foad authored
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D91918
-
Stephen Kelly authored
traverse() predates the IgnoreUnlessSpelledInSource mode. Update example and test code to use the newer mode. Differential Revision: https://reviews.llvm.org/D91917
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D91916
-
Mikael Holmen authored
The testcase was added in faf848ac to test the fix of PR 47969, but it was named pr48980 (which happens to be the TR number in my downstream issue system).
-
Alex Zinenko authored
An SCF 'for' loop does not iterate if its lower bound is equal to its upper bound. Remove loops where both bounds are the same SSA value as such bounds are guaranteed to be equal. Similarly, remove 'parallel' loops where at least one pair of respective lower/upper bounds is specified by the same SSA value. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D91880
-
Mikael Holmen authored
ConstantOffsetPtrs contains mappings from a Value to a base pointer and an offset. The offset is typed and has a size, and at least when dealing with ptrtoint, it could happen that we had a mapping from a ptrtoint with type i32 to an offset with type i16. This could later cause problems, showing up in PR 47969 and PR 38500. In PR 47969 we ended up in an assert complaining that trunc i16 to i16 is invalid and in Pr 38500 that a cmp on an i32 and i16 value isn't valid. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D90610
-
Michał Górny authored
-
Georgii Rymar authored
This test contains YAMLs that can be merged with use of macros. This opens road for adding more test cases. Differential revision: https://reviews.llvm.org/D91953
-
Dmitry Preobrazhensky authored
See bug 47518 (https://bugs.llvm.org/show_bug.cgi?id=47518) Reviewers: rampitec Differential Revision: https://reviews.llvm.org/D91794
-
Jann Horn authored
The noderef attribute is for catching code that accesses pointers in a different address space. Unevaluated code is always safe in that regard.
-
Alex Zinenko authored
The existing implementation of the conversion from SCF Parallel operation to SCF "for" loops in order to further convert those loops to branch-based CFG has been cloning the loop and reduction body operations into the new loop because ConversionPatternRewriter was missing support for moving blocks while replacing their arguments. This functionality now available, use it to implement the conversion and avoid cloning operations, which may lead to doubling of the IR size during the conversion. In addition, this fixes an issue with converting nested SCF "if" conditionals present in "parallel" operations that would cause the conversion infrastructure to stop because of the repeated application of the pattern converting "newly" created "if"s (which were in fact just moved). Arguably, this should be fixed at the infrastructure level and this fix is a workaround. Reviewed By: herhut Differential Revision: https://reviews.llvm.org/D91955
-
Utkarsh Saxena authored
Differential Revision: https://reviews.llvm.org/D91721
-
Dmitry Preobrazhensky authored
See bug 47518 (https://bugs.llvm.org/show_bug.cgi?id=47518) Reviewers: rampitec Differential Revision: https://reviews.llvm.org/D91793
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D91956
-
Kadir Cetinkaya authored
This reverts commit 8cec8de2 as it breaks windows buildbots.