From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29865 invoked by alias); 31 Dec 2008 18:35:16 -0000 Received: (qmail 28432 invoked by uid 48); 31 Dec 2008 18:33:56 -0000 Date: Wed, 31 Dec 2008 18:35:00 -0000 Message-ID: <20081231183356.28431.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/33717] slow code generated for 64-bit arithmetic In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pinskia at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-12/txt/msg03042.txt.bz2 ------- Comment #1 from pinskia at gcc dot gnu dot org 2008-12-31 18:33 ------- The inner loop on the trunk looks like: .L15: movl 848(%esp,%eax,4), %edx .L4: movl 448(%esp,%eax,4), %ecx xorl %ebx, %ebx addl %ecx, %esi adcl %ebx, %edi xorl %ecx, %ecx addl %edx, %esi adcl %ecx, %edi movl %esi, 48(%esp,%eax,4) incl %eax movl %edi, %esi xorl %edi, %edi cmpl $100, %eax jne .L15 Which is a lot better. This was improved by the new register allocator on the trunk. Going back to the old one on the trunk, gives what 4.3 gave. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization, ra http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33717