|
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1 |
|
| #
e8a73906 |
| 20-Sep-2024 |
Chuanqi Xu <yedeng.yd@linux.alibaba.com> |
[mlir] [LLVM IR] Introduce VaArgOp (#109260)
I find there is no LLVMOp corresponding to LLVM's [va_arg
instruction](https://llvm.org/docs/LangRef.html#va-arg-instruction) so I
tried to add one. Th
[mlir] [LLVM IR] Introduce VaArgOp (#109260)
I find there is no LLVMOp corresponding to LLVM's [va_arg
instruction](https://llvm.org/docs/LangRef.html#va-arg-instruction) so I
tried to add one. This is helpful for clangir
(https://github.com/llvm/clangir/pull/865).
New to MLIR and not sure who are the appropriate reviewers. Appreciated
in ahead for reviewing and triaging.
show more ...
|
|
Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3 |
|
| #
ab7dba23 |
| 27-Mar-2024 |
Alex Voicu <alexandru.voicu@amd.com> |
[CodeGen][LLVM] Make the `va_list` related intrinsics generic. (#85460)
Currently, the builtins used for implementing `va_list` handling
unconditionally take their arguments as unqualified `ptr`s i
[CodeGen][LLVM] Make the `va_list` related intrinsics generic. (#85460)
Currently, the builtins used for implementing `va_list` handling
unconditionally take their arguments as unqualified `ptr`s i.e. pointers
to AS 0. This does not work for targets where the default AS is not 0 or
AS 0 is not a viable AS (for example, a target might choose 0 to
represent the constant address space). This patch changes the builtins'
signature to take generic `anyptr` args, which corrects this issue. It
is noisy due to the number of tests affected. A test for an upstream
target which does not use 0 as its default AS (SPIRV for HIP device
compilations) is added as well.
show more ...
|
|
Revision tags: llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
| #
7d5b4ebb |
| 04-Jul-2023 |
Christian Ulmann <christian.ulmann@nextsilicon.com> |
[mlir][LLVM] Stop importing module location for all unknown locs
This commit changes the LLVM IR import to use UnkownLoc for missing debug locations. This change ensures that we do not accidentially
[mlir][LLVM] Stop importing module location for all unknown locs
This commit changes the LLVM IR import to use UnkownLoc for missing debug locations. This change ensures that we do not accidentially introduce faulty locations that can influence debugging post export.
This behavior change is not applied to locations of global metadata operations, as their location will not be exported.
Reviewed By: gysit
Differential Revision: https://reviews.llvm.org/D154416
show more ...
|
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3 |
|
| #
8cf970fa |
| 24-Apr-2023 |
Victor Perez <victor.perez@codeplay.com> |
[mlir][llvm][test] Move exception-related tests to their own file
Move mlir-translate exception-related tests from basic.ll to exception.ll.
Signed-off-by: Victor Perez <victor.perez@codeplay.com>
[mlir][llvm][test] Move exception-related tests to their own file
Move mlir-translate exception-related tests from basic.ll to exception.ll.
Signed-off-by: Victor Perez <victor.perez@codeplay.com>
Differential Revision: https://reviews.llvm.org/D149043
show more ...
|
|
Revision tags: llvmorg-16.0.2 |
|
| #
be717f0a |
| 14-Apr-2023 |
Victor Perez <victor.perez@codeplay.com> |
[mlir][llvm] Handle invoke op branching to block with its result as an argument
In LLVM, having an invoke instruction branching to a block with a phi node receiving the invoke instruction result as
[mlir][llvm] Handle invoke op branching to block with its result as an argument
In LLVM, having an invoke instruction branching to a block with a phi node receiving the invoke instruction result as an argument is perfectly legal. However, the translation of this construct to MLIR would result in an invoke with its result being used as a block argument to a successor, i.e., the operation result would be used in its definition.
In order to fix this issue due to different IR structures (phi nodes vs block arguments), this construct is interpreted with an llvm.invoke operation branching to a dummy block having a single llvm.br operation passing the required block arguments (including the result of the llvm.invoke operation) to the actual successor block.
Differential Revision: https://reviews.llvm.org/D148313
show more ...
|
|
Revision tags: llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3 |
|
| #
bf91cd6e |
| 17-Feb-2023 |
Christian Ulmann <christian.ulmann@nextsilicon.com> |
[mlir][llvm] Verify LLVM module before import
This commit ensures that the importing of LLVM modules first verifies that the module is even valid. As many tests did not work with valid LLVM IR, they
[mlir][llvm] Verify LLVM module before import
This commit ensures that the importing of LLVM modules first verifies that the module is even valid. As many tests did not work with valid LLVM IR, they were fixed as part of this commit.
Some error messages were only reachable with invalid input IR, thus they were replaced with a failures.
Reviewed By: gysit
Differential Revision: https://reviews.llvm.org/D144186
show more ...
|
|
Revision tags: llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1 |
|
| #
14d99ea1 |
| 25-Jan-2023 |
Nikita Popov <npopov@redhat.com> |
[MLIR] Convert remaining tests to opaque pointers (NFC)
These were the final tests using -opaque-pointers=0 in mlir/.
|
|
Revision tags: llvmorg-17-init |
|
| #
3d36df3e |
| 20-Jan-2023 |
Christian Ulmann <christian.ulmann@nextsilicon.com> |
[mlir][LLVM] Add passthrough import support
This commit extends the LLVMIR import to support function attributes by adding them to the passthrough array attribute.
Depends on D142013
Reviewed By:
[mlir][LLVM] Add passthrough import support
This commit extends the LLVMIR import to support function attributes by adding them to the passthrough array attribute.
Depends on D142013
Reviewed By: gysit
Differential Revision: https://reviews.llvm.org/D142098
show more ...
|
|
Revision tags: llvmorg-15.0.7 |
|
| #
9ed2f14c |
| 14-Dec-2022 |
Nikita Popov <npopov@redhat.com> |
[AsmParser] Remove typed pointer auto-detection
IR is now always parsed in opaque pointer mode, unless -opaque-pointers=0 is explicitly given. There is no automatic detection of typed pointers anymo
[AsmParser] Remove typed pointer auto-detection
IR is now always parsed in opaque pointer mode, unless -opaque-pointers=0 is explicitly given. There is no automatic detection of typed pointers anymore.
The -opaque-pointers=0 option is added to any remaining IR tests that haven't been migrated yet.
Differential Revision: https://reviews.llvm.org/D141912
show more ...
|
| #
3589885d |
| 10-Jan-2023 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Improve error messages during LLVM IR import.
Use the module location instead of unknown location if the imported LLVM IR module does not have more precise debug information. Additional
[mlir][llvm] Improve error messages during LLVM IR import.
Use the module location instead of unknown location if the imported LLVM IR module does not have more precise debug information. Additionally, use the diagMD function to print the metadata instead of just the metadata kind if the import fails.
Reviewed By: definelicht
Differential Revision: https://reviews.llvm.org/D141357
show more ...
|
|
Revision tags: llvmorg-15.0.6 |
|
| #
2c9d2647 |
| 17-Nov-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Move call and gep LLVM IR import tests.
The revision moves call and gep tests to instructions.ll.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D137636
|
| #
2920095d |
| 17-Nov-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Consolidate function attribute import tests (NFC).
The revision puts the function attributes tests previously distributed accross multiple files int a single function-attributes.ll test
[mlir][llvm] Consolidate function attribute import tests (NFC).
The revision puts the function attributes tests previously distributed accross multiple files int a single function-attributes.ll test file.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D137627
show more ...
|
| #
356f4170 |
| 17-Nov-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Test LLVM IR global variable import separately (NFC).
The revision moves tests related to LLVM IR global variable import into a separate global-variables.ll file.
Reviewed By: ftynse
[mlir][llvm] Test LLVM IR global variable import separately (NFC).
The revision moves tests related to LLVM IR global variable import into a separate global-variables.ll file.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D137622
show more ...
|
|
Revision tags: llvmorg-15.0.5 |
|
| #
54fb1734 |
| 08-Nov-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Test LLVM IR constant import separately.
The revision moves tests related to LLVM IR constant import into a separate constant.ll file and adds tests for integer, null and undef immediat
[mlir][llvm] Test LLVM IR constant import separately.
The revision moves tests related to LLVM IR constant import into a separate constant.ll file and adds tests for integer, null and undef immediates.
Depends on D136679
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D137416
show more ...
|
| #
9aae3dd9 |
| 08-Nov-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Update insertion point handling in LLVM import.
Insert constants and globals in order by maintaining the position of the constant and global inserted last. Update the tests to reflect t
[mlir][llvm] Update insertion point handling in LLVM import.
Insert constants and globals in order by maintaining the position of the constant and global inserted last. Update the tests to reflect the updated insertion order. Also make sure functions are always inserted at the end of the module instead of at the second last position and delete a spurious function in the intrinsic.ll that seems to exist to avoid the first function under test ends up at the end of the module.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D136679
show more ...
|
|
Revision tags: llvmorg-15.0.4 |
|
| #
38836159 |
| 19-Oct-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Ordered traversal in LLVM IR import.
The revision performs a topological sort of the blocks to ensure the operations are processed in dominance order. After the change, we do not need t
[mlir][llvm] Ordered traversal in LLVM IR import.
The revision performs a topological sort of the blocks to ensure the operations are processed in dominance order. After the change, we do not need to introduce dummy instructions if an operand has not yet been processed. Additionally, the revision also moves and simplifies the control-flow related tests to a separate test file.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D136230
show more ...
|
|
Revision tags: llvmorg-15.0.3 |
|
| #
9f139003 |
| 14-Oct-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Use tablegen to import atomic ops from LLVM IR.
The revision imports the atomic operations using tablegen generated builders. Additionally, it moves their tests to the instructions.ll t
[mlir][llvm] Use tablegen to import atomic ops from LLVM IR.
The revision imports the atomic operations using tablegen generated builders. Additionally, it moves their tests to the instructions.ll test file.
Depends on D135880
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D135944
show more ...
|
| #
ea9cae03 |
| 14-Oct-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Use tablegen to import shufflevector from LLVM IR.
The revision imports the shuffle vector operation using tablegen generated builders. Additionally, it moves its test to the instructio
[mlir][llvm] Use tablegen to import shufflevector from LLVM IR.
The revision imports the shuffle vector operation using tablegen generated builders. Additionally, it moves its test to the instructions.ll test file.
Depends on D135874
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D135880
show more ...
|
| #
7114185f |
| 14-Oct-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Use tablegen to import extract/insert ops from LLVM IR.
The revision imports the extract and insert value operations using tablegen generated builders. Additionally, it moves the tests
[mlir][llvm] Use tablegen to import extract/insert ops from LLVM IR.
The revision imports the extract and insert value operations using tablegen generated builders. Additionally, it moves the tests to the instructions.ll test file.
Reviewed By: ftynse, dcaballe
Differential Revision: https://reviews.llvm.org/D135874
show more ...
|
| #
cc49a74a |
| 13-Oct-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Use TableGen to import compare ops from LLVM IR.
The revision imports compare operations using TableGen generated builders, instead of using the special handlers defined by the Importer
[mlir][llvm] Use TableGen to import compare ops from LLVM IR.
The revision imports compare operations using TableGen generated builders, instead of using the special handlers defined by the Importer. It therefore adds a new llvmArgIndexes field that allows to specify a mapping between MLIR argument and LLVM IR operand indexes if they do not match. Additionally, the FCmp op is extended with an additional builder and all compare operations are extended with verification traits to ensure the operands types match. These extensions simplify the logic of the newly introduced builders and are in line with the compare operations define by the arithmetic dialect.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D135855
show more ...
|
| #
8446f24e |
| 12-Oct-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvm] Tablegen based operation import from LLVM IR.
The revision uses tablegen generated builders to convert the most common LLVM IR instructions to MLIR LLVM dialect operations. All instruct
[mlir][llvm] Tablegen based operation import from LLVM IR.
The revision uses tablegen generated builders to convert the most common LLVM IR instructions to MLIR LLVM dialect operations. All instructions with special handlers, except for alloca and fence, still use manual handlers. The revision also introduces an additional "instructions.ll" test file to test the import of instructions that have tablegen builders (except for the resume instruction whose test remains untouched). A part of the test cases are new, for example the integer instruction test, while others are migrated from the "basic.ll" test file.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D135709
show more ...
|
|
Revision tags: working, llvmorg-15.0.2 |
|
| #
12b68ad8 |
| 03-Oct-2022 |
Tobias Gysi <tobias.gysi@nextsilicon.com> |
[mlir][llvmir] Add filename debug info when converting from LLVMIR.
The revision enriches the debug locations generated during LLVMIR to MLIR translation with file name information and adds a separa
[mlir][llvmir] Add filename debug info when converting from LLVMIR.
The revision enriches the debug locations generated during LLVMIR to MLIR translation with file name information and adds a separate test to exercise the debug location translation.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D135069
show more ...
|
|
Revision tags: llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
ddc67856 |
| 25-Jul-2022 |
Min-Yih Hsu <minyihh@uci.edu> |
[mlir][LLVMIR] Add translation of AtomicRMW/CmpXchg from LLVM IR
Add support for translating AtomicRMWInst and AtomicCmpXchgInst from LLVM IR.
Differential Revision: https://reviews.llvm.org/D134450
|
| #
006a752a |
| 19-Sep-2022 |
Min-Yih Hsu <minyihh@uci.edu> |
[mlir][LLVMIR] Do not create pseudo debug file name using llvm::Instruction
Previously in mlir-translate, if debug info was absent in a llvm::Instruction, we tried to create one using the name of it
[mlir][LLVMIR] Do not create pseudo debug file name using llvm::Instruction
Previously in mlir-translate, if debug info was absent in a llvm::Instruction, we tried to create one using the name of its defined value in a textual LLVM IR file as the (pseudo) debug file name. However, in order to get that name, we need to call out to LLVM's SlotTracker, which, surprisingly, took a lot of time. Judging from the usefulness of such pseudo debug file name and the performance penalty during translation, this patch simply use "imported-bitcode" as the debug file name in these case. Eliminating the need of using (expensive) LLVM value numbering.
Differential Revision: https://reviews.llvm.org/D134305
show more ...
|
| #
7d273fde |
| 22-Aug-2022 |
Jacques Pienaar <jpienaar@google.com> |
[mlir] Populate default attributes on op creation
Default attributes were only handled by ODS accessors generated with the intention that these behave as if set attributes. This addresses the long s
[mlir] Populate default attributes on op creation
Default attributes were only handled by ODS accessors generated with the intention that these behave as if set attributes. This addresses the long standing TODO to address this inconsistency. Moving the initialization to construction vs every access. Removing need for duplicated default attribute population in python bindings.
Switch some of the OpenMP ones to optional attribute with default as the currently set default values are not legal. May need to dig more there.
Switched LinAlg generated ones to optional attribute with default as its quite widely used and unclear where it falls on two different interpretations.
Differential Revision: https://reviews.llvm.org/D130916
show more ...
|