1. A method of translating a plurality of basic blocks of program code, comprising: decoding a plurality of basic blocks of program code; generating an intermediate representation for each of said basic blocks of program code; performing a partial dead code elimination optimization on said intermediate representation to generate an optimized intermediate representation; generating target code from said optimized intermediate representation.