public class LoopFusion extends ClawTransformation
_claw
Constructor and Description |
---|
LoopFusion(ClawPragma directive)
Constructs a new LoopFusion triggered from a specific pragma.
|
LoopFusion(Xnode loop,
ClawPragma ghostDirective)
LoopFusion ctor without pragma.
|
Modifier and Type | Method and Description |
---|---|
boolean |
analyze(XcodeProgram xcodeml,
Translator translator)
Loop fusion analysis:
- Without collapse clause: check whether the pragma statement is followed
by a do statement.
|
boolean |
canBeTransformedWith(XcodeProgram xcodeml,
Transformation transformation)
Check whether the loop fusion unit can be merged with the given loop fusion
unit.
|
void |
transform(XcodeProgram xcodeml,
Translator translator,
Transformation transformation)
Apply the loop fusion transformation.
|
getLanguageInfo, removePragma
abortOnFailedAnalysis, getDirective, getStartLine, isTransformed, setStartLine, transformed
public LoopFusion(ClawPragma directive)
directive
- The directive that triggered the loop fusion
transformation.public LoopFusion(Xnode loop, ClawPragma ghostDirective)
loop
- The do statement to be merge by the loop fusion.ghostDirective
- The generated directive that will be used for the
loop-fusion transformation.public boolean analyze(XcodeProgram xcodeml, Translator translator)
analyze
in class Transformation
xcodeml
- The XcodeML on which the transformations are applied.translator
- The translator used to applied the transformations.public void transform(XcodeProgram xcodeml, Translator translator, Transformation transformation) throws IllegalTransformationException
transform
in class Transformation
xcodeml
- The XcodeML on which the transformations are
applied.translator
- The translator used to applied the transformations.transformation
- The other loop fusion unit to be merge with this
one.IllegalTransformationException
- if the transformation cannot be
applied.public boolean canBeTransformedWith(XcodeProgram xcodeml, Transformation transformation)
canBeTransformedWith
in class Transformation
transformation
- The other loop fusion unit to be merge with this one.xcodeml
- The XcodeML on which the transformations are applied.DependentTransformationGroup