- Jun 29, 2022
-
-
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
-
Sam McCall authored
This reverts commit a0f4c10a. This commit hadn't been reviewed yet, and was unintentionally included on another branch.
-
Leonard Chan authored
This moves some code for getting PC and SP into their own functions. Since SP is also retrieved in the prologue and getting the stack tag, we can cache the SP if we get it once in the prologue. This caching will really only be relevant in D128387 where StackBaseTag may not be set in the prologue if __hwasan_tls is not used. Differential Revision: https://reviews.llvm.org/D128551
-
Sam McCall authored
This makes the list formation a bit simpler.
-
Sam McCall authored
The idea is: - a parse failure is detected when all heads die when trying to shift the next token - we can recover by choosing a nonterminal we're partway through parsing, and determining where it ends through nonlocal means (e.g. matching brackets) - we can find candidates by walking up the stack from the (ex-)heads - the token range is defined using heuristics attached to grammar rules - the unparsed region is represented in the forest by an Opaque node This patch has the core GLR functionality. It does not allow recovery heuristics to be attached as extensions to the grammar, but rather infers a brace-based heuristic. Expected followups: - make recovery heuristics grammar extensions (depends on D127448) - add recover to our grammar for bracketed constructs and sequence nodes - change the structure of our augmented `_ := start` rules to eliminate some special-cases in glrParse. - (if I can work out how): avoid some spurious recovery cases described in comments - grammar changes to eliminate the hard distinction between init-list and designated-init-list shown in the recovery-init-list.cpp testcase Differential Revision: https://reviews.llvm.org/D128486
-
Konstantin Varlamov authored
- P1252 ("Ranges Design Cleanup") -- deprecate `move_iterator::operator->` starting from C++20; add range comparisons to the `<functional>` synopsis. This restores `move_iterator::operator->` that was incorrectly deleted in D117656; it's still defined in the latest draft, see http://eel.is/c++draft/depr.move.iter.elem. Note that changes to `*_result` types from 6.1 in the paper are no longer relevant now that these types are aliases; - P2106 ("Alternative wording for GB315 and GB316") -- add a few `*_result` types to the synopsis in `<algorithm>` (some algorithms are not implemented yet and thus some of the proposal still cannot be marked as done); Also mark already done issues as done (or as nothing to do): - P2091 ("Fixing Issues With Range Access CPOs") was already implemented (this patch adds tests for some ill-formed cases); - LWG 3247 ("`ranges::iter_move` should perform ADL-only lookup of `iter_move`") was already implemented; - LWG 3300 ("Non-array ssize overload is underconstrained") doesn't affect the implementation; - LWG 3335 ("Resolve C++20 NB comments US 273 and GB 274") was already implemented; - LWG 3355 ("The memory algorithms should support move-only input iterators introduced by P1207") was already implemented (except for testing). Differential Revision: https://reviews.llvm.org/D126053 -
Jim Ingham authored
needs to be marked skip if out of tree debugserver.
-
Craig Topper authored
The pass was previously limited to LUI+ADDI being used by a single instruction. This patch allows the pass to optimize multiple memory operations that use the same offset. Each of them will receive a separate %lo relocation. My main motivation is to handle a read-modify-write where we have a load and store to the same address, but I didn't restrict it to that case. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D128599
-
Groverkss authored
-
Michael Jones authored
The unit tests introduced in patch D128335 are causing build failures, and the fix is non-trivial. This patch disables these tests temporarily until a proper fix can be implemented. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D128746
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Groverkss authored
Currently, in the Presburger library, we use the words "variables" and "identifiers" interchangeably. This patch changes this to only use "variables" to refer to the variables of PresburgerSpace. The reasoning behind this change is that the current usage of the word "identifier" is misleading. variables do not "identify" anything. The information attached to them is the actual "identifier" for the variable. The word "identifier", will later be used to refer to the information attached to each variable in space. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D128585
-
Muiez Ahmed authored
This patch is to enable exception handling on the z/OS platform that is compatible with the existing z/OS runtime. No functionality of libcxxabi has been changed for other platforms. With this patch the hope is we can add z/OS as a platform to perform testing on any C++ ABI changes. There is a primary difference for the z/OS implementation. On z/OS the thrown object is added to a linked list of caught and uncaught exceptions. The unwinder uses the top one as the current exception it is trying to find the landing pad for. We have to pop the top exception after we get it’s landing pad for our unwinder to correctly get any subsequent rethrows or nested exception calls. Differential Revision: https://reviews.llvm.org/D99913
-