ir code generation
merge