# The available LLVM passes

Polly consists of a set of LLVM passes.

## Front End

- polly-canonicalize Prepare code for Polly
- polly-detect Detect SCoPs in functions
- polly-scops Create polyhedral description of SCoPs

## Middle End

- polly-dependences Calculate the dependences in a SCoPs
- polly-opt-isl Optimize the SCoP using isl
- Import/Export
  - polly-export-jscop Export SCoPs as JSON (Writes a .jscop file for each SCoP)
  - polly-import-jscop Import SCoPs from JSON (Reads a .jscop file for each SCoP)
- Graphviz
  - dot-scops Print SCoPs of function
  - dot-scops-only Print SCoPs of function (without function bodies)
  - view-scops View SCoPs of function
  - view-scops-only View SCoPs of function (without function bodies)

## Back End

- polly-ast Execute isl code generation
- polly-codegen Create LLVM-IR from the polyhedral information