Skip to content

Add Automatic SSR Inference #28

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

Open
wants to merge 53 commits into
base: main
Choose a base branch
from
Open

Conversation

ThomasRupf
Copy link

General

For compilation flags, see readme.
Note that SSR inference uses the new pass manager, which is invoked with -fexperimental-new-pass-manager in Clang.

Files

Optimisation Pipeline

File Purpose
llvm/lib/Transforms/SSR/SSRInferencePass.cpp (and header) main pass (inserted into pipeline)
llvm/lib/Transforms/SSR/SSRGenerationPass.cpp (and header) code generation pass
llvm/lib/Analysis/AffineAccessAnalysis.cpp (and header) analysis that finds square affine access patterns

RISC-V Backend

All in llvm/lib/Target/RISC-V (no header files)

File Purpose
RISCVExpandSSRInstsPostRegAlloc.cpp expands push/pop pseudo instructions after reg-alloc

Not scheduled in pipeline

File Purpose
RISCVSSRReassociate.cpp experimental reassociation pass
RISCVSSRStatistics.cpp count number of load/store push/pop per loop
Snitch/SNITCHAutoFrep.cpp see "autofrep" paragraph in thesis

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant