<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/CodeGen/ARM/code-placement.ll, 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>[ARM] Convert tests to opaque pointers (NFC)</title>
<updated>2024-02-05T12:56:59+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-02-05T12:56:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b31fffbc7f1e0491bf599e82b7195e320d26e140'/>
<id>b31fffbc7f1e0491bf599e82b7195e320d26e140</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen][ShrinkWrap] Enable PostShrinkWrap by default</title>
<updated>2023-05-25T08:26:29+00:00</updated>
<author>
<name>sgokhale</name>
<email>sgokhale@nvidia.com</email>
</author>
<published>2023-05-25T08:24:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c4a60c9d34375e73fc2da5e02215eabe4bc90e8f'/>
<id>c4a60c9d34375e73fc2da5e02215eabe4bc90e8f</id>
<content type='text'>
This is an attempt to reland D42600 and enabling this optimisation by default.

This also resolves the issue pointed out in the context of PGO build.

Differential Revision: https://reviews.llvm.org/D42600
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is an attempt to reland D42600 and enabling this optimisation by default.

This also resolves the issue pointed out in the context of PGO build.

Differential Revision: https://reviews.llvm.org/D42600
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[CodeGen][ShrinkWrap] Split restore point"</title>
<updated>2023-05-08T23:27:59+00:00</updated>
<author>
<name>Alan Zhao</name>
<email>ayzhao@google.com</email>
</author>
<published>2023-05-08T23:26:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f4999d3535af93919d58e3cc56ccb50f2ccb8453'/>
<id>f4999d3535af93919d58e3cc56ccb50f2ccb8453</id>
<content type='text'>
This reverts commit 1ddfd1c8186735c62b642df05c505dc4907ffac4.

The original commit causes a Chrome build assertion failure with
ThinLTO: https://crbug.com/1443635
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 1ddfd1c8186735c62b642df05c505dc4907ffac4.

The original commit causes a Chrome build assertion failure with
ThinLTO: https://crbug.com/1443635
</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen][ShrinkWrap] Split restore point</title>
<updated>2023-05-08T07:51:07+00:00</updated>
<author>
<name>sgokhale</name>
<email>sgokhale@nvidia.com</email>
</author>
<published>2023-05-08T07:51:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1ddfd1c8186735c62b642df05c505dc4907ffac4'/>
<id>1ddfd1c8186735c62b642df05c505dc4907ffac4</id>
<content type='text'>
Try to reland D42600

Differential Revision: https://reviews.llvm.org/D42600
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Try to reland D42600

Differential Revision: https://reviews.llvm.org/D42600
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] Make MachineVerifier more strict about terminators</title>
<updated>2020-08-27T06:10:20+00:00</updated>
<author>
<name>Sam Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2020-08-27T06:09:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a3e41d45813092c91c2ccef97afd996750241069'/>
<id>a3e41d45813092c91c2ccef97afd996750241069</id>
<content type='text'>
Fix the ARM backend's analyzeBranch so it doesn't ignore predicated
return instructions, and make the MachineVerifier rule more strict.

Differential Revision: https://reviews.llvm.org/D40061
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the ARM backend's analyzeBranch so it doesn't ignore predicated
return instructions, and make the MachineVerifier rule more strict.

Differential Revision: https://reviews.llvm.org/D40061
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert [MBP] Disable aggressive loop rotate in plain mode</title>
<updated>2019-08-29T19:03:58+00:00</updated>
<author>
<name>Jordan Rupprecht</name>
<email>rupprecht@google.com</email>
</author>
<published>2019-08-29T19:03:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f9f81289e6864ca3f09df16bad0ffc3ca58c3162'/>
<id>f9f81289e6864ca3f09df16bad0ffc3ca58c3162</id>
<content type='text'>
This reverts r369664 (git commit 51f48295cbe8fa3a44db263b528dd9f7bae7bf9a)

It causes many benchmark regressions, internally and in llvm's benchmark suite.

llvm-svn: 370398
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts r369664 (git commit 51f48295cbe8fa3a44db263b528dd9f7bae7bf9a)

It causes many benchmark regressions, internally and in llvm's benchmark suite.

llvm-svn: 370398
</pre>
</div>
</content>
</entry>
<entry>
<title>[MBP] Disable aggressive loop rotate in plain mode</title>
<updated>2019-08-22T16:21:32+00:00</updated>
<author>
<name>Guozhi Wei</name>
<email>carrot@google.com</email>
</author>
<published>2019-08-22T16:21:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=51f48295cbe8fa3a44db263b528dd9f7bae7bf9a'/>
<id>51f48295cbe8fa3a44db263b528dd9f7bae7bf9a</id>
<content type='text'>
Patch https://reviews.llvm.org/D43256 introduced more aggressive loop layout optimization which depends on profile information. If profile information is not available, the statically estimated profile information(generated by BranchProbabilityInfo.cpp) is used. If user program doesn't behave as BranchProbabilityInfo.cpp expected, the layout may be worse.

To be conservative this patch restores the original layout algorithm in plain mode. But user can still try the aggressive layout optimization with -force-precise-rotation-cost=true.

Differential Revision: https://reviews.llvm.org/D65673

llvm-svn: 369664
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch https://reviews.llvm.org/D43256 introduced more aggressive loop layout optimization which depends on profile information. If profile information is not available, the statically estimated profile information(generated by BranchProbabilityInfo.cpp) is used. If user program doesn't behave as BranchProbabilityInfo.cpp expected, the layout may be worse.

To be conservative this patch restores the original layout algorithm in plain mode. But user can still try the aggressive layout optimization with -force-precise-rotation-cost=true.

Differential Revision: https://reviews.llvm.org/D65673

llvm-svn: 369664
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert r368339 "[MBP] Disable aggressive loop rotate in plain mode"</title>
<updated>2019-08-12T14:23:13+00:00</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2019-08-12T14:23:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a45f301f7a5d0f62910d0ed93c96d221555697c9'/>
<id>a45f301f7a5d0f62910d0ed93c96d221555697c9</id>
<content type='text'>
It caused assertions to fire when building Chromium:

  lib/CodeGen/LiveDebugValues.cpp:331: bool
  {anonymous}::LiveDebugValues::OpenRangesSet::empty() const: Assertion
  `Vars.empty() == VarLocs.empty() &amp;&amp; "open ranges are inconsistent"' failed.

See https://crbug.com/992871#c3 for how to reproduce.

&gt; Patch https://reviews.llvm.org/D43256 introduced more aggressive loop layout optimization which depends on profile information. If profile information is not available, the statically estimated profile information(generated by BranchProbabilityInfo.cpp) is used. If user program doesn't behave as BranchProbabilityInfo.cpp expected, the layout may be worse.
&gt;
&gt; To be conservative this patch restores the original layout algorithm in plain mode. But user can still try the aggressive layout optimization with -force-precise-rotation-cost=true.
&gt;
&gt; Differential Revision: https://reviews.llvm.org/D65673

llvm-svn: 368579
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It caused assertions to fire when building Chromium:

  lib/CodeGen/LiveDebugValues.cpp:331: bool
  {anonymous}::LiveDebugValues::OpenRangesSet::empty() const: Assertion
  `Vars.empty() == VarLocs.empty() &amp;&amp; "open ranges are inconsistent"' failed.

See https://crbug.com/992871#c3 for how to reproduce.

&gt; Patch https://reviews.llvm.org/D43256 introduced more aggressive loop layout optimization which depends on profile information. If profile information is not available, the statically estimated profile information(generated by BranchProbabilityInfo.cpp) is used. If user program doesn't behave as BranchProbabilityInfo.cpp expected, the layout may be worse.
&gt;
&gt; To be conservative this patch restores the original layout algorithm in plain mode. But user can still try the aggressive layout optimization with -force-precise-rotation-cost=true.
&gt;
&gt; Differential Revision: https://reviews.llvm.org/D65673

llvm-svn: 368579
</pre>
</div>
</content>
</entry>
<entry>
<title>[MBP] Disable aggressive loop rotate in plain mode</title>
<updated>2019-08-08T20:25:23+00:00</updated>
<author>
<name>Guozhi Wei</name>
<email>carrot@google.com</email>
</author>
<published>2019-08-08T20:25:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=80347c3acc08a653cb4dd64411d86c35ac73011e'/>
<id>80347c3acc08a653cb4dd64411d86c35ac73011e</id>
<content type='text'>
Patch https://reviews.llvm.org/D43256 introduced more aggressive loop layout optimization which depends on profile information. If profile information is not available, the statically estimated profile information(generated by BranchProbabilityInfo.cpp) is used. If user program doesn't behave as BranchProbabilityInfo.cpp expected, the layout may be worse.

To be conservative this patch restores the original layout algorithm in plain mode. But user can still try the aggressive layout optimization with -force-precise-rotation-cost=true.

Differential Revision: https://reviews.llvm.org/D65673

llvm-svn: 368339
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch https://reviews.llvm.org/D43256 introduced more aggressive loop layout optimization which depends on profile information. If profile information is not available, the statically estimated profile information(generated by BranchProbabilityInfo.cpp) is used. If user program doesn't behave as BranchProbabilityInfo.cpp expected, the layout may be worse.

To be conservative this patch restores the original layout algorithm in plain mode. But user can still try the aggressive layout optimization with -force-precise-rotation-cost=true.

Differential Revision: https://reviews.llvm.org/D65673

llvm-svn: 368339
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] Favour PL/MI over GE/LT when possible</title>
<updated>2019-07-04T08:58:58+00:00</updated>
<author>
<name>David Green</name>
<email>david.green@arm.com</email>
</author>
<published>2019-07-04T08:58:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2b20ee4110ec69402ec84ea3a122df8c7eacc144'/>
<id>2b20ee4110ec69402ec84ea3a122df8c7eacc144</id>
<content type='text'>
The arm condition codes for GE is N==V (and for LT is N!=V). If the source of
flags cannot set V (overflow), such as a cmp against #0, then we can use the
simpler PL and MI conditions that only check N. As these PL/MI conditions are
simpler than GE/LT, other passes like the peephole optimiser can have a better
time optimising away the redundant CMPs.

The exception is the VSEL instruction, which cannot take the PL code, so there
the transform favours GE.

Differential Revision: https://reviews.llvm.org/D64160

llvm-svn: 365117
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The arm condition codes for GE is N==V (and for LT is N!=V). If the source of
flags cannot set V (overflow), such as a cmp against #0, then we can use the
simpler PL and MI conditions that only check N. As these PL/MI conditions are
simpler than GE/LT, other passes like the peephole optimiser can have a better
time optimising away the redundant CMPs.

The exception is the VSEL instruction, which cannot take the PL code, so there
the transform favours GE.

Differential Revision: https://reviews.llvm.org/D64160

llvm-svn: 365117
</pre>
</div>
</content>
</entry>
</feed>
