We present a novel loop scheduling approach using a generalized flow graph model of the resource constraints. From this model we derive a new flow graph to incorporate register constraints. Our linear programming implementation produces an optimum loop schedule, respecting the constraints on functional units and registers in a single optimization problem. Moreover, the iteration interval is treated as a rational number, and the approach supports heterogeneous processor architectures and pipelined functional units. Compared to earlier approaches, the solution can reduce the problem complexity and solution time, and provide faster loop schedules.