"Dave Korn" <[EMAIL PROTECTED]> writes: > On 23 August 2007 22:34, Mark Mitchell wrote: > > > I do think that generating the same code, independent of host system, is > > a very important property of GCC's design, just like generating the same > > code independent of whether or not we're compiling with -g. > > Hear, hear. I've always thought these principles were meant to be > sacrosanct, but now I try to look it up, I don't see them explicitly > listed in either the development methodology, the release criteria, > or anywhere else likely-looking. > > Can the SC please consider adding these requirements explicitly to > the list of "Design and Development Goals" in the mission statement? > Or would it make more sense as part of the development methodology, > or the portability section of the gcc-specific coding conventions? > (Perhaps both; as a high-level goal in the mission statement, and > with additions to the portability section of the coding conventions > warning about issues like HOST_WIDE_INT size on 32-vs-64-bit hosts > and not using pointers in hashes.)
As far as I know, this actually isn't a property of GCC's design, at present. Although the code generated is equivalent, there are a number of cases where it is not exactly the same. I don't remember them all, but one case was that in many places the code does something like: some_function(gen_reg_rtx(), gen_reg_rtx()); and so details of the RTL generated depend on the order of evaluation of function arguments. This was a big problem before we had GIMPLE, and may still be an issue.