- Jan 20, 2023
-
-
Joseph Huber authored
Right now in the linker wrapper we manually invoke a lot of the toolchain programs. This reproduces a lot of logic that is already handled in clang. Since D140158 we can now target all supported toolchains directly via cross-compilation. This patch changes the linker wrapper to consolidate all the alternate linking and assembler steps into a generic call to `clang` and let clang handle the argument handling. This heavily simplifies the interface. Reviewed By: tra, JonChesterfield Differential Revision: https://reviews.llvm.org/D142133
-
Krzysztof Drewniak authored
This reverts commit 45530562. Linker error, unbreak build while I work out how to fix it. Differential Revision: https://reviews.llvm.org/D142142
-
Gulfem Savrun Yeniceri authored
This patch replaces CallInstr with CallBase to cover InvokeInstr besides CallInstr while removing nocallback attribute on a call site. It also extends drop-attribute.ll test to include a case for an invoke instruction. Differential Revision: https://reviews.llvm.org/D141740
-
Arthur Eubanks authored
This reverts commit da5a8d14. Causes more duplicate symbol errors, see https://bugs.chromium.org/p/chromium/issues/detail?id=1408161.
-
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D142049
-
Erich Keane authored
As reported in https://github.com/llvm/llvm-project/issues/54524, and later in https://github.com/llvm/llvm-project/issues/60038, we were not properly implmenting temp.constr.atomic P3. This patch stops implicitly converting constraints to bool, and ensures the Rvalue conversion takes place as needed. Differential Revision: https://reviews.llvm.org/D141954
-
Florian Hahn authored
The scope of DT updates are very limited when unrolling loops: the DT should only need updating for * new blocks added * exiting blocks we simplified branches This can be done manually without too much extra work. MergeBlockIntoPredecessor also needs to be updated to support direct DT updates. This fixes excessive time spent in DTU for same cases. In an internal example, time spent in LoopUnroll with this patch goes from ~200s to 2s. It also is slightly positive for CTMark: * NewPM-O3: -0.13% * NewPM-ReleaseThinLTO: -0.11% * NewPM-ReleaseLTO-g: -0.13% Notable improvements are mafft (~ -0.50%) and lencod (~ -0.30%), with no workload regressed. https://llvm-compile-time-tracker.com/compare.php?from=78a9ee7834331fb4360457cc565fa36f5452f7e0&to=687e08d011b0dc6d3edd223612761e44225c7537&stat=instructions:u Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D141487
-
Matthias Springer authored
Upper bound and step size should be symbols instead of dims. Differential Revision: https://reviews.llvm.org/D142136
-
David Carlier authored
Reviewers: dvyukov Reviewed-By: dvyukov Differental Revision: https://reviews.llvm.org/D140688
-
Krzysztof Drewniak authored
Implement InferIntRangeInterface for all operations in the Index dialect. The inference implementation, unlike the one for Arith, accounts for the fact that Index can be either 64 or 32 bits long by evaluating both cases. Bounds are stored as if index were i64, but when inferring new bounds, we compute both f(...) and f(trunc(...)). We then compare trunc(f(...)) to f(trunc(...)). If they are equal in the relevant range components, we use the 64-bit range computation, otherwise we give the range ext(f(trunc(...))) union f(...). Note that this can cause surprising behavior as seen in the tests, where, for example, the order of min and max operations impacts the behavior of the inference. The inference could perhaps be made more precise in the future (ex. by tracking 32 and 64-bit results separately and having them influence each other somehow) butt, since my project targets an index=i32 platform and doesn't see index-valued values > uint32_max, I'm not too concerned about it. Depends on https://reviews.llvm.org/D141299 Depends on https://reviews.llvm.org/D141296 Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D140899
-
Xing Xue authored
Summary: This patch adds OpenMP runtime to the linker command line if -fopenmp is specifed for AIX. Reviewed by: daltenty Differential Revision: https://reviews.llvm.org/D141862
-
v1nh1shungry authored
Current version there is a fix-it for template <class> constexpr int x = 0; template <> constexpr int x<int>; // fix-it here but it will cause template <> constexpr int x = 0<int>; Differential Revision: https://reviews.llvm.org/D139705
-
Paul Robinson authored
This reverts commit a0f8bdbb. Several bots are failing in shtest-format.py, likely because of this.
-
Slava Zakharin authored
Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D142070
-
Aaron Ballman authored
The std::optional implementation in MSVC causes this code to produce a sign comparison warning. This ensures the types are the same sign.
-
Michael Jones authored
This patch adds the %f/F/e/E/g/G/a/A conversions for scanf, as well as accompanying tests. This implementation matches the definition set forth in the standard, which may conflict with some other implementations. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D141091
-
Michael Jones authored
The scanf implementation needs a dynamically resizing string class. This patch adds a minimal version of that class along with tests to check the current functionality. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D141162
-
Kiran Chandramohan authored
-> Use file pathname from the Flang frontend. It is the frontend that is in-charge of finding the files and is hence the canonical source for paths. -> Convert pathname to absolute pathname while creating the moduleOp. Co-authored-by:
Peter Klausler <pklausler@nvidia.com> Reviewed By: PeteSteinfeld, vzakhari, jeanPerier, awarzynski Differential Revision: https://reviews.llvm.org/D141674
-
Mark de Wever authored
Implements parts of - P2286R8 Formatting Ranges Depends on D140653 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D141761
-
LLVM GN Syncbot authored
-
Zino Benaissa authored
shuffle_vector instructions are serialized targeting SVE fixed vectors, see https://reviews.llvm.org/D139111. This patch disables optimizeExtendOrTruncateConversion peepholes that generates shuffle_vector. Differential Revision: https://reviews.llvm.org/D141439
-
Sjoerd Meijer authored
-
Mark de Wever authored
Implements parts of - P2286R8 Formatting Ranges Depends on D140653 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D141290
-
Jonas Paulsson authored
Only allow replacements of nodes that have a single user. This is better as simple instructions (e.g. XGRK) are one cycle faster, and it helps in cases where both inputs share a common node. Review: Ulrich Weigand
-
Jordan Rupprecht authored
-
Jordan Rupprecht authored
This corresponds to the cmake change in 81ca5aa4
-
Paul Robinson authored
AFAICT all in-tree lit tests have been converted to use `target=...` and so there is no longer any need for triples being special. Some project config files still define their own features based on the triple, but those are normal feature words (although now are redundant with target= checks). Downstream tests that use triple substrings will need to convert. For example: UNSUPPORTED: -aix XFAIL: arm becomes UNSUPPORTED: target={{.*}}-aix{{.*}} XFAIL: target=arm{{.*}} You can do git log --grep "special handling for triples" to find many examples of updates to the upstream tests. https://discourse.llvm.org/t/rfc-lits-requires-and-triples/66041 Differential Revision: https://reviews.llvm.org/D141007 -
Valentin Clement authored
Pointer association to unlimited polymorphic target is allowed for unlimited polymorphic pointer and non-extensible derived-type. This is checked by the semantic and this patch allows it in the fir.rebox operation. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D142104
-
Valentin Clement authored
Result must carry the polymorphic type information from the source. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D142095
-
Valentin Clement authored
CLASS DEFAULT needs to be the last attribute when fir.select_type op is created. It needs to be at its actual position in the Fortran code when the TypeGuardStmt are processed. The current lowering was crashing when CLASS DEFAULT was not at the last position. This patch fixes the issue by tracking the actual position of the CLASS DEFAULT type guard and set it at the correct position after the fir.select_type op is created. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D142091
-
LLVM GN Syncbot authored
-
Mark de Wever authored
Implements parts of - P2286R8 Formatting Ranges - P2585R0 Improving default container formatting Depends on D140651 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D140653
-
Nikita Popov authored
By switching to --check-globals. Also make sure that the !tbaa.struct metadata mapping is preserved.
-
Haojian Wu authored
-
Matt Devereau authored
Expanding upon https://reviews.llvm.org/D138203, allow null indices in InsertElts to be matched with any value and be duplicated if the fixed vector the scalar values are inserted into is poison, and the scalable vector the subvector being inserted into is poison. Differential Revision: https://reviews.llvm.org/D141846
-
- Jan 19, 2023
-
-
Yitzhak Mandelbaum authored
Currently, the code assumes that all boolean-typed values are an instance of `BoolValue` (or its subclasses). Yet, lvalues violate this assumption. This patch drops the assumption and strengthens the check to confirm the shape of both values being joined. The patch also notes as FIXMES a number of problems discovered fixing this bug. Differential Revision: https://reviews.llvm.org/D141709
-
Jean Perier authored
Compare to other component ref lowering, the hlfir.designate result type computation is different, and the allocatable/pointer/contiguous must be set on the hlfir.designate so that the component attributes are kept in the IR. Differential Revision: https://reviews.llvm.org/D142111
-
Nikita Popov authored
If we're only changing the type of the load, preserve the noundef metadata.
-
Kelvin Li authored
This patch is to diagnose the case when a type bound procedure is passed as an actual procedure argument. call sub0(t%t3%t2%t%info1) Fix: https://github.com/llvm/llvm-project/issues/55826 Committed on behalf of DanielCChen Differential Revision: https://reviews.llvm.org/D141506
-
Nikita Popov authored
The !noundef metadata is currently dropped.
-