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

Compiler: perform two rounds of range splitting #341

Merged
merged 1 commit into from
Feb 3, 2023

Conversation

vbgl
Copy link
Member

@vbgl vbgl commented Feb 2, 2023

The first round, before expansion of register arrays, does not apply to cells of register arrays. The second round fixes this limitation.

CI: https://gitlab.com/jasmin-lang/jasmin/-/pipelines/765177635

The first round, before expansion of register arrays, does not apply to
cells of register arrays. The second round fixes this limitation.
@vbgl vbgl force-pushed the twice-live-range-splitting branch from 139fca6 to 0244409 Compare February 2, 2023 13:52
@vbgl
Copy link
Member Author

vbgl commented Feb 2, 2023

I’ve refactored a bit to move the “live-range-splitting” pass into a separate function.

CI: https://gitlab.com/jasmin-lang/jasmin/-/pipelines/765470868

@bgregoir bgregoir merged commit a5ff976 into main Feb 3, 2023
@bgregoir bgregoir deleted the twice-live-range-splitting branch February 3, 2023 13:01
@eponier
Copy link
Contributor

eponier commented Feb 3, 2023

I didn't take any look to what was done here. But a natural question arises. Is it not possible to run the pass only after reg array expansion? Or do reg array expansion earlier?

@bgregoir
Copy link
Contributor

bgregoir commented Feb 3, 2023

Vincent tried but, it does not work. The first step, reduce the liveness of some variables and allows to have a better reg array expansion.

@vbgl
Copy link
Member Author

vbgl commented Feb 4, 2023

The first round of live-range-splitting removes renaming assignments between arrays (e.g., a = b where a and b are arrays). Such assignments prevent array-expansion from properly working.

vbgl added a commit that referenced this pull request Feb 6, 2023
The first round, before expansion of register arrays, does not apply to
cells of register arrays. The second round fixes this limitation.

(cherry picked from commit a5ff976)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants