From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2057 invoked by alias); 4 May 2011 22:13:36 -0000 Received: (qmail 2049 invoked by uid 22791); 4 May 2011 22:13:35 -0000 X-SWARE-Spam-Status: No, hits=-0.5 required=5.0 tests=AWL,BAYES_60,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (74.125.121.67) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 04 May 2011 22:13:21 +0000 Received: from wpaz37.hot.corp.google.com (wpaz37.hot.corp.google.com [172.24.198.101]) by smtp-out.google.com with ESMTP id p44MDJcf014804 for ; Wed, 4 May 2011 15:13:19 -0700 Received: from ywa6 (ywa6.prod.google.com [10.192.1.6]) by wpaz37.hot.corp.google.com with ESMTP id p44MDIdh017936 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Wed, 4 May 2011 15:13:18 -0700 Received: by ywa6 with SMTP id 6so632385ywa.30 for ; Wed, 04 May 2011 15:13:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.31.4 with SMTP id e4mr1513795ybe.127.1304547197159; Wed, 04 May 2011 15:13:17 -0700 (PDT) Received: by 10.151.41.13 with HTTP; Wed, 4 May 2011 15:13:16 -0700 (PDT) In-Reply-To: References: <20110429025248.90D61B21AB@azwildcat.mtv.corp.google.com> Date: Wed, 04 May 2011 22:16:00 -0000 Message-ID: Subject: Re: [google] Patch to support calling multi-versioned functions via new GCC builtin. (issue4440078) From: Diego Novillo To: Sriraman Tallam Cc: Xinliang David Li , Richard Guenther , reply@codereview.appspotmail.com, gcc-patches@gcc.gnu.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-System-Of-Record: true 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-05/txt/msg00358.txt.bz2 On Wed, May 4, 2011 at 15:35, Sriraman Tallam wrote: > =C2=A0 =C2=A0 =C2=A0 =C2=A0* tree-pass.h (pass_tree_convert_builtin_dispa= tch): New pass. > =C2=A0 =C2=A0 =C2=A0 =C2=A0(pass_ipa_multiversion_dispatch): New pass. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* builtin-types.def (BT_PTR_FN_INT): New point= er type. > =C2=A0 =C2=A0 =C2=A0 =C2=A0(BT_FN_INT_PTR_FN_INT_PTR_PTR_VAR): New functi= on type for __builtin_dispatch. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* builtins.def (BUILT_IN_DISPATCH): New builti= n to > =C2=A0 =C2=A0 =C2=A0 =C2=A0support multi-version calls. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* mversn-dispatch.c: New file. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* timevar.de (TV_MVERSN_DISPATCH): New time va= r. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* common.opt (fclone-hot-version-paths): New f= lag. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* Makefile.in (mversn-dispatch.o): New rule. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* passes.c (init_optimization_passes): Add the= new > =C2=A0 =C2=A0 =C2=A0 =C2=A0multi-version and dispatch passes to the pass = list. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* params.def (PARAM_NUMBER_OF_MVERSN_CLONES): = Define. > =C2=A0 =C2=A0 =C2=A0 =C2=A0(PARAM_MVERSN_CLONE_CGRAPH_DEPTH): Define. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* doc/invoke.texi (mversn-clone-depth): Docume= nt. > =C2=A0 =C2=A0 =C2=A0 =C2=A0(num-mversn-clones): Document. > =C2=A0 =C2=A0 =C2=A0 =C2=A0(fclone-hot-version-paths): Document. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/mversn7.c: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/mversn4.c: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/mversn4.h: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/mversn4a.c: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/torture/mversn1.c: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/mversn2.c: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/mversn6.c: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/gcc.dg/mversn3.c: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn8.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn10a.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn14a.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/tree-prof/mversn13.C: New t= est. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/tree-prof/mversn15.C: New t= est. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/tree-prof/mversn15a.C: New = test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn9.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn10.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn12.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn14.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/mversn16.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/torture/mversn11.C: New tes= t. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/torture/mversn5.C: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/torture/mversn5.h: New test. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* testsuite/g++.dg/torture/mversn5a.C: New tes= t. > =C2=A0 =C2=A0 =C2=A0 =C2=A0* c-family/c-common.c (handle_version_selector= _attribute): New function. > =C2=A0 =C2=A0 =C2=A0 =C2=A0(c_common_attribute_table): New attribute "ver= sion_selector". OK. Thanks for the quick fix! Diego.