- Jan 05, 2022
-
-
wren romano authored
This moves a bunch of helper functions from `Transforms/SparseTensorConversion.cpp` into `Transforms/CodegenUtils.{cpp,h}` so that they can be reused by `Transforms/Sparsification.cpp`, etc. See also the dependent D115010 which cleans up some corner cases in this change. Reviewed By: aartbik, rriddle Differential Revision: https://reviews.llvm.org/D115008 -
Henry Linjamäki authored
Consider case where `__int128` type is supported by the host target but not by a device target (e.g. spirv*). Clang emits an error message for unsupported type even if the device code does not use it. This patch fixes this issue by emitting the error message when the device code attempts to use the unsupported type. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D111047
-
Sumanth Gundapaneni authored
Ideally we should make USR as Def for these floating point instructions. However, it violates some assembler MCChecker rules. This patch fixes the issue by marking these FP instructions as non-sinkable.
-
SANTANU DAS authored
This patch aids to reduce code size since it removes generation of back-to-back A2_tfrsi instructions. It is enabled only at -Os/-Oz.
-
Krzysztof Parzyszek authored
-
Jacques Pienaar authored
If a fusedloc is created with a single location then no fusedloc was previously created and single location returned instead. In the case where there is a metadata associated with the location this results in discarding the metadata. Instead only canonicalize where there is no loss of information. Differential Revision: https://reviews.llvm.org/D115605
-
Fangrui Song authored
Similar to ELF 3a5fb573. * previously when a LazyObjFile was extracted, a new ObjFile/BitcodeFile was created; now the file is reused, just with `lazy` cleared * avoid the confusing transfer of `symbols` from LazyObjFile to the new file * simpler code, smaller executable (5200+ bytes smaller on x86-64) * make eager parsing feasible (for parallel section/symbol table initialization) Reviewed By: aganea, rnk Differential Revision: https://reviews.llvm.org/D116434
-
Nikolas Klauser authored
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Add `indirectly_comparable` concept Reviewed By: Quuxplusone, Mordante, #libc Spies: mgorny, libcxx-commits Differential Revision: https://reviews.llvm.org/D116268
-
Brendon Cahoon authored
-
V Donaldson authored
F18 constraint C1308 is: For the G edit descriptor, e shall not be specified if w is zero. For an edit descriptor such as 'G0.2E4', change the error message from: error: Unexpected 'e' in 'G0' edit descriptor To: error: A 'G0' edit descriptor must not have an 'e' value
-
Arthur O'Dwyer authored
`__cpp_lib_type_identity` was implemented way back in cf49ccd0 (Clang 8), probably before the feature-test macro had been settled on. `__cpp_lib_string_resize_and_overwrite` will be added by D113013 so I didn't add it here. Fixes #46605. Differential Revision: https://reviews.llvm.org/D116433
-
Arthur O'Dwyer authored
For example, `std::ranges::range<Holder<Incomplete>*>` should be well-formed false, not a hard error at compile time. Differential Revision: https://reviews.llvm.org/D116239
-
Arthur O'Dwyer authored
Reviewed as part of D116239.
-
Harsha Jagasia authored
For code below: { r7 = addasl(r3,r0,#2) r8 = addasl(r3,r2,#2) r5 = memw(r3+r0<<#2) r6 = memw(r3+r2<<#2) } { p1 = cmp.gtu(r6,r5) if (p1.new) memw(r8+#0) = r5 if (p1.new) memw(r7+#0) = r6 } { r0 = mux(p1,r2,r4) } In packetizer, a new packet is created for the cmp instruction since there arent enough resources in previous packet. Also it is determined that the cmp stalls by 2 cycles since it depends on the prior load of r5. In current packetizer implementation, the predicated store is evaluated for whether it can go in the same packet as compare, and since the compare stalls, the stall of the predicated store does not matter and it can go in the same packet as the cmp. However the predicated store will stall for more cycles because of its dependence on the addasl instruction and to avoid that stall we can put it in a new packet. Improve the packetizer to check if an instruction being added to packet will stall longer than instruction already in packet and if so create a new packet. -
Zequan Wu authored
This allows access type be printed when running `lldb-test -dump-ast` and `lldb-test -dump-clang-ast`. Differential Revision: https://reviews.llvm.org/D115062
-
SANTANU DAS authored
When checking resources in the post RA scheduler, see if a .new vector store should be used instead of a regular vector store. It may not be possible to schedule a regular vector store, but it may be possible to schedule a .new version. If the correct one isn't used, then the post RA scheduler may not generate the best schedule.
-
Arthur O'Dwyer authored
The big change here is that they now work as intended for rvalues, e.g. `ranges::cbegin(std::string_view("hello"))`. Also, add tests verifying their return types. Differential Revision: https://reviews.llvm.org/D116199 -
Ikhlas Ajbar authored
Co-authored-by:Sumanth Gundapaneni <sgundapa@quicinc.com>
-
Arthur O'Dwyer authored
-
Arthur O'Dwyer authored
If `__first == __middle`, then `partial_sort` is a no-op; don't bother to iterate all the way from `__middle` to `__end`. Fixes #49431. Differential Revision: https://reviews.llvm.org/D116296
-
Yuanfang Chen authored
61700724 introduced the use of ActOnDependentMemberExpr with variable template specialization. The assertion inside ActOnDependentMemberExpr should be adjusted accordingly. Fixes https://bugs.llvm.org/show_bug.cgi?id=47211 Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D113146
-
David Goldman authored
We suggest inserting the method with an empty body at the end of the implementation decl. Differential Revision: https://reviews.llvm.org/D116417
-
Benjamin Kramer authored
-
Craig Topper authored
Unsigned compares work with either zero extended or sign extended inputs just like equality comparisons. I didn't allow this when I refactored the code in D116421 due to lack of tests. But I've since found a simple C test case that demonstrates when this can be useful. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D116617
-
Sumanth Gundapaneni authored
If there are multiple uses of the def of COPY/REG_SEQUENCE, set the latency only if the latencies on all the uses are equal, otherwise set it to default.
-
Jack Andersen authored
D111404 moved a 4/8 byte check assert into a block taken by 2-byte platforms. Since these platforms do not take the branches where the pointer size is used, sink the assert accordingly. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D116480
-
Benjamin Kramer authored
This allows clang to flag unused Values in more cases, so remove them.
-
Philip Reames authored
-
Paul Robinson authored
Follow-up to b8e03be8. Even if Clang's generic default DWARF version bumps up, PS4 will stay on v4.
-
Philip Reames authored
-
Brendon Cahoon authored
The HexagonVectorCombine pass was moving an instruction incorrectly, which caused a use in a GEP that was not yet defined. HexagonVectorCombine removes a load from a group due to its dependences, but in realignGroup, the load is processed anyways. In realignGroup, when determining the maximum alignment, only those instructions still in the group should be considered.
-
Louis Dionne authored
AFAICT, Cpp17InputIterators are not required to be default constructible, since that requirement is added in Cpp17ForwardIterator. Hence, our archetype for Cpp17InputIterator should not be default constructible. Removing that constructor has a ripple effect on a couple of tests that were making incorrect assumptions. Notably: - Some tests were using cpp17_input_iterator as a sentinel for itself. That is not valid, because a cpp17_input_iterator is not semiregular anymore after the change (and hence it doesn't satisfy sentinel_for). - Some tests were using a stride-counted cpp17_input_iterator as the sentinel for a range. This doesn't work anymore because of the problem above, so these tests were changed not to check stride counts for input iterators. - Some tests were default constructing cpp17_input_iterator when a simple alternative was available -- those have been changed to use that alternative. Differential Revision: https://reviews.llvm.org/D115806
-
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D116481
-
Tasmia Rahman authored
The code for constructing a 32-bit constant from 4 8-bit constants has a typo and uses one of the constants twice
-
Arthur O'Dwyer authored
libstdc++'s implementation diagnoses these with hard errors. Fixes #50059. Differential Revision: https://reviews.llvm.org/D116293
-
Stella Laurenzo authored
I considered multiple approaches for this but settled on this one because I could make the lifetime management work in a reasonably easy way (others had issues with not being able to cast to a Python reference from a C++ constructor). We could stand to have more formatting helpers, but best to get the core mechanism in first. Differential Revision: https://reviews.llvm.org/D116568
-
Krzysztof Parzyszek authored
Co-authored-by:
Anirudh Sundar Subramaniam <quic_sanirudh@quicinc.com> Co-authored-by:
Sumanth Gundapaneni <sgundapa@quicinc.com>
-
Mark de Wever authored
Some headers which require the version header depend on other headers to provide it. Include the version header in all top-level headers to make sure a header cleanup can't remove the version header. Note this doesn't add the version header to the c headers. Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D116172
-