<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/SystemZ/SystemZFrameLowering.h, 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>[llvm] Consistently respect `naked` fn attribute in `TargetFrameLowering::hasFP()` (#106014)</title>
<updated>2024-10-18T05:35:42+00:00</updated>
<author>
<name>Alex Rønne Petersen</name>
<email>alex@alexrp.com</email>
</author>
<published>2024-10-18T05:35:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ad4a582fd938c933e784f0052bd773676b37b690'/>
<id>ad4a582fd938c933e784f0052bd773676b37b690</id>
<content type='text'>
Some targets (e.g. PPC and Hexagon) already did this. I think it's best
to do this consistently so that frontend authors don't run into
inconsistent results when they emit `naked` functions. For example, in
Zig, we had to change our emit code to also set `frame-pointer=none` to
get reliable results across targets.

Note: I don't have commit access.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some targets (e.g. PPC and Hexagon) already did this. I think it's best
to do this consistently so that frontend authors don't run into
inconsistent results when they emit `naked` functions. For example, in
Zig, we had to change our emit code to also set `frame-pointer=none` to
get reliable results across targets.

Note: I don't have commit access.</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ][z/OS] Implement llvm.returnaddress for XPLINK (#89440)</title>
<updated>2024-04-22T15:01:22+00:00</updated>
<author>
<name>Kai Nacke</name>
<email>kai.peter.nacke@ibm.com</email>
</author>
<published>2024-04-22T15:01:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cce4dc7b7a80347c2ef9ad3d55091dbe7adddcb6'/>
<id>cce4dc7b7a80347c2ef9ad3d55091dbe7adddcb6</id>
<content type='text'>
The implementation follows the ELF implementation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The implementation follows the ELF implementation.</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ][z/OS] Implement llvm.frameaddr for XPLINK (#89284)</title>
<updated>2024-04-19T12:09:49+00:00</updated>
<author>
<name>Kai Nacke</name>
<email>kai.peter.nacke@ibm.com</email>
</author>
<published>2024-04-19T12:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7e2c2981fbb9e609886cfbe6c95644ed58b03d08'/>
<id>7e2c2981fbb9e609886cfbe6c95644ed58b03d08</id>
<content type='text'>
The implementation follows the ELF implementation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The implementation follows the ELF implementation.</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Eliminate call sequence instructions early. (#77812)</title>
<updated>2024-03-28T17:26:38+00:00</updated>
<author>
<name>Jonas Paulsson</name>
<email>paulson1@linux.ibm.com</email>
</author>
<published>2024-03-28T17:26:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=16b7cc69ef43110c9776212379ccc37d7d3263c0'/>
<id>16b7cc69ef43110c9776212379ccc37d7d3263c0</id>
<content type='text'>
On SystemZ, the outgoing argument area which is big enough for all calls
in the function is created once during the prolog, as opposed to
adjusting the stack around each call. The call-sequence instructions are
therefore not really useful any more than to compute the maximum call
frame size, which has so far been done by PEI, but can just as well be
done at an earlier point.

This patch removes the mapping of the CallFrameSetupOpcode and
CallFrameDestroyOpcode and instead computes the MaxCallFrameSize
directly after instruction selection and then removes the ADJCALLSTACK
pseudos. This removes the confusing pseudos and also avoids the problem
of having to keep the call frame size accurate when creating new MBBs.

This fixes #76618 which exposed the need to maintain the call frame size
when splitting blocks (which was not done).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On SystemZ, the outgoing argument area which is big enough for all calls
in the function is created once during the prolog, as opposed to
adjusting the stack around each call. The call-sequence instructions are
therefore not really useful any more than to compute the maximum call
frame size, which has so far been done by PEI, but can just as well be
done at an earlier point.

This patch removes the mapping of the CallFrameSetupOpcode and
CallFrameDestroyOpcode and instead computes the MaxCallFrameSize
directly after instruction selection and then removes the ADJCALLSTACK
pseudos. This removes the confusing pseudos and also avoids the problem
of having to keep the call frame size accurate when creating new MBBs.

This fixes #76618 which exposed the need to maintain the call frame size
when splitting blocks (which was not done).</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ][z/OS] Implement detection and handling for XPLink Leaf procedures.</title>
<updated>2022-07-17T18:30:33+00:00</updated>
<author>
<name>Neumann Hon</name>
<email>h.neukc@gmail.com</email>
</author>
<published>2022-07-17T18:30:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e8f9a74fbf6e6d6e960a8ddb8107ce85434b30fd'/>
<id>e8f9a74fbf6e6d6e960a8ddb8107ce85434b30fd</id>
<content type='text'>
This PR adds support for creating leaf functions when there are no CSRs used, no function calls are made, no stack frame is acquired, and contain no try/catch/throw statements.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D129687
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds support for creating leaf functions when there are no CSRs used, no function calls are made, no stack frame is acquired, and contain no try/catch/throw statements.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D129687
</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] [z/OS] Add support for generating huge (1 MiB) stack frames in XPLINK64</title>
<updated>2022-02-25T07:37:08+00:00</updated>
<author>
<name>Neumann Hon</name>
<email>neumann.hon@ibm.com</email>
</author>
<published>2022-02-25T07:37:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=eb3e09c9bf1d8808acf7d21f40ab0103121a0d60'/>
<id>eb3e09c9bf1d8808acf7d21f40ab0103121a0d60</id>
<content type='text'>
This patch extends support for generating huge stack frames on 64-bit XPLINK by implementing the ABI-mandated call to the stack extension routine.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D120450
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch extends support for generating huge stack frames on 64-bit XPLINK by implementing the ABI-mandated call to the stack extension routine.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D120450
</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Implement orderFrameObjects().</title>
<updated>2022-01-27T22:09:19+00:00</updated>
<author>
<name>Jonas Paulsson</name>
<email>paulsson@linux.vnet.ibm.com</email>
</author>
<published>2022-01-21T21:03:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f541a5048a12b5fdd8a6ae1b6d1bd67366f00ecf'/>
<id>f541a5048a12b5fdd8a6ae1b6d1bd67366f00ecf</id>
<content type='text'>
By reordering the objects on the stack frame after looking at the users, a
better utilization of displacement operands will result. This means less
needed Load Address instructions for the accessing of these objects.

This is important for very large functions where otherwise small changes
could cause a lot more/less accesses go out of range.

Note: this is not yet enabled for SystemZXPLINKFrameLowering, but should be.

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D115690
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By reordering the objects on the stack frame after looking at the users, a
better utilization of displacement operands will result. This means less
needed Load Address instructions for the accessing of these objects.

This is important for very large functions where otherwise small changes
could cause a lot more/less accesses go out of range.

Note: this is not yet enabled for SystemZXPLINKFrameLowering, but should be.

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D115690
</pre>
</div>
</content>
</entry>
<entry>
<title>[Target] Remove unused forward declarations (NFC)</title>
<updated>2022-01-02T18:20:15+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2022-01-02T18:20:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=41bfac6aed1817831e7b83994f4963f604987bd5'/>
<id>41bfac6aed1817831e7b83994f4963f604987bd5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[z/OS]  Implement prologue and epilogue generation for z/OS target.</title>
<updated>2021-12-16T14:04:05+00:00</updated>
<author>
<name>Neumann Hon</name>
<email>neumann.hon@ibm.com</email>
</author>
<published>2021-12-15T22:02:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9a35844990159f2ced980147f2af4ead4c2d4e93'/>
<id>9a35844990159f2ced980147f2af4ead4c2d4e93</id>
<content type='text'>
This patch adds support for prologue and epilogue generation for the z/OS target under the XPLINK64 ABI for functions with a stack size of less than 1048576 bytes (huge stack frames).

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D114457
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds support for prologue and epilogue generation for the z/OS target under the XPLINK64 ABI for functions with a stack size of less than 1048576 bytes (huge stack frames).

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D114457
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[z/OS] Implement prologue and epilogue generation for z/OS target."</title>
<updated>2021-12-14T19:22:11+00:00</updated>
<author>
<name>Muiez Ahmed</name>
<email>muiez@ibm.com</email>
</author>
<published>2021-12-14T19:22:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ebf5497b269f5769b53320dd81290714642e4306'/>
<id>ebf5497b269f5769b53320dd81290714642e4306</id>
<content type='text'>
This reverts commit ffad4d777b227f91be04020e2cd86ab38e969e39 because it introduced buildbot failures.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit ffad4d777b227f91be04020e2cd86ab38e969e39 because it introduced buildbot failures.
</pre>
</div>
</content>
</entry>
</feed>
