GCC 4.4.0 was released on April 21st. Notable changes include fascinating new optimizations for loops. Particularly, they include the ability for the compiler to automatically rewrite loops to take into account memory layout of the system. I recall distinctly in my Intro to Data Structures CS class the teacher using the example of a two dimensional loop which iterated the "wrong way" (causing many disparate memory look ups and cache-misses) as a classic performance killer.
Most of the postings I make to this website are for my own personal reference. They are things that I want to make sure I don't forget, or at least have easy access to. Today is no exception. For some reason, I can never remember the following command and have to track it down every time I'm interested.
echo "" | cpp -dD
This prints out all of the #define's that GCC is providing for you. In some ways it's a fascinating little look inside the compiler.
On mingw-gcc 3.4.5 you get the following:
An interviewer who thinks he is being clever might present you with a code sample like the following and ask you what the output would be:
Recent comments
4 weeks 3 days ago
7 weeks 9 hours ago
7 weeks 4 days ago
8 weeks 9 hours ago
8 weeks 9 hours ago
8 weeks 9 hours ago
9 weeks 5 days ago
10 weeks 5 days ago
12 weeks 6 days ago
12 weeks 6 days ago