- Jan 27, 2021
-
-
Sanjay Patel authored
The existing test has less FMF than we might expect if our FMF was fixed (on all FP values), so this additional test is intended to check propagation in a more "normal" example.
-
Sanjay Patel authored
The switch must set the predicate correctly; anything else should lead to unreachable/assert. I'm trying to fix FMF propagation here and the callers, so this is a preliminary cleanup.
-
Simon Pilgrim authored
Replace cast_or_null<> with cast<> as we immediately dereference the pointer afterward so we're not expecting a null pointer.
-
Simon Pilgrim authored
Removes an unnecessary chain of StringRef -> std::string -> StringRef conversions
-
Mircea Trofin authored
Differential Revision: https://reviews.llvm.org/D95417
-
Alexander Belyaev authored
-
- Jan 26, 2021
-
-
Simon Pilgrim authored
Fixes clang static analysis warnings.
-
Simon Pilgrim authored
Avoid repeated calls to isZeroValue() and check for a null pointer before dereferencing a dyn_cast<>.
-
George Rokos authored
-
Matt Arsenault authored
Fixes verifier error when writing MIR testcases
-
Florian Hahn authored
This patch adds additional checks to avoid partial unswitching in cases where it won't be profitable, e.g. because the path directly exits the loop anyways.
-
Florian Hahn authored
Add a few additional tests where partial unswitching is not really profitable and should be avoided.
-
Simon Pilgrim authored
-
Sander de Smalen authored
Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D95355
-
Sebastian Neubauer authored
None of these can terminate a wave or lane. With these, all intrinsic are IntrWillReturn except those that change exec or can terminate the wave. Not marking intrinsics as WillReturn may prevent optimizations in the future: https://lists.llvm.org/pipermail/llvm-dev/2021-January/148047.html Differential Revision: https://reviews.llvm.org/D95436
-
Mirko Brkusanin authored
HasModifiers should be true if at least one modifier is used. This should make the use of this field bit more consistent. Differential Revision: https://reviews.llvm.org/D94795
-
Florian Hahn authored
Loop peeling removes conditions from loop bodies that become invariant after a small number of iterations. When triggered, this leads to fewer compares and possibly PHIs in loop bodies, enabling further optimizations. The current cost-model of loop peeling should be quite conservative/safe, i.e. only peel if a condition in the loop becomes known after peeling. For example, see PR47671, where loop peeling enables vectorization by removing a PHI the vectorizer does not understand. Granted, the loop-vectorizer could also be taught about constant PHIs, but loop peeling is likely to enable other optimizations as well. This has an impact on quite a few benchmarks from MultiSource/SPEC2000/SPEC2006 on X86 with -O3 -flto, for example Same hash: 186 (filtered out) Remaining: 51 Metric: loop-vectorize.LoopsVectorized Program base patch diff test-suite...ve-susan/automotive-susan.test 8.00 9.00 12.5% test-suite...nal/skidmarks10/skidmarks.test 35.00 31.00 -11.4% test-suite...lications/sqlite3/sqlite3.test 41.00 43.00 4.9% test-suite...s/ASC_Sequoia/AMGmk/AMGmk.test 25.00 26.00 4.0% test-suite...006/450.soplex/450.soplex.test 88.00 89.00 1.1% test-suite...TimberWolfMC/timberwolfmc.test 120.00 119.00 -0.8% test-suite.../CINT2006/403.gcc/403.gcc.test 215.00 216.00 0.5% test-suite...006/447.dealII/447.dealII.test 957.00 958.00 0.1% test-suite...ternal/HMMER/hmmcalibrate.test 75.00 75.00 0.0% Same hash: 186 (filtered out) Remaining: 51 Metric: loop-vectorize.LoopsAnalyzed Program base patch diff test-suite...ks/Prolangs-C/agrep/agrep.test 440.00 434.00 -1.4% test-suite...nal/skidmarks10/skidmarks.test 312.00 308.00 -1.3% test-suite...marks/7zip/7zip-benchmark.test 6399.00 6323.00 -1.2% test-suite...lications/minisat/minisat.test 134.00 135.00 0.7% test-suite...rks/FreeBench/pifft/pifft.test 295.00 297.00 0.7% test-suite...TimberWolfMC/timberwolfmc.test 1879.00 1869.00 -0.5% test-suite...pplications/treecc/treecc.test 689.00 691.00 0.3% test-suite...T2000/300.twolf/300.twolf.test 1593.00 1597.00 0.3% test-suite.../Benchmarks/Bullet/bullet.test 1394.00 1392.00 -0.1% test-suite...ications/JM/ldecod/ldecod.test 1431.00 1429.00 -0.1% test-suite...6/464.h264ref/464.h264ref.test 2229.00 2230.00 0.0% test-suite...lications/sqlite3/sqlite3.test 2590.00 2589.00 -0.0% test-suite...ications/JM/lencod/lencod.test 2732.00 2733.00 0.0% test-suite...006/453.povray/453.povray.test 3395.00 3394.00 -0.0% Note the -11% regression in number of loops vectorized for skidmarks. I suspect this corresponds to the fact that those loops are gone now (see the reduction in number of loops analyzed by LV). Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D88471 -
Lang Hames authored
Compilers may insert new definitions during compilation, E.g. EH personality function pointers, or named constant pool entries. This commit causes ObjectLinkingLayer to attempt to claim responsibility for all weak definitions in objects as they're linked. This is always safe (first claimant for each symbol is granted responsibility, subsequent claims are rejected without error) and prevents compiler-injected symbols from being dead-stripped (which they will be if they remain unclaimed by anyone). This change was motivated by errors seen by an out-of-tree client while testing eh-frame support in JITLink ELF/x86-64: IR containing exceptions didn't define DW.ref.__gxx_personality_v0 (since it's added by CodeGen), and this caused DW.ref.__gxx_personality_v0 to be dead-stripped leading to linker failures. No test case yet: We won't have a way to test in-tree until we enable JITLink for lli on Linux.
-
Andrzej Warzynski authored
This reverts commit d987b61b. As pointed out in https://reviews.llvm.org/D95388, the reverted commit causes build failures in the following Flang buildbots: * http://lab.llvm.org:8011/#/builders/32/builds/2642 * http://lab.llvm.org:8011/#/builders/33/builds/2131 * http://lab.llvm.org:8011/#/builders/135/builds/1473 * http://lab.llvm.org:8011/#/builders/66/builds/1559 * http://lab.llvm.org:8011/#/builders/134/builds/1409 * http://lab.llvm.org:8011/#/builders/132/builds/1817 I'm guessing that the patch was only tested with `FLANG_BUILD_NEW_DRIVER=Off` (i.e. the default). The builders listed above set `FLANG_BUILD_NEW_DRIVER` to `On`. Although fixing the build is relatively easy, the reverted patch modifies the behaviour of the frontend, which breaks driver tests. In particular, in https://reviews.llvm.org/D93453 support for `-I` was added that depends on the current behaviour. The reverted patch changes that behaviour. Either the tests have to be updated or the change fine-tuned.
-
Zarko Todorovski authored
Remove requirement for -maltivec to be used when using -mabi=vec-extabi or -mabi=vec-default when not using vector code The previous implementation required that `-maltivec` be specified when using either `-mabi=vec-extabi` or `-mabi=vec-default`, this patch removes that requirement. Reviewed By: cebowleratibm Differential Revision: https://reviews.llvm.org/D94986
-
Lang Hames authored
-
Lang Hames authored
This is required for ELF where PCRel32 doesn't implicitly subtract 4. No test case yet: I haven't figured out a good way to test stub generation -- this may required extensions to jitlink-check.
-
Alexey Bataev authored
Fixed declaration of define by adding a comma symbol. Required to fix build without profiling.
-
Alex Zinenko authored
-
Adhemerval Zanella authored
It is not used by LLVM, but GCC might generates it when compiling with -fpie, as indicated by PR#40357 [1]. [1] https://bugs.llvm.org/show_bug.cgi?id=40357
-
Dmitry Preobrazhensky authored
Summary: - Separated tgt encoding from parsing; - Separated tgt decoding from printing; - Improved errors handling; - Disabled leading zeroes in index. The following code is no longer accepted: exp pos00 v3, v2, v1, v0 Reviewers: arsenm, rampitec, foad Differential Revision: https://reviews.llvm.org/D95216
-
Eugene Zhulenev authored
Depends On D95000 Move async.execute outlining and async -> async.runtime lowering into the separate Async transformation pass Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D95311
-
David Sherwood authored
There were some right-shift tests in CodeGen/AArch64/sve-int-arith-imm.ll that were being folded away because we were shifting all the bits out to the right. I've updated the tests to ensure this doesn't happen.
-
Marek Kurdej authored
This reverts commit 3395a336 as there was a post-merge doubt about option naming and type.
-
Eugene Zhulenev authored
Depends On D94923 Migrate Async dialect to ODS `TypeDef` Reviewed By: ftynse, rriddle Differential Revision: https://reviews.llvm.org/D95000
-
Georgii Rymar authored
We already set the `sh_entsize` field in a single place for all non-implicit sections. This patch reorders the logic slightly and with it we finally have the only one place where the `sh_entsize` is set. obj2yaml will not dump the `EntSize` key for `SHT_DYNSYM/SHT_SYMTAB` sections anymore, when the value of `sh_entsize` is equal to `sizeof(Elf_Sym)` Note that this also seems revealed an issue in llvm-objcopy: Previously yaml2obj set the `sh_entsize` for the `.symtab` section to 0x18, now we it sets it for `SHT_SYMTAB` sections, i.e. by type. But the `llvm-objcopy/ELF/only-keep-debug.test` has a `.symtab` section of type `SHT_STRTAB`, and now yaml2obj sets the `sh_entsize` to 0 for it. I had to update the corresponding check lines for `ES`, but the behavior of `llvm-objcopy` should be fixed instead I think. I've added a TODO and a comment. Differential revision: https://reviews.llvm.org/D95364
-
Martin Storsjö authored
-
Ben Shi authored
Reviewed By: arichardson Differential Revision: https://reviews.llvm.org/D95240
-
Georgii Rymar authored
D95354 started to set the sh_link field for SHT_SYMTAB sections. Previously it was set for symbol tables basing on their names (e.g. ".symtab"). This test now crashes see: http://lab.llvm.org:8011/#/builders/68/builds/5911 I updated it to restore the old behavior.
-
Jan Svoboda authored
Port some GPU-related language options to the marshalling system for automatic command line parsing and generation. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D95345
-
Georgii Rymar authored
This refactors the logic that sets the `sh_link` field. With this patch we set it in a single place for all sections. Differential revision: https://reviews.llvm.org/D95354
-
Georgii Rymar authored
llvm-readelf prints default versions with `@@` prefix. This patch does the same for llvm-nm. Differential revision: https://reviews.llvm.org/D94912
-
Haojian Wu authored
Differential Revision: https://reviews.llvm.org/D95365
-
Georgii Rymar authored
A default version (@@) is only available for defined symbols. Currently we use "@@" for undefined symbols too. This patch fixes the issue and improves our test case. Differential revision: https://reviews.llvm.org/D95219
-
Craig Topper authored
Move the Suffix string into the VTypeInfo class so we don't need a helper class to get to it. Adjust pseudo naming scheme for FPRs to put F16/F32/F64 in place of F in the pseudo instruction name rather than as a suffix. This avoids special cases like VFMERGE from the original patch. Differential Revision: https://reviews.llvm.org/D95404
-