- Jan 21, 2021
-
-
Sebastian Neubauer authored
Allow parsing generated mir with custom pseudo source value tokens. Also rename pseudo source values to have more meaningful names. Differential Revision: https://reviews.llvm.org/D94768
-
David Green authored
It turns out the vectorizer calls the getIntrinsicInstrCost functions with a scalar return type and vector VF. This updates the costmodel to handle that, still producing the correct vector costs. A vectorizer test is added to show it vectorizing at the correct factor again.
-
Andrzej Warzynski authored
This patch makes sure that diagnostics from the prescanner are reported when running `flang-new -E` (i.e. only the preprocessor phase is requested). More specifically, the `PrintPreprocessedAction` action is updated. With this patch we make sure that the `f18` and `flang-new` provide identical output when running the preprocessor and the prescanner generates diagnostics. Differential Revision: https://reviews.llvm.org/D94782
-
Joseph Huber authored
Summary: The custom mapper API did not previously support the mapping names added previously. This means they were not present if a user requested debugging information while using the mapper functions. This adds basic support for passing the mapped names to the runtime library. Reviewers: jdoerfert Differential Revision: https://reviews.llvm.org/D94806
-
Matt Arsenault authored
Not sure about the default value handling, but also not sure defaulting to a theoretically subtarget dependent value.
-
Raphael Isemann authored
GCC/libstdc++ before 6.1 can't handle scoped enums as unordered_map keys. LLVM (and some build) bots officially support some GCC 5.x versions, so this patch just makes the enum unscoped until we can require GCC 6.x.
-
Balázs Kéri authored
Reviewed By: hokein Differential Revision: https://reviews.llvm.org/D94787
-
Sanjay Patel authored
In https://llvm.org/PR48810 , we are crashing while trying to propagate attributes from mempcpy (returns void*) to memcpy (returns nothing - void). We can avoid the crash by removing known incompatible attributes for the void return type. I'm not sure if this goes far enough (should we just drop all attributes since this isn't the same function?). We also need to audit other transforms in LibCallSimplifier to make sure there are no other cases that have the same problem. Differential Revision: https://reviews.llvm.org/D95088
-
Mikael Holmen authored
My toolchain (LLVM 8.0, libstdc++ 5.4.0) complained with: 12:27:43 ../lib/MC/MCDwarf.cpp:814:10: error: chosen constructor is explicit in copy-initialization 12:27:43 return {Offset, Size, SetDelta}; 12:27:43 ^~~~~~~~~~~~~~~~~~~~~~~~ 12:27:43 /proj/flexasic/app/llvm/8.0/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:479:19: note: explicit constructor declared here 12:27:43 constexpr tuple(_UElements&&... __elements) 12:27:43 ^ 12:27:43 1 error generated. This commit adds explicit calls to std::make_tuple to work around the problem. -
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D95129
-
Simon Pilgrim authored
Add DemandedElts support inside the TRUNCATE analysis. REAPPLIED - this was reverted by @hans at rGa5122605 due to an issue with vector shift amount types, which was fixed in rG935bacd3 and an additional test case added at rG0ca81b90 Differential Revision: https://reviews.llvm.org/D56387
-
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D95130
-
Simon Pilgrim authored
Reduced from regression reported by @hans on D56387
-
Simon Pilgrim authored
As noticed on D56387, for vectors we must always correctly adjust the shift amount type during truncation (not just after legalization). We were getting away with it as we currently only accepted scalars via the dyn_cast<ConstantSDNode>.
-
Raphael Isemann authored
The original patch got reverted as a dependency of cf1c774d . That patch got relanded so it's also necessary to reland this patch. Original summary: After cf1c774d, Clang seems to generate code that is more similar to icc/Clang, so we can use the same line numbers for all compilers in this test.
-
Raphael Isemann authored
The DSYM variant of this test is failing since D94890. But as we explicitly try to disable the DSYM generation in the makefile and build the archive on our own, I don't see why we even need to run the DSYM version of the test. This patch disables the generated derived versions of this test for the different debug information containers (which includes the failing DSYM one).
-
Raphael Isemann authored
Currently when LLDB has enough data in the debug information to import the `std` module, it will just try to import it. However when debugging libraries where the sources aren't available anymore, importing the module will generate a confusing diagnostic that the module couldn't be built. For the fallback mode (where we retry failed expressions with the loaded module), this will cause the second expression to fail with a module built error instead of the actual parsing issue in the user expression. This patch adds checks that ensures that we at least have any source files in the found include paths before we try to import the module. This prevents the module from being loaded in the situation described above which means we don't emit the bogus 'can't import module' diagnostic and also don't waste any time retrying the expression in the fallback mode. For the unit tests I did some refactoring as they now require a VFS with the files in it and not just the paths. The Python test just builds a binary with a fake C++ module, then deletes the module before debugging. Fixes rdar://73264458 Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D95096
-
Adhemerval Zanella authored
It is not used bt LLVM itself, but it would be used on lld tests to implement R_AARCH64_LD64_GOTPAGE_LO15 support.
-
Simon Pilgrim authored
Cleanup some code to use auto* properly from cast, and use const APInt& for getAPIntValue() to avoid an unnecessary copy.
-
Simon Pilgrim authored
Fixes msvc analyzer warning.
-
Luo, Yuanke authored
This reverts commit 20013d02.
-
Haojian Wu authored
-
Florian Hahn authored
This patch applies the idea from D93734 to LoopUnswitch. It adds support for unswitching on conditions that are only invariant along certain paths through a loop. In particular, it targets conditions in the loop header that depend on values loaded from memory. If either path from the true or false successor through the loop does not modify memory, perform partial loop unswitching. That is, duplicate the instructions feeding the condition in the pre-header. Then unswitch on the duplicated condition. The condition is now known in the unswitched version for the 'invariant' path through the original loop. On caveat of this approach is that one of the loops created can be partially unswitched again. To avoid this behavior, `llvm.loop.unswitch.partial.disable` metadata is added to the unswitched loops, to avoid subsequent partial unswitching. If that's the approach to go, I can move the code handling the metadata kind into separate functions. This increases the cases we unswitch quite a bit in SPEC2006/SPEC2000 & MultiSource. It also allows us to eliminate a dead loop in SPEC2017's omnetpp ``` Tests: 236 Same hash: 170 (filtered out) Remaining: 66 Metric: loop-unswitch.NumBranches Program base patch diff test-suite...000/255.vortex/255.vortex.test 2.00 23.00 1050.0% test-suite...T2006/401.bzip2/401.bzip2.test 7.00 55.00 685.7% test-suite :: External/Nurbs/nurbs.test 5.00 26.00 420.0% test-suite...s-C/unix-smail/unix-smail.test 1.00 3.00 200.0% test-suite.../Prolangs-C++/ocean/ocean.test 1.00 3.00 200.0% test-suite...tions/lambda-0.1.3/lambda.test 1.00 3.00 200.0% test-suite...yApps-C++/PENNANT/PENNANT.test 2.00 5.00 150.0% test-suite...marks/Ptrdist/yacr2/yacr2.test 1.00 2.00 100.0% test-suite...lications/viterbi/viterbi.test 1.00 2.00 100.0% test-suite...plications/d/make_dparser.test 12.00 24.00 100.0% test-suite...CFP2006/433.milc/433.milc.test 14.00 27.00 92.9% test-suite.../Applications/lemon/lemon.test 7.00 12.00 71.4% test-suite...ce/Applications/Burg/burg.test 6.00 10.00 66.7% test-suite...T2006/473.astar/473.astar.test 16.00 26.00 62.5% test-suite...marks/7zip/7zip-benchmark.test 78.00 121.00 55.1% ``` Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D93764
-
Alexander Belyaev authored
`complex` dialect should be used instead. https://llvm.discourse.group/t/rfc-split-the-complex-dialect-from-std/2496/2 Differential Revision: https://reviews.llvm.org/D95077
-
Fangrui Song authored
And change signature
-
Georgii Rymar authored
This fixes https://bugs.llvm.org/show_bug.cgi?id=48670. Since binutils 2.35, nm -D displays symbol versions by default. This patch teaches llvm-nm to do the same. Differential revision: https://reviews.llvm.org/D94907
-
Luo, Yuanke authored
Previous code build the model that tile config register is the user of each AMX instruction. There is a problem for the tile config register spill. When across function, the ldtilecfg instruction may be inserted on each AMX instruction which use tile config register. This cause all tile data register clobber. To fix this issue, we remove the model of tile config register. We analyze the regmask of call instruction and insert ldtilecfg if there is any tile data register live across the call. Inserting the sttilecfg before the call is unneccessary, because the tile config doesn't change and we can just reload the config. Besides we also need check tile config register interference. Since we don't model the config register we should check interference from the ldtilecfg to each tile data register def. ldtilecfg / \ BB1 BB2 / \ call BB3 / \ %1=tileload %2=tilezero We can start from the instruction of each tile def, and backward to ldtilecfg. If there is any call instruction, and tile data register is not preserved, we should insert ldtilecfg after the call instruction. Differential Revision: https://reviews.llvm.org/D94155 -
Georgii Rymar authored
This makes the following improvements. For `SHT_GNU_versym`: * yaml2obj: set `sh_link` to index of `.dynsym` section automatically. For `SHT_GNU_verdef`: * yaml2obj: set `sh_link` to index of `.dynstr` section automatically. * yaml2obj: set `sh_info` field automatically. * obj2yaml: don't dump the `Info` field when its value matches the number of version definitions. For `SHT_GNU_verneed`: * yaml2obj: set `sh_link` to index of `.dynstr` section automatically. * yaml2obj: set `sh_info` field automatically. * obj2yaml: don't dump the `Info` field when its value matches the number of version dependencies. Also, simplifies few test cases. Differential revision: https://reviews.llvm.org/D94956
-
madhur13490 authored
In case of indirect calls or address taken functions, skip propagating any attributes to them. We just propagate features to such functions. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D94585
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Max Kazantsev authored
We already have an experimental option to tune loop alignment. Its impact is very wide (and there is a suspicion that it's not always profitable). We want to have something more narrow to play with. This patch adds similar option that overrides preferred alignment for innermost loops. This is for experimental purposes, default values do not change the existing behavior. Differential Revision: https://reviews.llvm.org/D94895 Reviewed By: pengfei
-
Hsiangkai Wang authored
Define vlsseg intrinsics and pseudo instructions. Lower vlsseg intrinsics to pseudo instructions in RISCVDAGToDAGISel. Differential Revision: https://reviews.llvm.org/D94863
-
Hsiangkai Wang authored
Define vlsseg intrinsics and pseudo instructions. Lower vlsseg intrinsics to pseudo instructions in RISCVDAGToDAGISel. Differential Revision: https://reviews.llvm.org/D94763
-
Hsiangkai Wang authored
Define vsseg intrinsics and pseudo instructions. Lower vsseg intrinsics to pseudo instructions in RISCVDAGToDAGISel. Differential Revision: https://reviews.llvm.org/D94688
-
Jonas Devlieghere authored
Upstream the eCore_arm_arm64e enum value in ArchSpec. All the other arm64e triple changes already landed in LLVM. Differential revision: https://reviews.llvm.org/D95110
-
Craig Topper authored
This should minimize change in a future patch.
-
Jonas Devlieghere authored
The modification time in the debug map is expressed using second precision, while the modification time returned by the filesystem could be more precise. Avoid spurious warnings about timestamp mismatches by truncating the modification time reported by the system to seconds.
-
Jim Ingham authored
Copy paste error, but the test still built on macOS. Weird. It failed on debian linux with an error about -fno-limit-debug-info not being a supported flag??? Not sure how this goof would cause that error, but let's see if it did...
-