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

Allow multiple prolog instruction groups #12302

Open
BruceForstall opened this issue Mar 20, 2019 · 0 comments
Open

Allow multiple prolog instruction groups #12302

BruceForstall opened this issue Mar 20, 2019 · 0 comments
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI enhancement Product code improvement that does NOT require public API changes/additions JitUntriaged CLR JIT issues needing additional triage
Milestone

Comments

@BruceForstall
Copy link
Member

The JIT emitter design supports any number of instruction groups (insGroup, or IG) for all items (normal code, funclet prologs and epilogs, normal epilogs), except the main function prolog, which much exist completely within a single IG. This group is the first created IG and is pointed to be emitPrologIG. Functions that use this include emitBegProlog(), emitMarkPrologEnd(), emitEndProlog(), emitIGisInProlog(), and emitGetPrologOffsetEstimate().

This limitation is what causes us to use an overly large (or possibly overly large) "static" instruction group buffer size (size designated by SC_IG_BUFFER_SIZE), because that size must be big enough for all possible prologs. This size is defined in a way that probably makes no real sense.

Eliminating this restriction would make the code more flexible, and free us from the current static size constraint.

category:implementation
theme:prolog-epilog
skill-level:expert
cost:medium

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the Future milestone Jan 31, 2020
@BruceForstall BruceForstall added the JitUntriaged CLR JIT issues needing additional triage label Oct 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI enhancement Product code improvement that does NOT require public API changes/additions JitUntriaged CLR JIT issues needing additional triage
Projects
None yet
Development

No branches or pull requests

2 participants