Exploiting parallelism among instrs: − find sequences of unrelated instrs (no hazard) that can be overlapped in the pipeline to exploit ILP − A dependent instr must be separated from the source instr by a distance in clock cycles equal to the pipeline latency of the source instr to avoid stall • Scheduling ability of a compiler: − depends on both the amount of ILP available in the program and on the latencies of the functional units in the pipeline.