the LLVM system. The best way to do that, IMO, is to experiment with it and see what works best. Why don't you try doing one of the various approaches, see if it has drawbacks, and if so, try another one? You can look for examples in the source base of passes that modify and move around instructions... -Chris http://llvm.cs.uiuc.edu/ http://www.nondot.org/~sabre/Projects/