From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1369 invoked by alias); 19 Aug 2004 14:59:17 -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 1319 invoked by uid 9082); 19 Aug 2004 14:59:16 -0000 Date: Thu, 19 Aug 2004 14:59:00 -0000 From: "gcc-bugzilla at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org Message-ID: <20040819145911.17102.steinmtz@us.ibm.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug other/17102] New: Missed constant folding opportunity X-Bugzilla-Reason: CC X-SW-Source: 2004-08/txt/msg01935.txt.bz2 List-Id: Description: A non-optimal code sequence is illustrated. Duplicate using gcc 3.5 and command line: gcc -O3 -m64 -c test.c Testcase: #include "stdio.h" const int C0 = 0; const int C1 = 1; const int C2 = 2; void bar () { printf("bar\n"); } void foo () { /* GCC is able to figure this one out, do constant folding and dead code elimination, and eliminate the entire block of code */ if (1, 2, 0) bar (); /* .. it unsuccessfully resolves this one. */ if (C1, C2, C0) bar (); } Assembly: .foo: mflr 0 ld 9,.LC2@toc(2) std 0,16(1) lwz 0,0(9) stdu 1,-112(1) cmpwi 7,0,0 bne- 7,.L6 addi 1,1,112 ld 0,16(1) mtlr 0 blr .L6: ld 3,.LC3@toc(2) bl .puts nop addi 1,1,112 ld 0,16(1) mtlr 0 blr -- Summary: Missed constant folding opportunity Product: gcc Version: 3.5.0 Status: UNCONFIRMED Severity: enhancement Priority: P1 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: steinmtz at us dot ibm dot com CC: gcc-bugs at gcc dot gnu dot org,steinmtz at us dot ibm dot com GCC build triplet: powerpc64-linux GCC host triplet: powerpc64-linux GCC target triplet: powerpc64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17102