This paper presents a software pipelining algorithm for the automatic
extraction of fine-grain parallelism in general loops, The algorithm a
ccounts for machine resource constraints in a way that smoothly integr
ates the management of resource constraints with software pipelining,
Furthermore, generality in the software pipelining algorithm is not sa
crificed to handle resource constraints, and scheduling choices are ma
de with truly global information. Proofs of correctness and the result
s of experiments with an implementation are also presented.