Restructuring and Parallelizing a Static Conditional Loop

Abstract Let L be a static conditional loop (SCL), i.e. involving an IF-THEN-ELSE statement with a static condition, that carries dependences with non-constant distances. We address the problem of restructuring L in order to extract the inherent parallelism. Adopting a dependence analysis approach, the restructuring procedure is essentially based on the study of the signs of the dependence distances. This leads to split the loop index set and consequently L into a series of successive (IF-THEN-ELSE and/or IF-THEN) SCLs. Each new loop is associated to a subset of the index set, carries a constant sign dependence distance and may be sequential, parallel or partially parallel. The practical efficiency of the approach is analysed through performance evaluation experiments run on a Stardent 3000 vector-biprocessor.