From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27137 invoked by alias); 23 Jun 2011 14:08:51 -0000 Received: (qmail 27129 invoked by uid 22791); 23 Jun 2011 14:08:50 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-qy0-f175.google.com (HELO mail-qy0-f175.google.com) (209.85.216.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 23 Jun 2011 14:08:35 +0000 Received: by qyk30 with SMTP id 30so3277452qyk.20 for ; Thu, 23 Jun 2011 07:08:35 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.17.148 with SMTP id s20mr347609qca.149.1308838115038; Thu, 23 Jun 2011 07:08:35 -0700 (PDT) Received: by 10.229.47.78 with HTTP; Thu, 23 Jun 2011 07:08:34 -0700 (PDT) In-Reply-To: References: <20110618083233.GA22220@kam.mff.cuni.cz> Date: Thu, 23 Jun 2011 14:34:00 -0000 Message-ID: Subject: Re: varpool alias reorg From: "H.J. Lu" To: Jan Hubicka Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg01761.txt.bz2 On Sat, Jun 18, 2011 at 7:19 AM, H.J. Lu wrote: > On Sat, Jun 18, 2011 at 1:32 AM, Jan Hubicka wrote: >> Hi, >> this patch makes symetric changes to varpool as did the prevoius series = to cgraph. >> Basically the aliases are now represented as separate varpool nodes with= alias reference >> to the variable they refer to, with some infrastructure to walk the alia= s references >> as needed. >> >> Bootstrapped/regtested x86_64-linux, comitted. >> >> Honza >> >> =A0 =A0 =A0 =A0* lto-symtab.c (lto_varpool_replace_node): Remove code ha= ndling >> =A0 =A0 =A0 =A0extra name aliases. >> =A0 =A0 =A0 =A0(lto_symtab_resolve_can_prevail_p): Likewise. >> =A0 =A0 =A0 =A0(lto_symtab_merge_cgraph_nodes): Update alias_of pointers. >> =A0 =A0 =A0 =A0* cgraphbuild.c (record_reference): Remove extra body ali= as code. >> =A0 =A0 =A0 =A0(mark_load): Likewise. >> =A0 =A0 =A0 =A0(mark_store): Likewise. >> =A0 =A0 =A0 =A0* cgraph.h (varpool_node): Remove extra_name filed; >> =A0 =A0 =A0 =A0add alias_of and extraname_alias. >> =A0 =A0 =A0 =A0(varpool_create_variable_alias, varpool_for_node_and_alia= ses): Declare. >> =A0 =A0 =A0 =A0(varpool_alias_aliased_node): New inline function. >> =A0 =A0 =A0 =A0(varpool_variable_node): New function. >> =A0 =A0 =A0 =A0* cgraphunit.c (handle_alias_pairs): Handle also variable= aliases. >> =A0 =A0 =A0 =A0* ipa-ref.c (ipa_record_reference): Allow aliases on vari= ables. >> =A0 =A0 =A0 =A0* lto-cgraph.c (lto_output_varpool_node): Update streamin= g. >> =A0 =A0 =A0 =A0(input_varpool_node): Likewise. >> =A0 =A0 =A0 =A0* lto-streamer-out.c (produce_symtab): Remove extra name = aliases. >> =A0 =A0 =A0 =A0(varpool_externally_visible_p): Remove extra body alias c= ode. >> =A0 =A0 =A0 =A0(function_and_variable_visibility): Likewise. >> =A0 =A0 =A0 =A0* tree-ssa-structalias.c (associate_varinfo_to_alias_1): = New function. >> =A0 =A0 =A0 =A0(ipa_pta_execute): Use it. >> =A0 =A0 =A0 =A0* varpool.c (varpool_remove_node): Remove extra name alia= s code. >> =A0 =A0 =A0 =A0(varpool_mark_needed_node): Likewise. >> =A0 =A0 =A0 =A0(varpool_analyze_pending_decls): Analyze aliases. >> =A0 =A0 =A0 =A0(assemble_aliases): New functoin. >> =A0 =A0 =A0 =A0(varpool_assemble_decl): Use it. >> =A0 =A0 =A0 =A0(varpool_create_variable_alias): New function. >> =A0 =A0 =A0 =A0(varpool_extra_name_alias): Rewrite. >> =A0 =A0 =A0 =A0(varpool_for_node_and_aliases): New function. > > This caused: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D49463 > This patch is incorrect as shown in the PR above. --=20 H.J.