<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/CodeGen/PowerPC/inlineasm-i64-reg.ll, 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>[PowerPC] make expensive mflr be away from its user in the function prologue</title>
<updated>2022-11-15T02:14:20+00:00</updated>
<author>
<name>Chen Zheng</name>
<email>czhengsz@cn.ibm.com</email>
</author>
<published>2022-11-08T06:39:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=eb7d16ea25649909373e324e6ebf36774cabdbfa'/>
<id>eb7d16ea25649909373e324e6ebf36774cabdbfa</id>
<content type='text'>
mflr is kind of expensive on Power version smaller than 10, so we should
schedule the store for the mflr's def away from mflr.

In epilogue, the expensive mtlr has no user for its def, so it doesn't
matter that the load and the mtlr are back-to-back.

Reviewed By: RolandF

Differential Revision: https://reviews.llvm.org/D137423
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
mflr is kind of expensive on Power version smaller than 10, so we should
schedule the store for the mflr's def away from mflr.

In epilogue, the expensive mtlr has no user for its def, so it doesn't
matter that the load and the mtlr are back-to-back.

Reviewed By: RolandF

Differential Revision: https://reviews.llvm.org/D137423
</pre>
</div>
</content>
</entry>
<entry>
<title>[PPC] Opaque pointer migration, part 1.</title>
<updated>2022-10-11T17:24:06+00:00</updated>
<author>
<name>Kai Nacke</name>
<email>kai.peter.nacke@ibm.com</email>
</author>
<published>2022-10-07T17:50:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=427fb35192f1f7bb694a5910b05abc5925a798b2'/>
<id>427fb35192f1f7bb694a5910b05abc5925a798b2</id>
<content type='text'>
The LIT test cases were migrated with the script provided by
Nikita Popov. Due to the size of the change it is split into
several parts.

Reviewed By: nemanja, amyk, nikic, PowerPC

Differential Revision: https://reviews.llvm.org/D135470
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The LIT test cases were migrated with the script provided by
Nikita Popov. Due to the size of the change it is split into
several parts.

Reviewed By: nemanja, amyk, nikic, PowerPC

Differential Revision: https://reviews.llvm.org/D135470
</pre>
</div>
</content>
</entry>
<entry>
<title>Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support"</title>
<updated>2020-07-28T14:00:11+00:00</updated>
<author>
<name>Jinsong Ji</name>
<email>jji@us.ibm.com</email>
</author>
<published>2020-07-28T03:02:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d28f86723f37b2329428dfbcf847d3261f38dcc8'/>
<id>d28f86723f37b2329428dfbcf847d3261f38dcc8</id>
<content type='text'>
This reverts commit bf544fa1c3cb80f24d85e84559fb11193846259f.

Fixed the typo in PPCInstrInfo.cpp.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit bf544fa1c3cb80f24d85e84559fb11193846259f.

Fixed the typo in PPCInstrInfo.cpp.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support"</title>
<updated>2020-07-27T21:07:00+00:00</updated>
<author>
<name>Jinsong Ji</name>
<email>jji@us.ibm.com</email>
</author>
<published>2020-07-27T20:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bf544fa1c3cb80f24d85e84559fb11193846259f'/>
<id>bf544fa1c3cb80f24d85e84559fb11193846259f</id>
<content type='text'>
This reverts commit adffce71538e219aab4eeb024819baa7687262ff.

This is breaking test-suite, revert while investigation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit adffce71538e219aab4eeb024819baa7687262ff.

This is breaking test-suite, revert while investigation.
</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support</title>
<updated>2020-07-27T19:24:39+00:00</updated>
<author>
<name>Jinsong Ji</name>
<email>jji@us.ibm.com</email>
</author>
<published>2020-07-27T18:01:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=adffce71538e219aab4eeb024819baa7687262ff'/>
<id>adffce71538e219aab4eeb024819baa7687262ff</id>
<content type='text'>
Per RFC http://lists.llvm.org/pipermail/llvm-dev/2020-April/141295.html
no one is making use of QPX/A2Q/BGQ/BGP CNK anymore.

This patch remove the support of QPX/A2Q in llvm, BGQ/BGP in clang,
CNK support in openmp/polly.

Reviewed By: hfinkel

Differential Revision: https://reviews.llvm.org/D83915
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Per RFC http://lists.llvm.org/pipermail/llvm-dev/2020-April/141295.html
no one is making use of QPX/A2Q/BGQ/BGP CNK anymore.

This patch remove the support of QPX/A2Q in llvm, BGQ/BGP in clang,
CNK support in openmp/polly.

Reviewed By: hfinkel

Differential Revision: https://reviews.llvm.org/D83915
</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Ignore implicit register operands for MCInst</title>
<updated>2020-04-16T16:22:43+00:00</updated>
<author>
<name>Kang Zhang</name>
<email>shkzhang@cn.ibm.com</email>
</author>
<published>2020-04-16T16:22:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=513976df2e6541a73876bac896e4d923e42413b9'/>
<id>513976df2e6541a73876bac896e4d923e42413b9</id>
<content type='text'>
Summary:
When doing the conversion: MachineInst -&gt; MCInst, we should ignore the
implicit operands, it will expose more opportunity for InstiAlias.

Reviewed By: steven.zhang

Differential Revision: https://reviews.llvm.org/D77118
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
When doing the conversion: MachineInst -&gt; MCInst, we should ignore the
implicit operands, it will expose more opportunity for InstiAlias.

Reviewed By: steven.zhang

Differential Revision: https://reviews.llvm.org/D77118
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding""</title>
<updated>2017-10-03T16:59:13+00:00</updated>
<author>
<name>Geoff Berry</name>
<email>gberry@codeaurora.org</email>
</author>
<published>2017-10-03T16:59:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fabedbad116e0d830d152532cfa83b3bffd66d68'/>
<id>fabedbad116e0d830d152532cfa83b3bffd66d68</id>
<content type='text'>
This reverts commit r314729.

Another bug has been encountered in an out-of-tree target reported by Quentin.

llvm-svn: 314814
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit r314729.

Another bug has been encountered in an out-of-tree target reported by Quentin.

llvm-svn: 314814
</pre>
</div>
</content>
</entry>
<entry>
<title>Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"</title>
<updated>2017-10-02T22:01:37+00:00</updated>
<author>
<name>Geoff Berry</name>
<email>gberry@codeaurora.org</email>
</author>
<published>2017-10-02T22:01:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bfc5fb457156f7b61aea46742083a1d1ba0111bd'/>
<id>bfc5fb457156f7b61aea46742083a1d1ba0111bd</id>
<content type='text'>
Issues addressed since original review:
- Avoid bug in regalloc greedy/machine verifier when forwarding to use
  in an instruction that re-defines the same virtual register.
- Fixed bug when forwarding to use in EarlyClobber instruction slot.
- Fixed incorrect forwarding to register definitions that showed up in
  explicit_uses() iterator (e.g. in INLINEASM).
- Moved removal of dead instructions found by
  LiveIntervals::shrinkToUses() outside of loop iterating over
  instructions to avoid instructions being deleted while pointed to by
  iterator.
- Fixed ARMLoadStoreOptimizer bug exposed by this change in r311907.
- The pass no longer forwards COPYs to physical register uses, since
  doing so can break code that implicitly relies on the physical
  register number of the use.
- The pass no longer forwards COPYs to undef uses, since doing so
  can break the machine verifier by creating LiveRanges that don't
  end on a use (since the undef operand is not considered a use).

  [MachineCopyPropagation] Extend pass to do COPY source forwarding

  This change extends MachineCopyPropagation to do COPY source forwarding.

  This change also extends the MachineCopyPropagation pass to be able to
  be run during register allocation, after physical registers have been
  assigned, but before the virtual registers have been re-written, which
  allows it to remove virtual register COPY LiveIntervals that become dead
  through the forwarding of all of their uses.

llvm-svn: 314729
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Issues addressed since original review:
- Avoid bug in regalloc greedy/machine verifier when forwarding to use
  in an instruction that re-defines the same virtual register.
- Fixed bug when forwarding to use in EarlyClobber instruction slot.
- Fixed incorrect forwarding to register definitions that showed up in
  explicit_uses() iterator (e.g. in INLINEASM).
- Moved removal of dead instructions found by
  LiveIntervals::shrinkToUses() outside of loop iterating over
  instructions to avoid instructions being deleted while pointed to by
  iterator.
- Fixed ARMLoadStoreOptimizer bug exposed by this change in r311907.
- The pass no longer forwards COPYs to physical register uses, since
  doing so can break code that implicitly relies on the physical
  register number of the use.
- The pass no longer forwards COPYs to undef uses, since doing so
  can break the machine verifier by creating LiveRanges that don't
  end on a use (since the undef operand is not considered a use).

  [MachineCopyPropagation] Extend pass to do COPY source forwarding

  This change extends MachineCopyPropagation to do COPY source forwarding.

  This change also extends the MachineCopyPropagation pass to be able to
  be run during register allocation, after physical registers have been
  assigned, but before the virtual registers have been re-written, which
  allows it to remove virtual register COPY LiveIntervals that become dead
  through the forwarding of all of their uses.

llvm-svn: 314729
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding""</title>
<updated>2017-09-04T15:47:00+00:00</updated>
<author>
<name>Sam McCall</name>
<email>sam.mccall@gmail.com</email>
</author>
<published>2017-09-04T15:47:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f71bb198edbaa0758a5ff58a49ed2fad58c92796'/>
<id>f71bb198edbaa0758a5ff58a49ed2fad58c92796</id>
<content type='text'>
This crashes on boringSSL on PPC (will send reduced testcase)

This reverts commit r312328.

llvm-svn: 312490
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This crashes on boringSSL on PPC (will send reduced testcase)

This reverts commit r312328.

llvm-svn: 312490
</pre>
</div>
</content>
</entry>
<entry>
<title>Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"</title>
<updated>2017-09-01T14:27:20+00:00</updated>
<author>
<name>Geoff Berry</name>
<email>gberry@codeaurora.org</email>
</author>
<published>2017-09-01T14:27:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=65528f29913a541f3d250dbee2d93a3b1db68e4d'/>
<id>65528f29913a541f3d250dbee2d93a3b1db68e4d</id>
<content type='text'>
Issues addressed since original review:
- Moved removal of dead instructions found by
  LiveIntervals::shrinkToUses() outside of loop iterating over
  instructions to avoid instructions being deleted while pointed to by
  iterator.
- Fixed ARMLoadStoreOptimizer bug exposed by this change in r311907.
- The pass no longer forwards COPYs to physical register uses, since
  doing so can break code that implicitly relies on the physical
  register number of the use.
- The pass no longer forwards COPYs to undef uses, since doing so
  can break the machine verifier by creating LiveRanges that don't
  end on a use (since the undef operand is not considered a use).

  [MachineCopyPropagation] Extend pass to do COPY source forwarding

  This change extends MachineCopyPropagation to do COPY source forwarding.

  This change also extends the MachineCopyPropagation pass to be able to
  be run during register allocation, after physical registers have been
  assigned, but before the virtual registers have been re-written, which
  allows it to remove virtual register COPY LiveIntervals that become dead
  through the forwarding of all of their uses.

llvm-svn: 312328
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Issues addressed since original review:
- Moved removal of dead instructions found by
  LiveIntervals::shrinkToUses() outside of loop iterating over
  instructions to avoid instructions being deleted while pointed to by
  iterator.
- Fixed ARMLoadStoreOptimizer bug exposed by this change in r311907.
- The pass no longer forwards COPYs to physical register uses, since
  doing so can break code that implicitly relies on the physical
  register number of the use.
- The pass no longer forwards COPYs to undef uses, since doing so
  can break the machine verifier by creating LiveRanges that don't
  end on a use (since the undef operand is not considered a use).

  [MachineCopyPropagation] Extend pass to do COPY source forwarding

  This change extends MachineCopyPropagation to do COPY source forwarding.

  This change also extends the MachineCopyPropagation pass to be able to
  be run during register allocation, after physical registers have been
  assigned, but before the virtual registers have been re-written, which
  allows it to remove virtual register COPY LiveIntervals that become dead
  through the forwarding of all of their uses.

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