<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch users/matthias-springer/parse_fp_int_lit</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][Parser][NFC] Make `parseFloatFromIntegerLiteral` a standalone function</title>
<updated>2024-11-14T06:04:53+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>mspringer@nvidia.com</email>
</author>
<published>2024-11-14T05:55:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=07837e3ca122d1c1fa7448797addb3839e8b7a45'/>
<id>07837e3ca122d1c1fa7448797addb3839e8b7a45</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[YAML] Make `std::array` available (#116059)"</title>
<updated>2024-11-14T02:38:51+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2024-11-14T02:37:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e9aee4fd80874f80556456f64c303ffb957bd614'/>
<id>e9aee4fd80874f80556456f64c303ffb957bd614</id>
<content type='text'>
Compilation failed on gcc hosts.

This reverts commit 941f704f0892317701fd263603a729e0ef86dda6.
(llvmorg-20-init-12117-g941f704f0892)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Compilation failed on gcc hosts.

This reverts commit 941f704f0892317701fd263603a729e0ef86dda6.
(llvmorg-20-init-12117-g941f704f0892)
</pre>
</div>
</content>
</entry>
<entry>
<title>[YAML] Make `std::array` available (#116059)</title>
<updated>2024-11-14T02:21:27+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2024-11-14T02:21:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=941f704f0892317701fd263603a729e0ef86dda6'/>
<id>941f704f0892317701fd263603a729e0ef86dda6</id>
<content type='text'>
`std::array` will be handled like `MutableArrayRef`;

- Extending elements is not acceptable.
- For applying fewer sequence, trailing elements will be initialized by
default.

Not like;

- `std::array` is not the reference but holds values. Supposing to hold
small count of elements.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`std::array` will be handled like `MutableArrayRef`;

- Extending elements is not acceptable.
- For applying fewer sequence, trailing elements will be initialized by
default.

Not like;

- `std::array` is not the reference but holds values. Supposing to hold
small count of elements.</pre>
</div>
</content>
</entry>
<entry>
<title>Reformat</title>
<updated>2024-11-14T02:16:56+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2024-11-13T13:55:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=287a34311e342d5573200fbc2c651fa665ccc062'/>
<id>287a34311e342d5573200fbc2c651fa665ccc062</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[gn build] Port d23c5c2d6566</title>
<updated>2024-11-14T01:34:37+00:00</updated>
<author>
<name>LLVM GN Syncbot</name>
<email>llvmgnsyncbot@gmail.com</email>
</author>
<published>2024-11-14T01:34:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=474ed453f7a9ef1c4bcd9ba60f2ef20e0199d872'/>
<id>474ed453f7a9ef1c4bcd9ba60f2ef20e0199d872</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[CGData] Global Merge Functions (#112671)</title>
<updated>2024-11-14T01:34:07+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-11-14T01:34:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d23c5c2d6566fce4380cfa31d438422db19fbce9'/>
<id>d23c5c2d6566fce4380cfa31d438422db19fbce9</id>
<content type='text'>
This implements a global function merging pass. Unlike traditional
function merging passes that use IR comparators, this pass employs a
structurally stable hash to identify similar functions while ignoring
certain constant operands. These ignored constants are tracked and
encoded into a stable function summary. When merging, instead of
explicitly folding similar functions and their call sites, we form a
merging instance by supplying different parameters via thunks. The
actual size reduction occurs when identically created merging instances
are folded by the linker.

Currently, this pass is wired to a pre-codegen pass, enabled by the
`-enable-global-merge-func` flag.
In a local merging mode, the analysis and merging steps occur
sequentially within a module:
- `analyze`: Collects stable function hashes and tracks locations of
ignored constant operands.
- `finalize`: Identifies merge candidates with matching hashes and
computes the set of parameters that point to different constants.
- `merge`: Uses the stable function map to optimistically create a
merged function.

We can enable a global merging mode similar to the global function
outliner
(https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-2-thinlto-nolto/78753/),
which will perform the above steps separately.
- `-codegen-data-generate`: During the first round of code generation,
we analyze local merging instances and publish their summaries.
- Offline using `llvm-cgdata` or at link-time, we can finalize all these
merging summaries that are combined to determine parameters.
- `-codegen-data-use`: During the second round of code generation, we
optimistically create merging instances within each module, and finally,
the linker folds identically created merging instances.

Depends on #112664
This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This implements a global function merging pass. Unlike traditional
function merging passes that use IR comparators, this pass employs a
structurally stable hash to identify similar functions while ignoring
certain constant operands. These ignored constants are tracked and
encoded into a stable function summary. When merging, instead of
explicitly folding similar functions and their call sites, we form a
merging instance by supplying different parameters via thunks. The
actual size reduction occurs when identically created merging instances
are folded by the linker.

Currently, this pass is wired to a pre-codegen pass, enabled by the
`-enable-global-merge-func` flag.
In a local merging mode, the analysis and merging steps occur
sequentially within a module:
- `analyze`: Collects stable function hashes and tracks locations of
ignored constant operands.
- `finalize`: Identifies merge candidates with matching hashes and
computes the set of parameters that point to different constants.
- `merge`: Uses the stable function map to optimistically create a
merged function.

We can enable a global merging mode similar to the global function
outliner
(https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-2-thinlto-nolto/78753/),
which will perform the above steps separately.
- `-codegen-data-generate`: During the first round of code generation,
we analyze local merging instances and publish their summaries.
- Offline using `llvm-cgdata` or at link-time, we can finalize all these
merging summaries that are combined to determine parameters.
- `-codegen-data-use`: During the second round of code generation, we
optimistically create merging instances within each module, and finally,
the linker folds identically created merging instances.

Depends on #112664
This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][docs] Revise documentation for `__builtin_reduce_(max|min)`. (#114637)</title>
<updated>2024-11-14T01:28:51+00:00</updated>
<author>
<name>c8ef</name>
<email>c8ef@outlook.com</email>
</author>
<published>2024-11-14T01:28:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6e614e11df6a152082b51a1b18332cb8730a4032'/>
<id>6e614e11df6a152082b51a1b18332cb8730a4032</id>
<content type='text'>
The function operation described in the document did not match its
actual semantic meaning, this patch resolved the problem.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The function operation described in the document did not match its
actual semantic meaning, this patch resolved the problem.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][Transforms] Dialect Conversion: Add `replaceOpWithMultiple` (#115816)</title>
<updated>2024-11-14T01:27:58+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>me@m-sp.org</email>
</author>
<published>2024-11-14T01:27:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=aed4356252df2a4ab2e430d77a29bdb3dfd874fc'/>
<id>aed4356252df2a4ab2e430d77a29bdb3dfd874fc</id>
<content type='text'>
This commit adds a new function
`ConversionPatternRewriter::replaceOpWithMultiple`. This function is
similar to `replaceOp`, but it accepts multiple `ValueRange`
replacements, one per op result.

Note: This function is not an overload of `replaceOp` because of
ambiguous overload resolution that would make the API difficult to use.

This commit aligns "block signature conversions" with "op replacements":
both support 1:N replacements now. Due to incomplete 1:N support in the
dialect conversion driver, an argument materialization is inserted when
an SSA value is replaced with multiple values; same as block signature
conversions already work around the problem. These argument
materializations are going to be removed in a subsequent commit that
adds full 1:N support. The purpose of this PR is to add missing features
gradually in small increments.

This commit also updates two MLIR transformations that have their custom
workarounds around missing 1:N support. These can already start using
`replaceOpWithMultiple`.

Co-authored-by: Markus Böck &lt;markus.boeck02@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit adds a new function
`ConversionPatternRewriter::replaceOpWithMultiple`. This function is
similar to `replaceOp`, but it accepts multiple `ValueRange`
replacements, one per op result.

Note: This function is not an overload of `replaceOp` because of
ambiguous overload resolution that would make the API difficult to use.

This commit aligns "block signature conversions" with "op replacements":
both support 1:N replacements now. Due to incomplete 1:N support in the
dialect conversion driver, an argument materialization is inserted when
an SSA value is replaced with multiple values; same as block signature
conversions already work around the problem. These argument
materializations are going to be removed in a subsequent commit that
adds full 1:N support. The purpose of this PR is to add missing features
gradually in small increments.

This commit also updates two MLIR transformations that have their custom
workarounds around missing 1:N support. These can already start using
`replaceOpWithMultiple`.

Co-authored-by: Markus Böck &lt;markus.boeck02@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][cuda] Support malloc and free conversion in gpu module (#116112)</title>
<updated>2024-11-14T01:09:38+00:00</updated>
<author>
<name>Valentin Clement (バレンタイン クレメン)</name>
<email>clementval@gmail.com</email>
</author>
<published>2024-11-14T01:09:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e5092c301959b599ffd51b7942a8bed5c4be54de'/>
<id>e5092c301959b599ffd51b7942a8bed5c4be54de</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] update Apple undefined symbol link flag from suppress (#116113)</title>
<updated>2024-11-14T00:44:54+00:00</updated>
<author>
<name>Greg Roth</name>
<email>grroth@microsoft.com</email>
</author>
<published>2024-11-14T00:44:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1f0e0da3af783fd2bb5e23bc2b97141abac68926'/>
<id>1f0e0da3af783fd2bb5e23bc2b97141abac68926</id>
<content type='text'>
the -undefined suppress option for Apple's linker is deprecated and was
producing multiple warnings. This updates it to dynamic_lookup, which
has much the same effect, but avoids these deprecation warnings.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the -undefined suppress option for Apple's linker is deprecated and was
producing multiple warnings. This updates it to dynamic_lookup, which
has much the same effect, but avoids these deprecation warnings.</pre>
</div>
</content>
</entry>
</feed>
