2

I'm trying to analyze the causes for long compilation times in my work (Visual studio 2017, many C++ and some C++/CLI projects), so I've turned on the /Bt+ flag and got the nive detailed output regarding how much time c1xx and c2 spent in each file. I'm not sure though what each of them is responsible for, so I'd be glad if someone could elaborate on that.

Thanks in advance

Anorflame
  • 376
  • 3
  • 12
  • Not too useful, but c1xx is the front end compiler, and c2 is the backend compiler. https://en.wikipedia.org/wiki/Compiler#Front_end – ChrisMM Nov 20 '19 at 11:37
  • 20 years ago they detailed some of this stuff in the [MSDN magazine](https://web.archive.org/web/20031211132139/http://msdn.microsoft.com/msdnmag/issues/02/05/Hood/default.aspx). – mirh Jul 11 '22 at 23:12

1 Answers1

1

c1xx and c2 are tools part of Microsoft's compilation toochain. The first is responsible of translating your C++ to an intermediate representation (an AST most likely, something suitable for code generation) and the second translates that intermediate representation to machine code.

They are the "Microsoft C++ Front-end compiler" and "Microsoft C++ Compiler back-end". Their invocations are done through cl.exe which overviews the whole compilation toolchain

Xatyrian
  • 1,364
  • 8
  • 26