- Mar 23, 2021
-
-
Philip Reames authored
-
Craig Topper authored
[LegalizeDAG] Add asserts to verify the types of custom legalized operation matches the original node. We've messed this up a few times recently on RISCV. Experiments with these asserts found a couple issues on other targets as well. They've all been cleaned up now so we can put in these asserts to catch future issues I had to waive Glue because ADDC/ADDE/etc legalization replaces Glue with i32 on at least AArch64. X86 used to do the same before we switched to ADDCARRY. So I guess that's just how that works. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D98979
-
Philip Reames authored
-
Craig Topper authored
I've split the gather/scatter custom handler to avoid complicating it with even more differences between gather/scatter. Tests are the scalable vector tests with the vscale removed and dropped the tests that used vector.insert. We're probably not as thorough on the splitting cases since we use 128 for VLEN here but scalable vector use a known min size of 64. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D98991
-
Arthur Eubanks authored
This reverts commits 56700e93 and c2f9086b. Breaks multiple Android bots, e.g. https://lab.llvm.org/buildbot/#/builders/77/builds/4777.
-
LLVM GN Syncbot authored
-
Frank Derry Wanye authored
This lint check is a part of the FLOCL (FPGA Linters for OpenCL) project out of the Synergy Lab at Virginia Tech. FLOCL is a set of lint checks aimed at FPGA developers who write code in OpenCL. The altera unroll loops check finds inner loops that have not been unrolled, as well as fully-unrolled loops that should be partially unrolled due to unknown loop bounds or a large number of loop iterations. Based on the Altera SDK for OpenCL: Best Practices Guide.
-
Raphael Isemann authored
Objective-C apparently allows name conflicts between instance and class properties, so this is valid code: ``` @protocol DupProp @property (class, readonly) int prop; @property (readonly) int prop; @end ``` The ASTImporter however isn't aware of this and will consider the two properties as if they are the same property because it just compares their name and types. This causes that when importing both properties we only end up with one property (whatever is imported first from what I can see). Beside generating a different AST this also leads to a bunch of asserts and crashes as we still correctly import the two different getters for both properties (the import code for methods does the correct check where it differentiated between instance and class methods). As one of the setters will not have its associated ObjCPropertyDecl imported, any call to `ObjCMethodDecl::findPropertyDecl` will just lead to an assert or crash. Fixes rdar://74322659 Reviewed By: shafik, kastiglione Differential Revision: https://reviews.llvm.org/D99077
-
Siva Chandra authored
-
Stefan Gränitz authored
The `callB()` template function always moved errors on return, because in the majority of cases its return type is an `Expected<T>` and the error must be moved into the implicit ctor. For the special case of a `void` result, however, the `ResultTraits` class is specialized and the return type is a raw `Error`. Some build bots complain, that in favor of NRVO errors should not be moved in this case. ``` llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1513:27: llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1519:27: llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1526:29: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move] ``` The warning is reasonable from a type-system point of view. For performance it's entirely insignificant. Differential Revision: https://reviews.llvm.org/D98947
-
Stefan Gränitz authored
Don't leak ResourceKeys from MaterializationResponsibility::withResourceKeyDo() in notifyEmitted(). Also make some improvements in the overall implementation. Differential Revision: https://reviews.llvm.org/D98863
-
Stefan Gränitz authored
There can be multiple MaterializationResponsibilitys in-flight for a single ResourceKey. Hence, pending debug objects must be tracked by MaterializationResponsibility and not by ResourceKey. Differential Revision: https://reviews.llvm.org/D98785
-
Philip Reames authored
This patch exploits the knowledge that we may be running many fewer than bitwidth iterations of the loop, and may be able to disallow the overflow case. This patch specifically implements only the shl case, but this can be generalized to ashr and lshr without difficulty. Differential Revision: https://reviews.llvm.org/D98222
-
Bjorn Pettersson authored
Make sure we use PowerOf2Floor instead of PowerOf2Ceil when calculating max number of elements that fits inside a vector register (otherwise we could end up creating vectors larger than the maximum vector register size). Also make sure we honor the min/max VF (as given by TTI or cmd line parameters) when doing vectorizeStores. Reviewed By: anton-afanasyev Differential Revision: https://reviews.llvm.org/D97691
-
Bjorn Pettersson authored
-
Philip Reames authored
Triggered by discussion on D98222. The case where we have a loop variant step is suprising, and doesn't match the behavior of SCEV's recurrences. As such, make sure we call that out explicitly.
-
- Mar 22, 2021
-
-
Wenlei He authored
Switch to use cold threshold from profile summary for cold context merging and trimming, instead of relying on hard coded values. Minor refactoring included for switch names, etc. Differential Revision: https://reviews.llvm.org/D98921
-
Pavel Labath authored
The fix in 10d54e2f did not work.
-
Arthur O'Dwyer authored
The container headers don't need to include <functional> for any other reason (or at least, they wouldn't if we moved `less` and `equal_to` out of <functional>), so let's put `__libcpp_erase_if_container` somewhere that's common to the containers but outside of <functional>. Also, calling `std::erase_if(c, pred)` should not trigger ADL. Differential Revision: https://reviews.llvm.org/D99043
-
Matt Morehouse authored
Subsequent patches will implement page-aliasing mode for x86_64, which will initially only work for the primary heap allocator. We force callback instrumentation to simplify the initial aliasing implementation. Reviewed By: vitalybuka, eugenis Differential Revision: https://reviews.llvm.org/D98069
-
Matt Arsenault authored
-
Pavel Labath authored
The file contained bogus input - the DIE list was not properly terminated. This should not cause a crash, but it seems it was crashing at least on linux arm and x86 windows.
-
Stefan Pintilie authored
Do not try to materialize a constant using prefix instructions if the selection using non prefix instructions was able to do it using a single non prefix instruction. Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D98791
-
Pavel Labath authored
lit has grown a feature where it stores the runtimes of all tests. Normally, these times should be stored in the build directory, but because our API tests have set test_exec_root to point to the source tree, it has ended up polluting our checkout and led to the .lit_test_times.txt being committed to the repository. Delete this file, and adjust the exec root of API tests. I've also needed to adjust the root of Shell tests, in order to avoid the two overlapping.
-
Joe Ellis authored
Previously only the i32 type was tested. Now, the {i,f}{16,32,64} types are tested. The v8{i,f}16 cases lower differently to the other cases, which is worth defending. The lowering for the other cases is currently identical, but probably worth having for the better coverage. Differential Revision: https://reviews.llvm.org/D98690 -
Simon Pilgrim authored
Yet another case of update_llc_test_checks.py not reporting when a RUN doesn't have any matching prefixes
-
Luís Marques authored
Illustrates bug 49500 <https://bugs.llvm.org/show_bug.cgi?id=49500>.
-
Nicolas Vasilache authored
- Drop unnecessary occurrences of rewriter.eraseOp: dead linalg ops on tensors should be cleaned up by DCE. - reimplement the part of Linalg on fusion that constructs the body and block arguments: the previous implementation had too much magic. Instead this spells out all cases explicitly and asserts / introduces TODOs for incorrect cases. As a consequence, we can use the default traversal order for this pattern. Differential Revision: https://reviews.llvm.org/D99070
-
Balázs Kéri authored
There was only an `Import` function for `QualType` but not for `Type`. For correct import of some AST nodes where not `QualType` is used an import of `Type *` is needed. (It is the case with `FieldDecl::getCapturedVLAType`.) Reviewed By: shafik, teemperor, martong Differential Revision: https://reviews.llvm.org/D98951
-
Louis Dionne authored
This makes it easier to see what exact build commands are used. Differential Revision: https://reviews.llvm.org/D98992
-
Martin Storsjö authored
Similar to the existing code for disabling GCC's -Wredudant-move, also check for the -Wpessimizing-move option and disable it if possible. This silences another bunch of noisy warnings when building LLVM with GCC 9. As noted for -Wredundant-move, the code can't be fixed to silence the warnings while retaining support for older compilers. Differential Revision: https://reviews.llvm.org/D98942
-
Alexey Lapshin authored
writeToOutput function is useful when it is necessary to create different kinds of streams(based on stream name) and when we need to use a temporary file while writing(which would be renamed into the resulting file in a success case). This patch moves the writeToStream helper into the Support library. Differential Revision: https://reviews.llvm.org/D98426
-
Dmitri Gribenko authored
-
Roman Lebedev authored
Even though we have read the times before, we intentionally forget about it for performance reasons. But that means we also forget all the times for the tests that weren't executed this time. This is mildly inconvenient. So, when recording the new times, first re-read the old times, and update times for the tests that were executed, thus preserving all original times, too.
-
Roman Lebedev authored
Simply refactor code into reusable functions, to allow read_test_times() to be reused later.
-
Roman Lebedev authored
I.e. when you first run lit on a directory, and then on a single test, the timing knowledge about anything else other than that single test is lost. This isn't right.
-
Roman Lebedev authored
All of these depend on the order of tests, so if one runs them twice, the tests within them will naturally be reordered using the previous run times, which breaks them.
-
Roman Lebedev authored
If lit was run on a directory that contained no suites, then naturally suite[0] will not be there, and that line would cause python warnings. So just predicate it with a check that it is there in the first place.
-
Florian Hahn authored
Add a set of interesting test cases for GEPs without inbounds for upcoming patches.
-
Muhammad Omair Javaid authored
Tests dwarf5-debug_line-file-index.s fails on arm-linux-gnueabihf. Bug # 49678 has been filed against it.
-