An automatic process for configuring a microprocessor architecture that
consists of a number of execution units with configurable connectivity
between them. The data and control flows within an input program are used
to influence the process so that the resulting microprocessor is able to
efficiently exploit parallelism available within the input program.