- Sep 30, 2021
-
-
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
-
Clement Courbet authored
The information can be implicit (from `ValueTracking`) or explicit. This implements the backend part of the following RFC https://groups.google.com/g/llvm-dev/c/T9o51zB1JY. We still need to settle on how to best represent the information in the IR, but this is a separate discussion. Differential Revision: https://reviews.llvm.org/D109746
-
Kirill Bobyrev authored
D110711 will fix the bug on Windows side and allows me to reland this patch. Also land e5077118 on top of it.
-
Wenlei He authored
We used the segment alignment in elf header to assume the loader alignment. However this is incorrect because loader alignment is always the same as page size. If segment needs to be aligned at load time, linker will set aligned address as virtual address in elf header. Differential Revision: https://reviews.llvm.org/D110795
-
Wenlei He authored
This change enables llvm-profgen to take raw perf data as alternative input format. Sometimes we need to retrieve evenets for processes with matching binary. Using perf data as input allows us to retrieve process Ids from mmap events for matching binary, then filter by process id during perf script generation. Differential Revision: https://reviews.llvm.org/D110793
-
Wenlei He authored
This change contains diagnostics improvments, refactoring and preparation for consuming perf data directly. Diagnostics: - We now have more detailed diagnostics when no mmap is found. - We also print warning for abnormal transition to external code. Refactoring: - Simplify input perf trace processing to only allow a single input file. This is because 1) using multiple input perf trace (perf script) is error prone because we may miss key mmap events. 2) the functionality is not really being used anyways. - Make more functions private for Readers, move non-trivial definitions out of header. Cleanup some inconsistency. - Prepare for consuming perf data as input directly. Differential Revision: https://reviews.llvm.org/D110729
-
Frederic Cambus authored
Reviewed By: NoQ Differential Revision: https://reviews.llvm.org/D110763
-
Chris Lattner authored
-
Chris Lattner authored
The former is redundant because the later carries it as part of its builder. Add a getContext() helper method to DialectAsmParser to make this more convenient, and stop passing the context around explicitly. This simplifies ODS generated parser hooks for attrs and types. This resolves PR51985 Recommit 4b32f8ba after fixing a dependency. Differential Revision: https://reviews.llvm.org/D110796
-
Chris Lattner authored
This is (perhaps unintuitively) where the other AsmParser method implementations are, which means that dialects don't generally need to depend on MLIRParser directly. This should fix a build failure building .so files on the mlir-nvidia builder.
-
Mehdi Amini authored
This reverts commit 4b32f8ba. Seems like the build is broken with -DDBUILD_SHARED_LIBS=ON
-
Chris Lattner authored
The former is redundant because the later carries it as part of its builder. Add a getContext() helper method to DialectAsmParser to make this more convenient, and stop passing the context around explicitly. This simplifies ODS generated parser hooks for attrs and types. This resolves PR51985 Differential Revision: https://reviews.llvm.org/D110796
-
Jim Ingham authored
The issue here was that we were not updating the interpreter's execution context when calling HandleCommand to continue the process. Since we had just created the process, it wasn't in the interpreter's execution context so HandleCommand failed at CheckRequirements. The patch fixes that by passing the process execution context directly to HandleCommand. Differential Revision: https://reviews.llvm.org/D110787
-