<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/Transforms/Utils/InliningUtils.cpp, branch main</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] Use LDBG() debugging macro in InliningUtils.cpp (NFC)</title>
<updated>2025-08-23T11:19:36+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2025-08-23T11:19:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7cb2acecef31af4b4e952657c4aef9c97d44c00c'/>
<id>7cb2acecef31af4b4e952657c4aef9c97d44c00c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][builtin] Make `unrealized_conversion_cast` inlineable (#139722)</title>
<updated>2025-08-18T08:23:26+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>me@m-sp.org</email>
</author>
<published>2025-08-18T08:23:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ff68f7115cc816fd9ef479e3d433f7aad1364c06'/>
<id>ff68f7115cc816fd9ef479e3d433f7aad1364c06</id>
<content type='text'>
Until now, `builtin.unrealized_conversion_cast` ops could not be inlined
by the Inliner pass.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now, `builtin.unrealized_conversion_cast` ops could not be inlined
by the Inliner pass.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Remove unused includes (NFC) (#146278)</title>
<updated>2025-06-29T19:13:12+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-29T19:13:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b5cd49eff02b7d8de018c8012f0073b7202df1e3'/>
<id>b5cd49eff02b7d8de018c8012f0073b7202df1e3</id>
<content type='text'>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Remove unused local variables (NFC) (#138642)</title>
<updated>2025-05-06T14:55:50+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-06T14:55:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=921d16246052dd6a2a8d7d4d7f5833ff8a72d407'/>
<id>921d16246052dd6a2a8d7d4d7f5833ff8a72d407</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][inliner] Move callback types from InlinerConfig -&gt; InlinerInterface. NFC.</title>
<updated>2025-04-06T11:02:42+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>kramerb@google.com</email>
</author>
<published>2025-04-06T11:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3e08dcd767a217fa91580704a378b37167e20f74'/>
<id>3e08dcd767a217fa91580704a378b37167e20f74</id>
<content type='text'>
The proper layering here is that Inliner depends on InlinerUtils, and
not the other way round. Maybe it's time to give InliningUtils a less
terrible file name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The proper layering here is that Inliner depends on InlinerUtils, and
not the other way round. Maybe it's time to give InliningUtils a less
terrible file name.
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][inliner] Add doClone and canHandleMultipleBlocks callbacks to Inliner Config (#131226)</title>
<updated>2025-04-05T20:56:55+00:00</updated>
<author>
<name>junfengd-nv</name>
<email>junfengd@nvidia.com</email>
</author>
<published>2025-04-05T20:56:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=aeec94500a5dbd576e5d2d16895fe00fa0b1e154'/>
<id>aeec94500a5dbd576e5d2d16895fe00fa0b1e154</id>
<content type='text'>
Current inliner disables inlining when the caller is in a region with
single block trait, while the callee function contains multiple blocks.
the SingleBlock trait is used in operations such as do/while loop, for
example fir.do_loop, fir.iterate_while and fir.if. Typically, calls within
loops are good candidates for inlining. However, functions with multiple
blocks are also common. for example, any function with "if () then
return" will result in multiple blocks in MLIR.

This change gives the flexibility of a customized inliner to handle such
cases.
doClone: clones instructions and other information from the callee
function into the caller function. .
canHandleMultipleBlocks: checks if functions with multiple blocks can be
inlined into a region with the SingleBlock trait.

The default behavior of the inliner remains unchanged.

---------

Co-authored-by: jeanPerier &lt;jean.perier.polytechnique@gmail.com&gt;
Co-authored-by: Mehdi Amini &lt;joker.eph@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Current inliner disables inlining when the caller is in a region with
single block trait, while the callee function contains multiple blocks.
the SingleBlock trait is used in operations such as do/while loop, for
example fir.do_loop, fir.iterate_while and fir.if. Typically, calls within
loops are good candidates for inlining. However, functions with multiple
blocks are also common. for example, any function with "if () then
return" will result in multiple blocks in MLIR.

This change gives the flexibility of a customized inliner to handle such
cases.
doClone: clones instructions and other information from the callee
function into the caller function. .
canHandleMultipleBlocks: checks if functions with multiple blocks can be
inlined into a region with the SingleBlock trait.

The default behavior of the inliner remains unchanged.

---------

Co-authored-by: jeanPerier &lt;jean.perier.polytechnique@gmail.com&gt;
Co-authored-by: Mehdi Amini &lt;joker.eph@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Use llvm::hasSingleElement (NFC) (#133881)</title>
<updated>2025-04-01T10:58:50+00:00</updated>
<author>
<name>Longsheng Mou</name>
<email>longshengmou@gmail.com</email>
</author>
<published>2025-04-01T10:58:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1d9ad99305753a11a28e61edb130d9c63859f42e'/>
<id>1d9ad99305753a11a28e61edb130d9c63859f42e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Use *Set::insert_range (NFC) (#133043)</title>
<updated>2025-03-26T14:47:02+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-03-26T14:47:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1cc07a0865c1828792fbc7427d175c4ce753a27d'/>
<id>1cc07a0865c1828792fbc7427d175c4ce753a27d</id>
<content type='text'>
We can use *Set::insert_range to collapse:

  for (auto Elem : Range)
    Set.insert(E);

down to:

  Set.insert_range(Range);

In some cases, we can further fold that into the set declaration.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can use *Set::insert_range to collapse:

  for (auto Elem : Range)
    Set.insert(E);

down to:

  Set.insert_range(Range);

In some cases, we can further fold that into the set declaration.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Handle call site locations when inlining (#132247)</title>
<updated>2025-03-21T13:06:53+00:00</updated>
<author>
<name>Vadim Curcă</name>
<email>80581374+VadimCurca@users.noreply.github.com</email>
</author>
<published>2025-03-21T13:06:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6b59b33358d250a6a1424de4a4379c52f7df2244'/>
<id>6b59b33358d250a6a1424de4a4379c52f7df2244</id>
<content type='text'>
When inlining a `callee` with a call site debug location, the inlining
infrastructure was trivially combining the `callee` and the `caller`
locations, forming a "tree" of call stacks. Because of this, the remarks
were printing an incomplete inlining stack.

This commit handles this case and appends the `caller` location at the
end of the `callee`'s stack, extending the chain.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When inlining a `callee` with a call site debug location, the inlining
infrastructure was trivially combining the `callee` and the `caller`
locations, forming a "tree" of call stacks. Because of this, the remarks
were printing an incomplete inlining stack.

This commit handles this case and appends the `caller` location at the
end of the `callee`'s stack, extending the chain.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][LLVM] Fix inlining of a single block ending with unreachable (#122646)</title>
<updated>2025-01-13T18:37:16+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-01-13T18:37:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b39c5cb6977f35ad727d86b2dd6232099734ffd3'/>
<id>b39c5cb6977f35ad727d86b2dd6232099734ffd3</id>
<content type='text'>
alternate option to https://github.com/llvm/llvm-project/pull/122615</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
alternate option to https://github.com/llvm/llvm-project/pull/122615</pre>
</div>
</content>
</entry>
</feed>
