IntermediateCode gen