From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9675 invoked by alias); 19 Apr 2005 20:32:05 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 9635 invoked by uid 48); 19 Apr 2005 20:32:00 -0000 Date: Tue, 19 Apr 2005 20:32:00 -0000 From: "wilson at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org Message-ID: <20050419203158.21111.wilson@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug middle-end/21111] New: IA-64 NaT consumption faults due to uninitialized register reads X-Bugzilla-Reason: CC X-SW-Source: 2005-04/txt/msg02600.txt.bz2 List-Id: Because of the decomposition of structures in tree-ssa, the middle end is emitting RTL code that can read uninitialized registers. On IA-64, this can result in a NaT consumption fault if the uninitialized register has its NaT bit set. Before tree-ssa, we would have had a constructor, and store_constructor takes pains to ensure that a register is initialized to zero before we start setting fields in it. Since we do not yet have speculation support in the IA-64 backend, this problem will be very hard to trigger without a synthetic example. There is some hand written code in glibc that uses speculation, and hence can generate NaT bits. Also, there is code in the kernel that can generate NaT bits. -- Summary: IA-64 NaT consumption faults due to uninitialized register reads Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: wilson at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: ia64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21111