This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC 4.0 RC2 Available


commented onMark Mitchell wrote:
The changes that I anticipate between now and the final release are
(a) documentation changes, (b) a patch for 20991, and (c) a possible
patch for 20973.  Other than that, I will only consider patches that
fix egregious problems, like a fail to bootstrap on a primary
platform.

I put comments in PR 20973. It seems reasonable for a reload patch, i.e. only moderately dangerously unsafe as opposed to severely dangerously unsafe.


However, there is a bigger issue for Itanium. The example has an uninitialized register read. On Itanium, this can result in a later NaT consumption fault if that uninitialized register happens to have the NaT bit set. That will result in a core dump. This problem will likely be extremely rare, as gcc doesn't have speculation support yet, and hence can't create NaT bits, but there are a few hand written glibc routines that use them. I think this is a serious problem for Itanium.

This seems to be an unfortunate side effect of tree-ssa code to decompose structure references. The old rtl code (e.g. store_constructor) was careful to always initialize a structure to zero if it was in a register, so that we did not have any uninitialized register reads. The new tree-ssa code makes no attempt to do this. If this problem is fixed, then we should not need any reload patch.

This can perhaps be fixed in flow by adding code to initialize registers that are used before they are set. We already have some code for this in initialize_uninitialized_subregs, but it doesn't handle the general case. Of course, trying to fix this at such a late stage might be just as risky as the reload patch. Tis a shame I didn't notice this earlier.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]