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

Update OpenMP/OpenACC analysis passes #126

Open
ouankou opened this issue Oct 2, 2022 · 0 comments
Open

Update OpenMP/OpenACC analysis passes #126

ouankou opened this issue Oct 2, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@ouankou
Copy link
Contributor

ouankou commented Oct 2, 2022

Currently, the analysis is mainly based on the original OpenMP AST construction in ROSE. There are 7 passes in the following order:

  1. Convert metadirective to if statement with OpenMP variants.
  2. Patch implicit private variables.
  3. Patch implicit firstprivate variables.
  4. Patch implicit map variables.
  5. Patch task variables.
  6. Create UPIR data fields based on map clauses.
  7. Normalize UPIR loops.

Pass 1, 5 and 6 are OpenMP-only. The rest passes could also apply to OpenACC. Currently, the OpenACC AST constructor directly creates UPIR data fields instead of map clause. Therefore, to let OpenACC reuse passes 2-4, we should move passes 5 and 6 right after pass 1. Then all the rest passes are applied to UPIR nodes with according changes.

When the OpenACC AST constructor is fully implemented, we can copy the code handling data mapping to the OpenMP AST constructor and generate UPIR data fields directly. After that, pass 6 could be removed.

@ouankou ouankou added the enhancement New feature or request label Oct 2, 2022
@ouankou ouankou self-assigned this Oct 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant