- Sep 30, 2021
-
-
Florian Mayer authored
Reviewed By: hctim Differential Revision: https://reviews.llvm.org/D110791
-
Sanjay Patel authored
This is a more complex pattern than we handled with the initial patch for PR51245: D110342 / 09e71c36 We could extend the logic matching to allow a setcc as one operand and an extract of vector setcc (or even an arbitrary bool?) as the other.
-
Kiran Chandramohan authored
Add pinned attributes and speicifc builders. The pinned attribute helps mark those allocas in OpenMP regions that should not be hoisted out by an alloca hoisting pass. This patch is part of the upstreaming effort from fir-dev branch. Coming from PR: https://github.com/flang-compiler/f18-llvm-project/pull/1065 Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D110815 Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Louis Dionne authored
Apple's libc++ has a few differences with the LLVM libc++, and it is necessary to use a custom configuration file to test it properly. Differential Revision: https://reviews.llvm.org/D110777
-
Valentin Clement authored
Remove unused code from FIROps.td file after latest patches. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D110814
-
Kirill Bobyrev authored
-
Anna Thomas authored
After rG452714f8, the Function `F` retrieved in LoopPredication is not used. Remove this unused variable to stop some buildbots (ASAN, clang-ppc) from failing.
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Jakub Kuderski authored
Add usage samples. This was extracted from a bigger patch: https://reviews.llvm.org/D107378. Reviewed By: aaron.ballman, gchatelet Differential Revision: https://reviews.llvm.org/D110760
-
Valentin Clement authored
Move parser and printer to the .cpp file. Follow up to https://reviews.llvm.org/D110626. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110828
-
Anna Thomas authored
This is analogous to D86156 (which preserves "lossy" BFI in loop passes). Lossy means that the analysis preserved may not be up to date with regards to new blocks that are added in loop passes, but BPI will not contain stale pointers to basic blocks that are deleted by the loop passes. This is achieved through BasicBlockCallbackVH in BPI, which calls eraseBlock that updates the data structures in BPI whenever a basic block is deleted. This patch does not have any changes in the upstream pipeline, since none of the loop passes in the pipeline use BPI currently. However, since BPI wasn't previously preserved in loop passes, the loop predication pass was invoking BPI *on the entire function* every time it ran in an LPM. This caused massive compile time in our downstream LPM invocation which contained loop predication. See updated test with an invocation of a loop-pipeline containing loop predication and -debug-pass turned ON. Reviewed-By: asbirlea, modimo Differential Revision: https://reviews.llvm.org/D110438
-
Valentin Clement authored
Move verifier code to the .cpp file. Follow up to https://reviews.llvm.org/D110626. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110826
-
Valentin Clement authored
Move fir.freemem and fir.store to the Memory SSA operations sections. Move parser, printer and verifier of fir.store to the .cpp file. This patch is part of the upstreaming effort from fir-dev branch. Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110816
-
Alex Zinenko authored
Previously, the dialect was exposed for linking and pass management purposes, but we did not generate op classes for it. Generate them. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D110819
-
David Green authored
This adds a few more unpredicated intrinsics to sink splats to, in order to create more qr instruction variants. Notably this includes saddsat/uaddsat but also some of the unpredicated mve intrinsics. Differential Revision: https://reviews.llvm.org/D110333
-
Brock Wyma authored
Map Fortran95 sources to Fortran so the CodeView language is not emitted as MASM. Differential Revision: https://reviews.llvm.org/D110330
-
Guillaume Chatelet authored
-
Kirill Bobyrev authored
This time, use llvm::sys::fs::UniqueID instead of unstable FileEntry::getName(), this should solve the problems on Windows and elsewhere.
-
Adrian Kuegel authored
-
Roman Lebedev authored
-
Amara Emerson authored
-
Nemanja Ivanovic authored
When a user specifies an out-of-range index for vec_insert, we just produce IR that has undefined behaviour even though the documentation states that modulo arithmetic is used. This patch just truncates the value to a valid index.
-
Valentin Clement authored
Move the parser, printer, verifier and builder out of the .td file. Rename lenparams to typeparams to be in sync with fir-dev. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: rovka Differential Revision: https://reviews.llvm.org/D110690
-
Balazs Benics authored
This patch aims to address the comment of a previous review: https://reviews.llvm.org/D109237#inline-1040678 The original problem was the following: `T` is substituted by `clang::Type` Expected<T *> import(T *From) { auto ToOrErr = Importer.Import(From); // ^^^^^^^^^^^^^^^^^^^^^ if (!ToOrErr) return ToOrErr.takeError(); return cast_or_null<T>(*ToOrErr); // ^^^^^^^^^^^^^^^^^^^^^^^^^ } `Importer.Import()` operates on `const Type *`, thus returns `const Type *`. Later, at the return statement, we will try to construct an `Expected<Type*>` from a `const Type *`, which failed with a miserable error message. In all other cases `importer.Import()` results in a non-const version, so everything works out just fine, but for `clang::type`s, we should really return a const version. So, in case of `T` is a subclass of `clang::Type`, it will return a `Exprected<const T*>` instead. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D109269
-
Kirill Bobyrev authored
This reverts commits - dd13f45e - d084c42b - 87817bc5
-
Valentin Clement authored
Move the parsers, printers and builders from the TableGen file to the .cpp file. Remaining parsers, printers and builders will be moved when we update the operations. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D110626
-
Eric Schweitz authored
Update the fir.alloca operation. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D110415 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Valentin Clement authored
Updatet the fir.allocmem operation. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D110412 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
LLVM GN Syncbot authored
-
Jingu Kang authored
This reverts the revert commit c07f7099 with bug fixes. Differential Revision: https://reviews.llvm.org/D109963
-
Eric Schweitz authored
Move coor operand from variadic values to ArrayAttr. Update assembly format. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D110652 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Jay Foad authored
If the old instructions mentioned a subreg that the new instructions do not, remove the subrange for that subreg. For example, in TwoAddressInstructionPass::eliminateRegSequence, if a use operand in the REG_SEQUENCE has the undef flag then we don't generate a copy for it so after the elimination there should be no live interval at all for the corresponding subreg of the def. This is a small step towards switching TwoAddressInstructionPass over from LiveVariables to LiveIntervals. Currently this path is only tested if you explicitly enable -early-live-intervals. Differential Revision: https://reviews.llvm.org/D110542
-
Eric Schweitz authored
Add typeparams to fir.array_update, fir.array_fetch and fir.array_merge_store operations. Add optional slice operands to fir.array_merge_store op. Move verifiers to cpp file. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D110701 Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Kirill Bobyrev authored
-
Andrzej Warzynski authored
-
Marek Kurdej authored
-
Alex Zinenko authored
This is an important core dialect that has not been exposed previously. Set up the default bindings generation and provide a nicer wrapper for the `for` loop with access to the loop configuration and body. Depends On D110758 Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D110759
-
Alex Zinenko authored
Without this change, these attributes can only be accessed through the generic operation attribute dictionary provided the caller knows the special operation attribute names used for this purpose. Add some Python wrapping to support this use case. Also provide access to function arguments usable inside the function along with a couple of quality-of-life improvements in using block arguments (function arguments being the arguments of its entry block). Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D110758
-