From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19968 invoked by alias); 4 Jun 2010 13:08:54 -0000 Received: (qmail 19897 invoked by uid 48); 4 Jun 2010 13:08:36 -0000 Date: Fri, 04 Jun 2010 13:08:00 -0000 Message-ID: <20100604130836.19896.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/44382] Slow integer multiply In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl dot tools at gmail dot com" 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: 2010-06/txt/msg00466.txt.bz2 ------- Comment #2 from hjl dot tools at gmail dot com 2010-06-04 13:08 ------- (In reply to comment #1) > Because our tree reassoc doesn't re-associate them. > The tree reassoc pass makes it slower: [hjl@gnu-6 44382]$ cat x.i extern int a, b, c, d, e, f; void foo () { a = (b * c) * (d * e); } [hjl@gnu-6 44382]$ gcc -S -O2 x.i [hjl@gnu-6 44382]$ cat x.s .file "x.i" .text .p2align 4,,15 .globl foo .type foo, @function foo: .LFB0: .cfi_startproc movl c(%rip), %eax imull b(%rip), %eax imull d(%rip), %eax imull e(%rip), %eax movl %eax, a(%rip) ret [hjl@gnu-6 44382]$ gcc -S -O2 x.i -fno-tree-reassoc [hjl@gnu-6 44382]$ cat x.s .file "x.i" .text .p2align 4,,15 .globl foo .type foo, @function foo: .LFB0: .cfi_startproc movl b(%rip), %eax movl d(%rip), %edx imull c(%rip), %eax imull e(%rip), %edx imull %edx, %eax movl %eax, a(%rip) ret [hjl@gnu-6 44382]$ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44382