Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 1.4 KB

README.mdown

File metadata and controls

25 lines (21 loc) · 1.4 KB

This directory holds all transformations/optimizations newly implemented for SCC (T4).

The table below summarizes how the main files in this directory map to concepts described in the T4 paper. The order of rows in this table matches the order in which transformations are applied to application code when the compiler runs.

File T4 concept
InsertHeartbeats.cpp Heartbeats
CreateParallelizableCopy.cpp CPS conversion
Bundling.cpp Privatization, bundling
Fractalizer.cpp & LoopIterDetacher.cpp Task delineation, order, spawn
LoopCoarsen.cpp Loop coarsening
LoopExpansion.cpp Loop expansion (spawner trees)
SpatialHints.cpp Spatial-hint generation
LowerToSwarm.cpp & SwarmABI.cpp Task lifting

See the individual files to learn about the implementation of each transformation pass.

The order in which these passes run, interleaved with other pre-existing LLVM simplification passes, is determined by PassManagerBuilder::populateModulePassManager() in lib/Transforms/IPO/PassManagerBuilder.cpp