An extended classification of inter-instruction dependency and its application in automatic synthesis of pipelined processors