Jaa


New Job, SP1

I recently switched from the lead of the Code Gen & Tools team for Visual C++ to the lead for the Code Gen team for the .Net Framework.  I've not used managed code much, but for some classes of code, it sure does look easier to use [I'm working on a goofy GUI app for my personal use in C# that took me forever to do in C++].  There are lots of interesting problems to solve in this space, and a dramatically different set of customer constraints & potential customer scenarios.  I have to admit the security concerns for a JIT in the ASP.NET world are a little bit unnerving...

In far more interesting news, VS 2005 SP1 just released.  OK, it actually released a few days ago, but my power didn't come back on from our nasty storm Thursday night until Monday, so I was a bit preoccupied.  I highly recommend picking this up if you're using the AMD64 compiler.  We shipped an awful lot of compiler fixes, along with a few code quality improvements, in this release.  You'll notice that prologues and epilogues of complex functions look much different, and that the compiler throughput (the amount of time it takes to compile a function) is a bit better.  There are some severe bugs in the PGO scenario {Profile Guided Optimization} that anyone using this feature really needs.  Aside from that, I hear that the VS experience is just much more pleasant than VS 2005 RTM.  Go forth and Download!

Anyway, I'll try to get some more interesting blogs posts going in the future - work seems to have calmed down quite a bit, since Vista finally shipped.

Comments

  • Anonymous
    January 23, 2007
    Kevin, could you give any examples of "prologues and epilogues of complex functions look much different"? Thanks!

  • Anonymous
    February 13, 2007
    In 2005 RTM, we always used movs to save integer registers for -O2, and we always used pushes to save them for -O1.  This was less than ideal, given that moves are big, and pushes don't allow you to use the register parameter home locations.  So now, for both -O1 and -O2, we use any available register param home location for the first [0-4] nonvolatile registers saves, as the function allows, and then push all the remaining registers.  The winds up generating slightly bigger code for -O1, but uses considerably less stack space, and winds up generating slightly smaller code for -O2, but doesn't use any more stack space.

  • Anonymous
    March 05, 2007
    I think that we need to have more information on optomizations for applications and more tuts for ASM. Developing in MASM for a while and it's just awesome! I would love to see more information from Microsoft on ASM and a nice promotion for developers at this level in the form of Microsoft supported information/documentation.