Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve stack handling for RISC-V Machine outliner #91790

Open
ilovepi opened this issue May 10, 2024 · 1 comment
Open

Improve stack handling for RISC-V Machine outliner #91790

ilovepi opened this issue May 10, 2024 · 1 comment

Comments

@ilovepi
Copy link
Contributor

ilovepi commented May 10, 2024

This is a work item identified in the gap analysis done in #89822.

Stack frame handling, seems to be much more involved in the Arm outliners, with many routines and heuristics trying to optimize and maximize outlining opportunities.

First, there are several routines dealing w/ both stack transformations and analysis to help identify outlining candidates and in some cases fix up the outlining call site (e.g. copying from 1 register to another or adjusting offsets after outlining). Some of these tasks, like fixing up offsets are already handled for RISC-V or in the generic CodeGen bits. However, ARM targets do significantly more, and do more to ensure the outlined calls can be tail-called whenever possible.

I'll follow up w/ more details soon, after a more thorogh review of what is required for RISC-V.

@llvmbot
Copy link
Collaborator

llvmbot commented May 10, 2024

@llvm/issue-subscribers-backend-risc-v

Author: Paul Kirth (ilovepi)

This is a work item identified in the gap analysis done in https://github.com//issues/89822.

Stack frame handling, seems to be much more involved in the Arm outliners, with many routines and heuristics trying to optimize and maximize outlining opportunities.

First, there are several routines dealing w/ both stack transformations and analysis to help identify outlining candidates and in some cases fix up the outlining call site (e.g. copying from 1 register to another or adjusting offsets after outlining). Some of these tasks, like fixing up offsets are already handled for RISC-V or in the generic CodeGen bits. However, ARM targets do significantly more, and do more to ensure the outlined calls can be tail-called whenever possible.

I'll follow up w/ more details soon, after a more thorogh review of what is required for RISC-V.

@hiraditya hiraditya changed the title Improve stack handling for RISC-V Machine outlinerThis is a work item identified in the gap analysis done in #89822. Improve stack handling for RISC-V Machine outliner May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants