This project is mirrored from https://github.com/llvm-doe-org/llvm-project.git.
Pull mirroring updated .
- 28 Jun, 2022 40 commits
-
-
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
-
Peter Klausler authored
If BIND(C) appears on an internal procedure, it must have a null binding label, i.e. BIND(C,NAME=""). Also address conflicts with D127725 which was merged during development. Differential Revision: https://reviews.llvm.org/D128676
-
Ben Langmuir authored
Broke compiler-rt on Darwin: https://green.lab.llvm.org/green/job/clang-stage1-RA/29920/ This reverts commit 527ef8ca.
-
Stella Stamenova authored
This is already partially the case, but we can rely more heavily on interface libraries and how they are imported/exported in other to simplify the implementation of the mlir python functions in Cmake. This change also makes a couple of other changes: 1) Add a new CMake function which handles "pure" sources. This was done inline previously 2) Moves the headers associated with CAPI libraries to the libraries themselves. These were previously managed in a separate source target. They can now be added directly to the CAPI libraries using DECLARED_HEADERS. 3) Cleanup some dependencies that showed up as an issue during the refactor This is a big CMake change that should produce no impact on the build of mlir and on the produced *build tree*. However, this change fixes an issue with the *install tree* of mlir which was previously unusable for projects like torch-mlir because both the "pure" and "extension" targets were pointing to either the build or source trees. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D128230
-
Mehdi Amini authored
These were abbreviated when parsing, but not when printing. Reviewed By: Mogball, rriddle Differential Revision: https://reviews.llvm.org/D128720
-
Yuanfang Chen authored
Missed this in 14d3021c
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Michael Jones authored
This patch fixes the problem the bots were having with the algorithm test not including pthreads correctly. They will likely need a manual forced clean build for this to take effect. Differential Revision: https://reviews.llvm.org/D128742
-
Philip Reames authored
-
Nicolas Vasilache authored
This pattern can kick in when the source of the broadcast has a shape that is a prefix/suffix of the result of the shape_cast. Differential Revision: https://reviews.llvm.org/D128734
-
Alexey Lapshin authored
This patch is extracted from D86539. Current implementation of lookForDIEsToKeep() function skips types duplications basing on the getCanonicalDIEOffset() data: ``` if (AttrSpec.Form != dwarf::DW_FORM_ref_addr && (UseOdr || IsModuleRef) && Info.Ctxt && Info.Ctxt != ReferencedCU->getInfo(Info.ParentIdx).Ctxt && Info.Ctxt->getCanonicalDIEOffset() && isODRAttribute(AttrSpec.Attr)) <<<<< continue; ``` But that field is set after all compile units inside object file are processed: ``` for (auto &CurrentUnit : OptContext.CompileUnits) lookForDIEsToKeep(.., &CurrentUnit, ..); // check CanonicalDIEOffset DIECloner.cloneAllCompileUnits(); // set CanonicalDIEOffset ``` Thus, if the object file contains several compilation units - types would not be deduplicated. The above solution works well for the case when the object file contains only one compilation unit. But if the object file contains several compilation units then types would not be deduplicated between these compilation units. This patch changes the algorithm so that types were deduplicated between compilation units from the same object file. It produces binary incompatible output for the cases when several compilation units are located inside the same object file. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D125469
-
Mehdi Amini authored
-