From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4938 invoked by alias); 10 Jan 2007 17:57:00 -0000 Received: (qmail 4915 invoked by uid 22791); 10 Jan 2007 17:56:58 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 10 Jan 2007 17:56:50 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id l0AHumWA022860; Wed, 10 Jan 2007 12:56:48 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [10.11.255.20]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id l0AHum3G005103; Wed, 10 Jan 2007 12:56:48 -0500 Received: from opsy.redhat.com (ton.toronto.redhat.com [172.16.14.15]) by pobox.corp.redhat.com (8.13.1/8.12.8) with ESMTP id l0AHukKi028515; Wed, 10 Jan 2007 12:56:47 -0500 Received: by opsy.redhat.com (Postfix, from userid 500) id 46A68378324; Wed, 10 Jan 2007 08:48:38 -0700 (MST) To: Gcc Patch List Cc: Java Patch List Subject: Patch: remove can_use_bit_fields_p lang hook From: Tom Tromey Reply-To: tromey@redhat.com X-Attribution: Tom Date: Wed, 10 Jan 2007 17:57:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-IsSubscribed: yes Mailing-List: contact java-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-patches-owner@gcc.gnu.org X-SW-Source: 2007-q1/txt/msg00022.txt.bz2 The can_use_bit_fields_p lang hook is only used by gcj. It is used to suppress certain bit field optimizations when generating .class files. Since gcj no longer generates .class files (this is outsourced to ecj), this hook is not needed. So, this patch removes the hook. Bootstrapped & tested on x86 FC5. Ok? Tom Index: ChangeLog from Tom Tromey * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p. (fold_binary): Likewise. * langhooks.c (lhd_can_use_bit_fields_p): Removed. * langhooks-def.h (lhd_can_use_bit_fields_p): Removed. (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed. (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P. * langhooks.h (struct lang_hooks): Removed field 'can_use_bit_fields_p'. Index: java/ChangeLog from Tom Tromey * lang.c (java_can_use_bit_fields_p): Removed. (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed. Index: fold-const.c =================================================================== --- fold-const.c (revision 120621) +++ fold-const.c (working copy) @@ -1,6 +1,6 @@ /* Fold a constant sub-tree into a single node for C-compiler Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -5117,11 +5117,6 @@ return 0; } - /* After this point all optimizations will generate bit-field - references, which we might not want. */ - if (! lang_hooks.can_use_bit_fields_p ()) - return 0; - /* See if we can find a mode that contains both fields being compared on the left. If we can't, fail. Otherwise, update all constants and masks to be relative to a field of that size. */ @@ -10947,8 +10942,7 @@ } /* If this is a comparison of a field, we may be able to simplify it. */ - if (((TREE_CODE (arg0) == COMPONENT_REF - && lang_hooks.can_use_bit_fields_p ()) + if ((TREE_CODE (arg0) == COMPONENT_REF || TREE_CODE (arg0) == BIT_FIELD_REF) /* Handle the constant case even without -O to make sure the warnings are given. */ Index: langhooks.c =================================================================== --- langhooks.c (revision 120621) +++ langhooks.c (working copy) @@ -185,13 +185,6 @@ } } -/* By default we always allow bit-field based optimizations. */ -bool -lhd_can_use_bit_fields_p (void) -{ - return true; -} - /* Type promotion for variable arguments. */ tree lhd_type_promotes_to (tree ARG_UNUSED (type)) Index: langhooks.h =================================================================== --- langhooks.h (revision 120621) +++ langhooks.h (working copy) @@ -347,10 +347,6 @@ assembler does not talk about it. */ void (*set_decl_assembler_name) (tree); - /* Return nonzero if fold-const is free to use bit-field - optimizations, for instance in fold_truthop(). */ - bool (*can_use_bit_fields_p) (void); - /* Nonzero if operations on types narrower than their mode should have their results reduced to the precision of the type. */ bool reduce_bit_field_operations; Index: langhooks-def.h =================================================================== --- langhooks-def.h (revision 120621) +++ langhooks-def.h (working copy) @@ -1,5 +1,5 @@ /* Default macros to initialize the lang_hooks data structure. - Copyright 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. @@ -60,7 +60,6 @@ extern void lhd_print_error_function (struct diagnostic_context *, const char *); extern void lhd_set_decl_assembler_name (tree); -extern bool lhd_can_use_bit_fields_p (void); extern bool lhd_warn_unused_global_decl (tree); extern void lhd_incomplete_type_error (tree, tree); extern tree lhd_type_promotes_to (tree); @@ -116,7 +115,6 @@ #define LANG_HOOKS_STATICP lhd_staticp #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL lhd_do_nothing_t #define LANG_HOOKS_SET_DECL_ASSEMBLER_NAME lhd_set_decl_assembler_name -#define LANG_HOOKS_CAN_USE_BIT_FIELDS_P lhd_can_use_bit_fields_p #define LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS false #define LANG_HOOKS_NO_BODY_BLOCKS false #define LANG_HOOKS_PRINT_STATISTICS lhd_do_nothing @@ -303,7 +301,6 @@ LANG_HOOKS_STATICP, \ LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, \ LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, \ - LANG_HOOKS_CAN_USE_BIT_FIELDS_P, \ LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS, \ LANG_HOOKS_NO_BODY_BLOCKS, \ LANG_HOOKS_PRINT_STATISTICS, \ Index: java/lang.c =================================================================== --- java/lang.c (revision 120621) +++ java/lang.c (working copy) @@ -60,7 +60,6 @@ void *, struct pointer_set_t *); static int merge_init_test_initialization (void * *, void *); static int inline_init_test_initialization (void * *, void *); -static bool java_can_use_bit_fields_p (void); static bool java_dump_tree (void *, tree); static void dump_compound_expr (dump_info_p, tree); static bool java_decl_ok_for_sibcall (tree); @@ -178,8 +177,6 @@ #define LANG_HOOKS_DECL_PRINTABLE_NAME lang_printable_name #undef LANG_HOOKS_PRINT_ERROR_FUNCTION #define LANG_HOOKS_PRINT_ERROR_FUNCTION java_print_error_function -#undef LANG_HOOKS_CAN_USE_BIT_FIELDS_P -#define LANG_HOOKS_CAN_USE_BIT_FIELDS_P java_can_use_bit_fields_p #undef LANG_HOOKS_TYPE_FOR_MODE #define LANG_HOOKS_TYPE_FOR_MODE java_type_for_mode @@ -597,14 +594,6 @@ return CL_Java; } -static bool -java_can_use_bit_fields_p (void) -{ - /* The bit-field optimizations cause problems when generating class - files. */ - return flag_emit_class_files ? false : true; -} - /* Post-switch processing. */ static bool java_post_options (const char **pfilename)