 By combining fine-grained data dependencies with high-level control flow , SDFGs are both expressive and amenable to high-level program transformations, such as tiling , vectorization, and double buffering .
<clarity>  By combining fine-grained data dependencies with high-level control flow , SDFGs are both expressive and amenable to high-level program transformations, such as tiling , vectorization, and double buffering .
 By combining fine-grained data dependencies with high-level control-flow , SDFGs are both expressive and amenable to high-level program transformations, such as tiling , vectorization, and double buffering .