<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/PowerPC/PPCExpandAtomicPseudoInsts.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>[NFC][LLVM][PowerPC] Cleanup pass initialization for PowerPC (#134422)</title>
<updated>2025-04-14T16:18:39+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-04-14T16:18:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fef5b6f9530c52d623f4729900855e626d5ee722'/>
<id>fef5b6f9530c52d623f4729900855e626d5ee722</id>
<content type='text'>
- Remove calls to pass initialization from pass constructors.
- https://github.com/llvm/llvm-project/issues/111767</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Remove calls to pass initialization from pass constructors.
- https://github.com/llvm/llvm-project/issues/111767</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Remove unused includes (NFC) (#116163)</title>
<updated>2024-11-14T15:55:18+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-14T15:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f71cb9dbb739bb58ce7e52e49fe384ff2ff11687'/>
<id>f71cb9dbb739bb58ce7e52e49fe384ff2ff11687</id>
<content type='text'>
Identified with misc-include-cleaner.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with misc-include-cleaner.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Refactor looping over recomputeLiveIns into function (#88040)</title>
<updated>2024-04-15T21:12:25+00:00</updated>
<author>
<name>Kai Nacke</name>
<email>kai.peter.nacke@ibm.com</email>
</author>
<published>2024-04-15T21:12:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=21d177096f84c38cf434c21bd3ff0dbd2ca163d0'/>
<id>21d177096f84c38cf434c21bd3ff0dbd2ca163d0</id>
<content type='text'>
https://github.com/llvm/llvm-project/pull/79940 put calls to
recomputeLiveIns into
a loop, to repeatedly call the function until the computation converges.
However,
this repeats a lot of code. This changes moves the loop into a function
to simplify
the handling.

Note that this changes the order in which recomputeLiveIns is called.
For example,

```
  bool anyChange = false;
  do {
    anyChange = recomputeLiveIns(*ExitMBB) || recomputeLiveIns(*LoopMBB);
  } while (anyChange);
```

only begins to recompute the live-ins for LoopMBB after the computation
for ExitMBB
has converged. With this change, all basic blocks have a recomputation
of the live-ins
for each loop iteration. This can result in less or more calls,
depending on the
situation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/llvm/llvm-project/pull/79940 put calls to
recomputeLiveIns into
a loop, to repeatedly call the function until the computation converges.
However,
this repeats a lot of code. This changes moves the loop into a function
to simplify
the handling.

Note that this changes the order in which recomputeLiveIns is called.
For example,

```
  bool anyChange = false;
  do {
    anyChange = recomputeLiveIns(*ExitMBB) || recomputeLiveIns(*LoopMBB);
  } while (anyChange);
```

only begins to recompute the live-ins for LoopMBB after the computation
for ExitMBB
has converged. With this change, all basic blocks have a recomputation
of the live-ins
for each loop iteration. This can result in less or more calls,
depending on the
situation.</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor recomputeLiveIns to converge on added MachineBasicBlocks (#79940)</title>
<updated>2024-01-31T03:33:04+00:00</updated>
<author>
<name>Oskar Wirga</name>
<email>10386631+oskarwirga@users.noreply.github.com</email>
</author>
<published>2024-01-31T03:33:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ff4636a4ab00b633c15eb3942c26126ceb2662e6'/>
<id>ff4636a4ab00b633c15eb3942c26126ceb2662e6</id>
<content type='text'>
This is a fix for the regression seen in
https://github.com/llvm/llvm-project/pull/79498

&gt; Currently, the way that recomputeLiveIns works is that it will
recompute the livein registers for that MachineBasicBlock but it matters
what order you call recomputeLiveIn which can result in incorrect
register allocations down the line.

Now we do not recompute the entire CFG but we do ensure that the newly
added MBB do reach convergence.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a fix for the regression seen in
https://github.com/llvm/llvm-project/pull/79498

&gt; Currently, the way that recomputeLiveIns works is that it will
recompute the livein registers for that MachineBasicBlock but it matters
what order you call recomputeLiveIn which can result in incorrect
register allocations down the line.

Now we do not recompute the entire CFG but we do ensure that the newly
added MBB do reach convergence.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Refactor recomputeLiveIns to operate on whole CFG (#79498)"</title>
<updated>2024-01-26T21:33:17+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>nikita.ppv@gmail.com</email>
</author>
<published>2024-01-26T21:33:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=07a1925b8b92f29880be4030630ed5053783708f'/>
<id>07a1925b8b92f29880be4030630ed5053783708f</id>
<content type='text'>
This reverts commit 59bf60519fc30d9d36c86abd83093b068f6b1e4b.

Introduces a major compile-time regression.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 59bf60519fc30d9d36c86abd83093b068f6b1e4b.

Introduces a major compile-time regression.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor recomputeLiveIns to operate on whole CFG (#79498)</title>
<updated>2024-01-26T19:25:36+00:00</updated>
<author>
<name>Oskar Wirga</name>
<email>10386631+oskarwirga@users.noreply.github.com</email>
</author>
<published>2024-01-26T19:25:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=59bf60519fc30d9d36c86abd83093b068f6b1e4b'/>
<id>59bf60519fc30d9d36c86abd83093b068f6b1e4b</id>
<content type='text'>
Currently, the way that recomputeLiveIns works is that it will recompute
the livein registers for that MachineBasicBlock but it matters what
order you call recomputeLiveIn which can result in incorrect register
allocations down the line.

This PR fixes that by simply recomputing the liveins for the entire CFG
until convergence is achieved. This makes it harder to introduce subtle
bugs which alter liveness.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, the way that recomputeLiveIns works is that it will recompute
the livein registers for that MachineBasicBlock but it matters what
order you call recomputeLiveIn which can result in incorrect register
allocations down the line.

This PR fixes that by simply recomputing the liveins for the entire CFG
until convergence is achieved. This makes it harder to introduce subtle
bugs which alter liveness.</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC][Atomics] Remove redundant block to clear reservation  (#68430)</title>
<updated>2023-10-13T02:59:27+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-10-13T02:59:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3104681686b17ea3c611e84b30884a25b84f87b6'/>
<id>3104681686b17ea3c611e84b30884a25b84f87b6</id>
<content type='text'>
This PR is following what https://reviews.llvm.org/D134783 does for
quardword CAS.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR is following what https://reviews.llvm.org/D134783 does for
quardword CAS.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Use range-based for loops (NFC)</title>
<updated>2021-11-23T04:33:28+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2021-11-23T04:33:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d5b73a70a0611fc6c082e20acb6ce056980c8323'/>
<id>d5b73a70a0611fc6c082e20acb6ce056980c8323</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Implement quadword atomic load/store</title>
<updated>2021-09-01T06:55:40+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2021-09-01T06:54:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5eaebd5d649ad7209ddef37ea7118e262f755a14'/>
<id>5eaebd5d649ad7209ddef37ea7118e262f755a14</id>
<content type='text'>
Add support to load/store i128 atomically.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D105612
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add support to load/store i128 atomically.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D105612
</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Generate inlined quadword lock free atomic operations via AtomicExpand</title>
<updated>2021-07-15T01:12:09+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2021-07-15T00:49:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b9c3941cd61de1e1b9e4f3311ddfa92394475f4b'/>
<id>b9c3941cd61de1e1b9e4f3311ddfa92394475f4b</id>
<content type='text'>
This patch uses AtomicExpandPass to implement quadword lock free atomic operations. It adopts the method introduced in https://reviews.llvm.org/D47882, which expand atomic operations post RA to avoid spilling that might prevent LL/SC progress.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D103614
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch uses AtomicExpandPass to implement quadword lock free atomic operations. It adopts the method introduced in https://reviews.llvm.org/D47882, which expand atomic operations post RA to avoid spilling that might prevent LL/SC progress.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D103614
</pre>
</div>
</content>
</entry>
</feed>
