Publication | Closed Access
Conversion of control dependence to data dependence
596
Citations
6
References
1983
Year
Unknown Venue
EngineeringCompiler TechnologySoftware EngineeringSoftware AnalysisFormal VerificationCausal InferenceData DependenceSystems EngineeringProgram TransformationParallel ComputingControl DependenceAutomatic ProgrammingProgram SlicingControl MethodControl StrategyModel-based Control TechniqueComputer EngineeringInterstatement DependenceComputer ScienceAutomatic VectorizationProgram AnalysisFormal MethodsProcess ControlProgram SynthesisParallel ProgrammingData Modeling
Program analysis for vectorization relies on interstatement dependence, but control dependence in complex control flow limits data‑dependence‑based transformations. The paper proposes a systematic method to convert control dependences into explicit data dependences using logical variables. The method eliminates goto statements, introduces logical variables to control execution, and rewrites action statements as IFs, turning control dependences into data dependences. The conversion algorithms were implemented in the Rice University experimental vectorizer PFC.
Program analysis methods, especially those which support automatic vectorization, are based on the concept of interstatement dependence where a dependence holds between two statements when one of the statements computes values needed by the other. Powerful program transformation systems that convert sequential programs to a form more suitable for vector or parallel machines have been developed using this concept [AllK 82, KKLW 80].The dependence analysis in these systems is based on data dependence. In the presence of complex control flow, data dependence is not sufficient to transform programs because of the introduction of control dependences. A control dependence exists between two statements when the execution of one statement can prevent the execution of the other. Control dependences do not fit conveniently into dependence-based program translators.One solution is to convert all control dependences to data dependences by eliminating goto statements and introducing logical variables to control the execution of statements in the program. In this scheme, action statements are converted to IF statements. The variables in the conditional expression of an IF statement can be viewed as inputs to the statement being controlled. The result is that control dependences between statements become explicit data dependences expressed through the definitions and uses of the controlling logical variables.This paper presents a method for systematically converting control dependences to data dependences in this fashion. The algorithms presented here have been implemented in PFC, an experimental vectorizer written at Rice University.
| Year | Citations | |
|---|---|---|
Page 1
Page 1