- Jun 29, 2022
-
-
Luo, Yuanke authored
When we fill the shape to tile configure memory, the shape is gotten from AMX pseudo instruction. However the register for the shape may be split or spilled by greedy RA. That cause we fill the shape to config memory after ldtilecfg is executed, so that the shape configuration would be wrong. This patch is to split the tile register allocation from greedy register allocation, so that after tile registers are allocated the shape registers are still virtual register. The shape register only may be redefined or multi-defined by phi elimination pass, two address pass. That doesn't affect tile register configuration. Differential Revision: https://reviews.llvm.org/D128584
-
Rafael Auler authored
This reverts commit 425dda76. This commit is currently causing BOLT to crash in one of our binaries and needs a bit more checking to make sure it is safe to land.
-
Guozhi Wei authored
Replace the new generated virtual register number with a macro to avoid name mismatch due to different configuration of compiler.
-
Chris Bieneman authored
This removes the DirectX backend's usage of the MaybeAlign API removed in 1baf1fc2.
-
Walter Erquinigo authored
https://reviews.llvm.org/D128453 recently added some safety checks for command arguments. Unfortunately, some few commands started failing due to that, and this diff fixes it. But fortunately, the fix is trivial, which is simply declaring the argument that these commands will receive. Differential Revision: https://reviews.llvm.org/D128775
-
Craig Topper authored
Previously we iseled this to a pair of ADDIs and relied on a post isel peephole to fold one of the ADDIs into the load/store. Now we split the immediate in two parts the same way isel does and fold one of the pieces. If the add has a non-memory use it will emit two isels and larger one will CSE with the ADDI we created for the the memory use. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D128741
-
Walter Erquinigo authored
The current way ot traversing the cursor is a bit uncommon and it can't handle empty traces, in fact, its invariant is that it shold always point to a valid item. This diff simplifies the cursor API and allows it to point to invalid items, thus being able to handle empty traces or to know it ran out of data. - Removed all the granularity functionalities, because we are not actually making use of that. We can bring them back when they are actually needed. - change the looping logic to the following: ``` for (; cursor->HasValue(); cursor->Next()) { if (cursor->IsError()) { .. do something for error continue; } .. do something for instruction } ``` - added a HasValue method that can be used to identify if the cursor ran out of data, the trace is empty, or the user tried to move to an invalid position via SetId() or Seek() - made several simplifications to severals parts of the code. Differential Revision: https://reviews.llvm.org/D128543 -
Stanislav Mekhanoshin authored
It must use m0 only on GFX8. Later chips can use ang SGPR. Differential Revision: https://reviews.llvm.org/D128765
-
Fangrui Song authored
[Driver][ARM][AArch64] Use err_drv_unsupported_option_argument for -march=/-mcpu=/-mtune= diagnostics err_drv_clang_unsupported is for a Clang unsupported option (any value is rejected). err_drv_unsupported_option_argument is for an unsupported value (other values may be supported).
-
Philip Reames authored
-
River Riddle authored
`enableSplitting` simply enables/disables whether we should split or use the full buffer. `insertMarkerInOutput` toggles if split markers should be inserted in between prcessed output chunks. These options allow for merging the duplicate code paths we have when splitting is optional. Differential Revision: https://reviews.llvm.org/D128764
-
Philip Reames authored
This implements known bits for READ_VALUE using any information known about minimum and maximum VLEN. There's an additional assumption that VLEN is a power of two. The motivation here is mostly to remove the last use of getMinVLen, but while I was here, I decided to also fix the bug for VLEN < 128 and handle max from command line generically too. Differential Revision: https://reviews.llvm.org/D128758
-
Med Ismail Bennani authored
This patch changes the C++ `std::string` dataformatter to reflect internal layout changes following D128285. Now, in short-mode strings, in order to access the `__size_` and `__is_long_` attributes, we need to access a packed anonymous struct, which introduces another indirection. We need to do the same in order to access the `__cap_` field for long-mode strings. This should fix the various test failures that are happening on GreenDragon: https://green.lab.llvm.org/green/job/lldb-cmake/44918/ rdar://96010248 Differential Revision: https://reviews.llvm.org/D128694 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Fazlay Rabbi authored
This patch gives basic parsing and semantic support for "masked taskloop simd" construct introduced in OpenMP 5.1 (section 2.16.8) Differential Revision: https://reviews.llvm.org/D128693
-
Johannes Doerfert authored
The check lines are not referenced in RUN lines, hence useless. Differential Revision: https://reviews.llvm.org/D128685
-
Johannes Doerfert authored
When we appended check lines at the end we could not share prefixes before. This patch should make it possible and allow us to reduce some check line counts (especially for Clang/OpenMP tests). See also: https://reviews.llvm.org/D128686 Differential Revision: https://reviews.llvm.org/D128684
-
Corentin Jabot authored
This reverts commit 870b6d21. This seems to break some libc++ tests, reverting while investigating
-
Mariusz Borsa authored
This is a follow up to <LLVM reviews>/D127343, which was reverted due to test failures. There are differences in handling of stat64/statfs64 calls by sanitizers between Linux and macOS. Versions of macOS starting with 10.6 drop the stat64/statfs64 APIs completely, relying on the linker to redirect stat/statfs to the appropriate 64 bit versions. Emitting variables needed by sanitizers is thus controlled by convoluted sets of conditions, involving Linux, IOS, macOS and Android, sprinkled around files. This change clarifies it a bit, allowing to specify presence/absence of stat64/statfs64 for each platform, in a single location. Please note that I wasn't able to test this change on platforms other than macOS and Linux Fedora 34. The previous attempt has caused test failures but couldn't figure out the context. I have a vague suspicion that they were Android and perhaps Fuchsia builds - and some build involving ppc64le, I don't have hardware handy to attempt...
-
Martin Sebor authored
Extend the solution accepted in D127766 to strncmp and simplify strncmp(A, B, N) calls with constant A and B and variable N to the equivalent of N <= Pos ? 0 : (A < B ? -1 : B < A ? +1 : 0) where Pos is the offset of either the first mismatch between A and B or the terminating null character if both A and B are equal strings. Reviewed By: courbet Differential Revision: https://reviews.llvm.org/D128089
-
Martin Sebor authored
Enhance getConstantDataArrayInfo to let the memchr and memcmp library call folders look through arbitrarily long sequences of bitcast and GEP instructions. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D128364
-
Matthias Braun authored
Pass on the default target triple of the host clang to the LLVM builds within the `build_symbolizer.sh` script. Differential Revision: https://reviews.llvm.org/D128731
-
Matthias Braun authored
Remove the `ar_to_bc.sh` helper script in the compiler-rt symbolizer build. Instead use `llvm-link` directly as D81109 introduced the capability to read archives. I just needed to add a new flag `-ignore-non-bitcode` to avoid `llvm-link` aborting when it found a non-bitcode file in the archive. Differential Revision: https://reviews.llvm.org/D128729
-
Guozhi Wei authored
Add a new pattern A - (B + C) ==> (A - B) - C to give machine combiner a chance to evaluate which instruction sequence has lower latency. Differential Revision: https://reviews.llvm.org/D124564
-
LLVM GN Syncbot authored
-
Alexey Lapshin authored
This review is extracted from D96035. This patch adds possibility to keep not only DwarfStringPoolEntry, but also pointer to it. The DwarfStringPoolEntryRef keeps reference to the string map entry. String map keeps string data and corresponding DwarfStringPoolEntry info. Not all string map entries may be included into the result, and then not all string entries should have DwarfStringPoolEntry info. Currently StringMap keeps DwarfStringPoolEntry for all entries. It leads to extra memory usage. This patch allows to keep DwarfStringPoolEntry info only for entries which really need it. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D126883
-
Michael Jones authored
This patch adds %n to printf, as well as a compiler flag to disable it. This is due to it having serious security issues when misused. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D127517
-
Philip Reames authored
-
Alexey Bataev authored
If the root order itself does not require reordering, we can just remove its reorder mask safely (e.g., if the root node is a vector of phis). But if this node is used as an operand in the graph, we cannot delete the reordering, need to keep it. Otherwise the graph nodes are not synchronized with the operands. It may cause an extra gather instruction(s) or a compiler crash. Also, need to be very careful when selecting the gather nodes for reordering since there might several gather nodes with the same scalars and we can try to reorder just the same node many times instead of different nodes. Differential Revision: https://reviews.llvm.org/D128680
-
Slava Zakharin authored
Added new -lower-math-early option that defaults to 'true' that matches the current math lowering scheme. If set to 'false', the intrinsic math operations will be lowered to MLIR operations, which should potentially enable more MLIR optimizations, or libm calls, if there is no corresponding MLIR operation exists or if "precise" mode is requested. The generated math MLIR operations are then converted to LLVM dialect during codegen phase. The -lower-math-early option is not exposed to users currently. I plan to get rid of the "early" lowering completely, when "late" lowering is robust enough to support all math intrinsics that are currently supported via pgmath. So "late" mode will become default and -lower-math-early option will not be needed. This will effectively eliminate the mandatory dependency on pgmath in Fortran lowering, but this is WIP. Differential Revision: https://reviews.llvm.org/D128385
-
Corentin Jabot authored
Instead of dumping the string literal (which quotes it and escape every non-ascii symbol), we can use the content of the string when it is a 8 byte string. Wide, UTF-8/UTF-16/32 strings are still completely escaped, until we clarify how these entities should behave (cf https://wg21.link/p2361). `FormatDiagnostic` is modified to escape non printable characters and invalid UTF-8. This ensures that unicode characters, spaces and new lines are properly rendered in static messages. This make clang more consistent with other implementation and fixes this tweet https://twitter.com/jfbastien/status/1298307325443231744 :) Of note, `PaddingChecker` did print out new lines that were later removed by the diagnostic printing code. To be consistent with its tests, the new lines are removed from the diagnostic. Unicode tables updated to both use the Unicode definitions and the Unicode 14.0 data. U+00AD SOFT HYPHEN is still considered a print character to match existing practices in terminals, in addition of being considered a formatting character as per Unicode. Reviewed By: aaron.ballman, #clang-language-wg Differential Revision: https://reviews.llvm.org/D108469
-
Jacques Pienaar authored
Follow up with memref flipped and flipping any intermediate changes made.
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Michał Górny authored
Fix lldb-server in the non-stop + multiprocess mode to exit on vStopped only if all processes have exited, rather than when the first one exits. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128639
-
Michał Górny authored
Extend the most of baseline fork tests to run in nonstop mode as well. For more cases, we're just testing one example scenario to save time. This patch does not cover tests that rely on correct exit handling, as fixing that is addressed in a followup patch. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128638
-
Michał Górny authored
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128698
-
Louis Dionne authored
Otherwise, this breaks freestanding builds, where `main()` isn't mangled specially and we need to assume that we have a `int main(int, char**)` entry point in each test for things to work.
-
Arjun P authored
Also added test cases. Also extend support for `computeReprWithOnlyDivLocals` from `IntegerPolyhedron` to `IntegerRelation` and `PresburgerRelation`. Depends on D128736. Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D128737
-
Shilei Tian authored
This patch fixes the issue that P2P memcpy doesn't work. The root cause is we didn't set current context when calling the API function. In addition, a matrix to track the states of each pair of devices is also added such that we only need to query and configure the device once. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D122764
-
Arjun P authored
Also added test cases to test this. Both IntegerRelation::addLocalFloorDiv and the fixed implementation of subtraction need to compute division inequalities from dividend and divisor, so this also adds helper util functions to avoid duplicating this logic. Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D128736
-