merge sourcegen changes from clcompiler2 branch