<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/CAPI/Dialect/LLVM.cpp, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[mlir][llvmir][reland] expose Type(To/From)LLVMIRTranslator C API (#125110)</title>
<updated>2025-01-31T15:40:56+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-01-31T15:40:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5fbb8dd7da5cd8b76127e780d418fe780d3337a4'/>
<id>5fbb8dd7da5cd8b76127e780d418fe780d3337a4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[mlir][llvmir] expose Type(To/From)LLVMIRTranslator C API  (#124864)"</title>
<updated>2025-01-30T19:10:23+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-01-30T19:09:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=345512cbda296d262a28459afc7f83640b06b6a8'/>
<id>345512cbda296d262a28459afc7f83640b06b6a8</id>
<content type='text'>
This reverts commit 7ae964c55b0a2b8dccf076ced9f1ffa8d5487eca.

Revert "[mlir] Fix warnings"

This reverts commit 0e43b9547d56762d29de9a99c998e7939417a1f3.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 7ae964c55b0a2b8dccf076ced9f1ffa8d5487eca.

Revert "[mlir] Fix warnings"

This reverts commit 0e43b9547d56762d29de9a99c998e7939417a1f3.
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][llvmir] expose Type(To/From)LLVMIRTranslator C API  (#124864)</title>
<updated>2025-01-30T17:43:22+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-01-30T17:43:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7ae964c55b0a2b8dccf076ced9f1ffa8d5487eca'/>
<id>7ae964c55b0a2b8dccf076ced9f1ffa8d5487eca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][CAPI] export LLVMFunctionType param getter and setters (#121888)</title>
<updated>2025-01-07T07:39:44+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-01-07T07:39:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5656cbca52545e608f6fb8b7c9a778c7c9b4b468'/>
<id>5656cbca52545e608f6fb8b7c9a778c7c9b4b468</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MLIR-C: Add accessor for LLVM array type (#119998)</title>
<updated>2024-12-15T22:02:55+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2024-12-15T22:02:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8345a95a404cb490918201274da877b8ca2edf51'/>
<id>8345a95a404cb490918201274da877b8ca2edf51</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][debuginfo] Add support for subprogram annotations (#110946)</title>
<updated>2024-10-07T21:51:08+00:00</updated>
<author>
<name>Walter Erquinigo</name>
<email>a20012251@gmail.com</email>
</author>
<published>2024-10-07T21:51:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2918e779a9545a66c0031b03b3af5bf4d8517cec'/>
<id>2918e779a9545a66c0031b03b3af5bf4d8517cec</id>
<content type='text'>
LLVM already supports `DW_TAG_LLVM_annotation` entries for subprograms,
but this hasn't been surfaced to the LLVM dialect.
I'm doing the minimal amount of work to support string-based
annotations, which is useful for attaching metadata to
functions, which is useful for debuggers to offer features beyond basic
DWARF.
As LLVM already supports this, this patch is not controversial.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LLVM already supports `DW_TAG_LLVM_annotation` entries for subprograms,
but this hasn't been surfaced to the LLVM dialect.
I'm doing the minimal amount of work to support string-based
annotations, which is useful for attaching metadata to
functions, which is useful for debuggers to offer features beyond basic
DWARF.
As LLVM already supports this, this patch is not controversial.</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "[MLIR][LLVM] Make DISubprogramAttr cyclic" (#106571) with fixes (#106947)</title>
<updated>2024-09-02T10:26:15+00:00</updated>
<author>
<name>Tobias Gysi</name>
<email>tobias.gysi@nextsilicon.com</email>
</author>
<published>2024-09-02T10:26:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=751975530e1041e5a8fb12cf57d5378c058d6d93'/>
<id>751975530e1041e5a8fb12cf57d5378c058d6d93</id>
<content type='text'>
This reverts commit fa93be4, restoring
commit d884b77, with fixes that ensure the CAPI declarations are
exported properly.

This commit implements LLVM_DIRecursiveTypeAttrInterface for the
DISubprogramAttr to ensure cyclic subprograms can be imported properly.
In the process multiple shortcuts around the recently introduced
DIImportedEntityAttr can be removed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit fa93be4, restoring
commit d884b77, with fixes that ensure the CAPI declarations are
exported properly.

This commit implements LLVM_DIRecursiveTypeAttrInterface for the
DISubprogramAttr to ensure cyclic subprograms can be imported properly.
In the process multiple shortcuts around the recently introduced
DIImportedEntityAttr can be removed.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[MLIR][LLVM] Make DISubprogramAttr cyclic" (#106827)</title>
<updated>2024-08-31T05:51:53+00:00</updated>
<author>
<name>Tobias Gysi</name>
<email>tobias.gysi@nextsilicon.com</email>
</author>
<published>2024-08-31T05:51:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fa93be4b1c249f5899ac8721724f7ee511c8b992'/>
<id>fa93be4b1c249f5899ac8721724f7ee511c8b992</id>
<content type='text'>
Reverts llvm/llvm-project#106571

This commit breaks the following build bot:
https://lab.llvm.org/buildbot/#/builders/138/builds/2992
It looks like there is a missing dependency in this particular setup.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#106571

This commit breaks the following build bot:
https://lab.llvm.org/buildbot/#/builders/138/builds/2992
It looks like there is a missing dependency in this particular setup.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][LLVM] Make DISubprogramAttr cyclic (#106571)</title>
<updated>2024-08-31T05:23:24+00:00</updated>
<author>
<name>Tobias Gysi</name>
<email>tobias.gysi@nextsilicon.com</email>
</author>
<published>2024-08-31T05:23:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d884b77c662374bd779ccbf20ba3b31cb9949a18'/>
<id>d884b77c662374bd779ccbf20ba3b31cb9949a18</id>
<content type='text'>
This commit implements LLVM_DIRecursiveTypeAttrInterface for the
DISubprogramAttr to ensure cyclic subprograms can be imported properly.
In the process multiple shortcuts around the recently introduced
DIImportedEntityAttr can be removed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit implements LLVM_DIRecursiveTypeAttrInterface for the
DISubprogramAttr to ensure cyclic subprograms can be imported properly.
In the process multiple shortcuts around the recently introduced
DIImportedEntityAttr can be removed.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][debug] Handle DIImportedEntity. (#103055)</title>
<updated>2024-08-27T10:10:11+00:00</updated>
<author>
<name>Abid Qadeer</name>
<email>haqadeer@amd.com</email>
</author>
<published>2024-08-27T10:10:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bc4bedd5ed2c8d9f1a648c72d38e17361aff8a30'/>
<id>bc4bedd5ed2c8d9f1a648c72d38e17361aff8a30</id>
<content type='text'>
The `DIImporedEntity` can be used to represent imported entities like
C++'s namespace with using directive or fortran's moudule with use
statement.

This PR adds `DIImportedEntityAttr` and 2-way translation from
`DIImportedEntity` to `DIImportedEntityAttr` and vice versa.

When an entity is imported in a function, the `retainedNodes` field of
the `DISubprogram` contains all the imported nodes. See the C++ code and
the LLVM IR below.

```
void test() {
    using namespace n1;
 ...
}

!2 = !DINamespace(name: "n1", scope: null)
!16 = distinct !DISubprogram(name: "test", ..., retainedNodes: !19) !19 = !{!20}
!20 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !16, entity: !2 ...)
```

This PR makes sure that the translation from mlir to `retainedNodes`
field happens correctly both ways.

To side step the cyclic dependency between `DISubprogramAttr` and `DIImportedEntityAttr`,
we have decided to not have `scope` field in the `DIImportedEntityAttr` and it is inferred
from the entity which hold the list of `DIImportedEntityAttr`. A `retainedNodes` field has been
added in the `DISubprogramAttr` which contains the list of `DIImportedEntityAttr` for that
function.

This PR currently does not handle entities imported in a global scope
but that should be easy to handle in a subsequent PR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `DIImporedEntity` can be used to represent imported entities like
C++'s namespace with using directive or fortran's moudule with use
statement.

This PR adds `DIImportedEntityAttr` and 2-way translation from
`DIImportedEntity` to `DIImportedEntityAttr` and vice versa.

When an entity is imported in a function, the `retainedNodes` field of
the `DISubprogram` contains all the imported nodes. See the C++ code and
the LLVM IR below.

```
void test() {
    using namespace n1;
 ...
}

!2 = !DINamespace(name: "n1", scope: null)
!16 = distinct !DISubprogram(name: "test", ..., retainedNodes: !19) !19 = !{!20}
!20 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !16, entity: !2 ...)
```

This PR makes sure that the translation from mlir to `retainedNodes`
field happens correctly both ways.

To side step the cyclic dependency between `DISubprogramAttr` and `DIImportedEntityAttr`,
we have decided to not have `scope` field in the `DIImportedEntityAttr` and it is inferred
from the entity which hold the list of `DIImportedEntityAttr`. A `retainedNodes` field has been
added in the `DISubprogramAttr` which contains the list of `DIImportedEntityAttr` for that
function.

This PR currently does not handle entities imported in a global scope
but that should be easy to handle in a subsequent PR.</pre>
</div>
</content>
</entry>
</feed>
