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

[OpenMP][Opt] Track internal control variables (ICVs) and optimize accordingly #174

Open
5 tasks
jdoerfert opened this issue Mar 13, 2020 · 1 comment
Open
5 tasks
Assignees
Labels
gsoc Google Summer of Code help wanted Indicates that a maintainer wants help. Not [good first issue]. metabug Issue to collect references to a group of similar or related issues.

Comments

@jdoerfert
Copy link
Member

jdoerfert commented Mar 13, 2020

OpenMP defines ICVs that hold the internal state. While some are hard to statically predict, at least without user assumptions, we can us program analysis to determine the values of quite a few.

Code reached only via a __kmpc_fork_call has for example the parallel region nesting of at least 1 (not the active parallel region nesting though).

This metabug is to allow us to track the overall task as we split it up in smaller chunks. Thus, we expect this bug to be edited as we go.

  • List all ICVs as defined by the OpenMP standard with their default values in lllvm/lib/frontend/OMPKinds.def
  • Design a way to associate events, e.g., "setters" or entering a code region via a callback (see LangRef), impacts ICV values.
  • Collect situations where ICV value information can directly be used, e.g., to replace runtime calls.
  • Implement a data-flow analysis to determine ICV values "properly".
  • Determine where ICV could help the runtime and design new APIs for this use case.
@jdoerfert jdoerfert added help wanted Indicates that a maintainer wants help. Not [good first issue]. A-llvm gsoc Google Summer of Code metabug Issue to collect references to a group of similar or related issues. labels Mar 13, 2020
@jdoerfert jdoerfert self-assigned this Mar 13, 2020
@sstefan1
Copy link
Member

Are you working on this? I see you self assigned yourself

@sstefan1 sstefan1 self-assigned this Mar 16, 2020
@asl asl removed A-llvm labels Apr 3, 2020
am11 pushed a commit to am11/llvm-project that referenced this issue Mar 29, 2022
…217.2 (llvm#174)

[objwriter/12.x] Update dependencies from dotnet/arcade
mjklemm added a commit to mjklemm/llvm-project that referenced this issue Oct 2, 2024
The current compiler version identifies itself as a Flang compiler:
```
#define __flang__ 1
#define __flang_major__ 20
#define __flang_minor__ 0
#define __flang_patchlevel__ 0
```

This PR adds the following define to the list:
```
#define __amdflang__ 1
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gsoc Google Summer of Code help wanted Indicates that a maintainer wants help. Not [good first issue]. metabug Issue to collect references to a group of similar or related issues.
Projects
None yet
Development

No branches or pull requests

3 participants