Hi, I wrote a lengthy wiki page with step-by-step instructions and demos on building/installing/using gcc 4.5.0 with Graphite under a non-root user account (my test system only had gcc 3.4.5 installed). I think those instructions could be useful to some users of gcc, so feel free to copy them or link to them. At least I haven't seen similarly straightforward yet very specific and complete instructions elsewhere. The wiki page is:
http://openwall.info/wiki/internal/gcc-local-build This wiki page also shows the following (as it goes through the parallelization demos): I encountered several shortcomings of gcc while testing its parallelization capabilities. This includes unreasonable non-use of SSE2 with unsigned ints (whereas SSE2 is used just fine with signed ones), and unreasonable non-parallelization when the loop index variable is declared unsigned (auto-parallelization of the same loop does occur when the index variable is signed). I do not file bug reports for these just yet because I do not know what the intended behavior is - maybe there is in fact some reason (unknown to me) for avoiding SSE2 and parallelization for unsigned ints. Also, I was not able to trigger an equivalent of OpenMP reduction without in fact using an OpenMP directive. Maybe this is as intended for the time being, although perhaps this is an area for improvement. Without this, auto-parallelization appears to be of little practical use, because most (all?) loops that do get parallelized involve writes, which, in my testing, almost implies that either their data does not fit in cache or they incur cache coherence overhead. I am not complaining (in fact, I am happy to see gcc gain these features), nor am I asking for any help with this. I am merely sharing my findings in hope that someone will find this feedback useful. :-) Thanks, Alexander