<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Analysis/LoopUnrollAnalyzer.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>[LoopUnrollAnalyzer] Don't simplify signed pointer comparison</title>
<updated>2024-08-28T10:15:12+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-08-28T10:11:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=69c43468d3f21df6232fda0530f03f18b0f40345'/>
<id>69c43468d3f21df6232fda0530f03f18b0f40345</id>
<content type='text'>
We're generally not able to simplify signed pointer comparisons
(because we don't have no-wrap flags that would permit it), so
we shouldn't pretend that we can in the cost model.

The unsigned comparison case is also not modelled correctly,
as explained in the added comment. As this is a cost model
inaccuracy at worst, I'm leaving it alone for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We're generally not able to simplify signed pointer comparisons
(because we don't have no-wrap flags that would permit it), so
we shouldn't pretend that we can in the cost model.

The unsigned comparison case is also not modelled correctly,
as explained in the added comment. As this is a cost model
inaccuracy at worst, I'm leaving it alone for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopUnrollAnalyzer] Use constant folding API for loads</title>
<updated>2024-08-28T09:53:25+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-08-27T14:16:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fe182ddf1f3daf55a86bbabeff40dda109bbbe91'/>
<id>fe182ddf1f3daf55a86bbabeff40dda109bbbe91</id>
<content type='text'>
Use ConstantFoldLoadFromConst() instead of a partial re-implementation.
This makes the code slightly more generic by not depending on the
exact structure of the constant.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use ConstantFoldLoadFromConst() instead of a partial re-implementation.
This makes the code slightly more generic by not depending on the
exact structure of the constant.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopUnrollAnalyzer] Fix icmp simplification</title>
<updated>2024-08-27T14:37:13+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-08-27T14:36:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=18db6813fe96616728f7e7f5921676c06a2764de'/>
<id>18db6813fe96616728f7e7f5921676c06a2764de</id>
<content type='text'>
Fix a bug I introduced in 721fdf1c9a73269280a504cbba847f4979512b66.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix a bug I introduced in 721fdf1c9a73269280a504cbba847f4979512b66.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopUnrollAnalyzer] Use computeConstantDifference()</title>
<updated>2024-08-27T13:51:49+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-08-27T13:51:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=32503050066ed307e6859b3c2ee6fbfa6327ca8b'/>
<id>32503050066ed307e6859b3c2ee6fbfa6327ca8b</id>
<content type='text'>
This is faster than checking for a SCEVConstant getMinusSCEV()
result. The results should be the same for non-degenerate cases.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is faster than checking for a SCEVConstant getMinusSCEV()
result. The results should be the same for non-degenerate cases.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopUnrollAnalyzer] Store SimplifiedAddress offset as APInt (NFC)</title>
<updated>2024-08-27T13:49:28+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-08-27T13:48:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=721fdf1c9a73269280a504cbba847f4979512b66'/>
<id>721fdf1c9a73269280a504cbba847f4979512b66</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[IR] Add getDataLayout() helpers to BasicBlock and Instruction (#96902)</title>
<updated>2024-06-27T14:38:15+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-06-27T14:38:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2d209d964a17687f70299d756a7b5e9fa342e0b4'/>
<id>2d209d964a17687f70299d756a7b5e9fa342e0b4</id>
<content type='text'>
This is a helper to avoid writing `getModule()-&gt;getDataLayout()`. I
regularly try to use this method only to remember it doesn't exist...

`getModule()-&gt;getDataLayout()` is also a common (the most common?)
reason why code has to include the Module.h header.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a helper to avoid writing `getModule()-&gt;getDataLayout()`. I
regularly try to use this method only to remember it doesn't exist...

`getModule()-&gt;getDataLayout()` is also a common (the most common?)
reason why code has to include the Module.h header.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] format InstructionSimplify &amp; lowerCaseFunctionNames</title>
<updated>2022-06-09T14:10:08+00:00</updated>
<author>
<name>Simon Moll</name>
<email>moll@cs.uni-saarland.de</email>
</author>
<published>2022-06-09T14:09:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b8c2781ff60126b8c7c11ed0dab90d0640a17d4f'/>
<id>b8c2781ff60126b8c7c11ed0dab90d0640a17d4f</id>
<content type='text'>
Clang-format InstructionSimplify and convert all "FunctionName"s to
"functionName".  This patch does touch a lot of files but gets done with
the cleanup of InstructionSimplify in one commit.

This is the alternative to the less invasive clang-format only patch: D126783

Reviewed By: spatel, rengolin

Differential Revision: https://reviews.llvm.org/D126889
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clang-format InstructionSimplify and convert all "FunctionName"s to
"functionName".  This patch does touch a lot of files but gets done with
the cleanup of InstructionSimplify in one commit.

This is the alternative to the less invasive clang-format only patch: D126783

Reviewed By: spatel, rengolin

Differential Revision: https://reviews.llvm.org/D126889
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup includes: LLVMAnalysis</title>
<updated>2022-03-01T17:01:54+00:00</updated>
<author>
<name>serge-sans-paille</name>
<email>sguelton@redhat.com</email>
</author>
<published>2022-02-28T13:08:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=71c3a5519dbcd609fb64560ac7fdfe8db149b905'/>
<id>71c3a5519dbcd609fb64560ac7fdfe8db149b905</id>
<content type='text'>
Number of lines output by preprocessor:
before: 1065940348
after:  1065307662

Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D120659
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Number of lines output by preprocessor:
before: 1065940348
after:  1065307662

Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D120659
</pre>
</div>
</content>
</entry>
<entry>
<title>[unroll] Use value domain for symbolic execution based cost model</title>
<updated>2021-05-26T15:41:25+00:00</updated>
<author>
<name>Philip Reames</name>
<email>listmail@philipreames.com</email>
</author>
<published>2021-05-26T15:40:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9cc2181ec3885b5b505849448955659b3c6299d5'/>
<id>9cc2181ec3885b5b505849448955659b3c6299d5</id>
<content type='text'>
The current full unroll cost model does a symbolic evaluation of the loop up to a fixed limit. That symbolic evaluation currently simplifies to constants, but we can generalize to arbitrary Values using the InstructionSimplify infrastructure at very low cost.

By itself, this enables some simplifications, but it's mainly useful when combined with the branch simplification over in D102928.

Differential Revision: https://reviews.llvm.org/D102934
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current full unroll cost model does a symbolic evaluation of the loop up to a fixed limit. That symbolic evaluation currently simplifies to constants, but we can generalize to arbitrary Values using the InstructionSimplify infrastructure at very low cost.

By itself, this enables some simplifications, but it's mainly useful when combined with the branch simplification over in D102928.

Differential Revision: https://reviews.llvm.org/D102934
</pre>
</div>
</content>
</entry>
<entry>
<title>Move a definition into cpp from header in advance of other changes [nfc]</title>
<updated>2021-05-21T16:18:04+00:00</updated>
<author>
<name>Philip Reames</name>
<email>listmail@philipreames.com</email>
</author>
<published>2021-05-21T16:17:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cc5f6ae4b4a2f812cc8d3964532c60a337fa79e9'/>
<id>cc5f6ae4b4a2f812cc8d3964532c60a337fa79e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
