Application of instruction analysis/scheduling techniques to resource allocation of superscalar processors