Skip to content

Loop Distribution #13

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

Draft
wants to merge 93 commits into
base: master
Choose a base branch
from
Draft

Loop Distribution #13

wants to merge 93 commits into from

Conversation

wlllle
Copy link
Contributor

@wlllle wlllle commented Sep 12, 2021

Create loop distribution pass.

  • Analysis: LLVM + Clang
  • Source-to-source transformation: Clang

kaniandr added 30 commits March 8, 2022 00:24
…ucture in a member statement.

Disable replacement in case of '(S+I)->X'.
…ject of a structure type is replaced directly.
…reachable exits.

Sometimes LLVM IR for a loop contains `select` instuction which determines loop exits.
This instruction always has default basic block, so, if loop has a single exit in a source code,
this default block will be marked as unreachable.
Hence we can ignore this block and parallelize a corresponding loop if it has only single reachable exit.
…ys-return`.

The `willreturn` attribute has been added to LLVM IR and it is similar to
`sapfor.always-return` which we added earlier.
…sis pass.

- Fix errors.
- Add new checks.
- Select appropriate order of the pass execution.
- Update analysis of partially promoted reduction, induction and privitizable variables.
kaniandr and others added 27 commits July 22, 2022 14:50
…hint for a corrupted location.

Even if there are no bound alias node, we try to find nodes which contain locations with similar binded value,
to determine insertion hint. Otherwise, locations with smaller sizes become ancestors for bigger locations.
…ize of an array dimension.

Note, SCEV for 'alloca' is SCEVUnknown and has a pointer type, instead of a corresponding variable type.
…rent LLVM version.

TODO: Clang Tooling doesn't support precompiled sources anymore, so .ast files are not valid input for TSAR now and merge option is not working.
… available on server.

Note, optimization passes may remove function or replace it with another one.
Hence, in some cases there is no corresponding function on a server.
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.

2 participants