From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6666 invoked by alias); 28 Jul 2009 23:26:31 -0000 Received: (qmail 6658 invoked by uid 22791); 28 Jul 2009 23:26:30 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mx2.redhat.com (HELO mx2.redhat.com) (66.187.237.31) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 28 Jul 2009 23:26:24 +0000 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6SNQMV1020897; Tue, 28 Jul 2009 19:26:22 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6SNQLpd015933; Tue, 28 Jul 2009 19:26:21 -0400 Received: from stone.twiddle.home (vpn-8-172.rdu.redhat.com [10.11.8.172]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6SNQH32020307; Tue, 28 Jul 2009 19:26:20 -0400 Message-ID: <4A6F8914.30705@redhat.com> Date: Tue, 28 Jul 2009 23:26:00 -0000 From: Richard Henderson User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20090513 Fedora/3.0-2.3.beta2.fc11 Thunderbird/3.0b2 MIME-Version: 1.0 To: Jan Hubicka CC: jh@suse.cz, gcc@gcc.gnu.org Subject: Re: [trans-mem] cgraph edges vs function cloning References: <4A67BF29.9090208@twiddle.net> <20090723172828.GA20017@atrey.karlin.mff.cuni.cz> <4A6E333E.7060402@redhat.com> <20090728171601.GB7178@atrey.karlin.mff.cuni.cz> <4A6F38F3.5020402@redhat.com> In-Reply-To: <4A6F38F3.5020402@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-07/txt/msg00592.txt.bz2 On 07/28/2009 10:44 AM, Richard Henderson wrote: > I guess I'll poke at cleaning this up today. I've got to > familiarize myself with how virtual clones work... The virtual clones that ipa-cp makes seems to be easy. My thought here is that since (virtual) clones don't have actual bodies (and when they acquire bodies they cease to be clones), then there's no reason for them to have callee edges at all. If you want the list of callees for a clone, you look at node->clone_of->callees. In this way, when we materialize a clone, we don't have to go looking for (and updating) edges, we just create them as we copy the statements. What I don't understand is how the inliner uses clones. Can you explain this? r~