From patchwork Sat May 7 14:54:32 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Hubicka X-Patchwork-Id: 94497 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 19F8C100813 for ; Sun, 8 May 2011 00:54:52 +1000 (EST) Received: (qmail 19503 invoked by alias); 7 May 2011 14:54:49 -0000 Received: (qmail 19459 invoked by uid 22791); 7 May 2011 14:54:48 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from nikam.ms.mff.cuni.cz (HELO nikam.ms.mff.cuni.cz) (195.113.20.16) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 07 May 2011 14:54:34 +0000 Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id ECF7C9AC871; Sat, 7 May 2011 16:54:32 +0200 (CEST) Date: Sat, 7 May 2011 16:54:32 +0200 From: Jan Hubicka To: gcc-patches@gcc.gnu.org Subject: cleanup i386 prefetch_beneficial_p Message-ID: <20110507145432.GI3424@kam.mff.cuni.cz> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hi, we should use ix86_tune_indices instead of random predicates in i386.c code Bootstrapped/regtested x86_64-linux, comitted. Honza Index: ChangeLog =================================================================== --- ChangeLog (revision 173532) +++ ChangeLog (working copy) @@ -1,5 +1,13 @@ 2011-05-06 Jan Hubicka + * i386.h (ix86_tune_indices): Add X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL. + (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macor. + * i386.c (initial_ix86_tune_features): Add X86_SOFTARE_PREFETCHING_BENEFICIAL. + (software_prefetching_beneficial_p): Remove predicate. + (ix86_option_override_internal): Use new macro. + +2011-05-06 Jan Hubicka + * ipa-inline.c (update_callee_keys): Don't reset node growth cache. 2011-05-06 Jan Hubicka Index: config/i386/i386.h =================================================================== --- config/i386/i386.h (revision 173531) +++ config/i386/i386.h (working copy) @@ -322,6 +322,7 @@ enum ix86_tune_indices { X86_TUNE_FUSE_CMP_AND_BRANCH, X86_TUNE_OPT_AGU, X86_TUNE_VECTORIZE_DOUBLE, + X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL, X86_TUNE_LAST }; @@ -418,6 +419,8 @@ extern unsigned char ix86_tune_features[ #define TARGET_OPT_AGU ix86_tune_features[X86_TUNE_OPT_AGU] #define TARGET_VECTORIZE_DOUBLE \ ix86_tune_features[X86_TUNE_VECTORIZE_DOUBLE] +#define TARGET_SOFTWARE_PREFETCHING_BENEFICIAL \ + ix86_tune_features[X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL] /* Feature tests against the various architecture variations. */ enum ix86_arch_indices { Index: config/i386/i386.c =================================================================== --- config/i386/i386.c (revision 173531) +++ config/i386/i386.c (working copy) @@ -2083,6 +2083,11 @@ static unsigned int initial_ix86_tune_fe /* X86_TUNE_VECTORIZE_DOUBLE: Enable double precision vector instructions. */ ~m_ATOM, + + /* X86_SOFTARE_PREFETCHING_BENEFICIAL: Enable software prefetching + at -O3. For the moment, the prefetching seems badly tuned for Intel + chips. */ + m_K6_GEODE | m_AMD_MULTIPLE }; /* Feature tests against the various architecture variations. */ @@ -3257,27 +3262,6 @@ ix86_target_string (int isa, int flags, return ret; } -/* Return TRUE if software prefetching is beneficial for the - given CPU. */ - -static bool -software_prefetching_beneficial_p (void) -{ - switch (ix86_tune) - { - case PROCESSOR_GEODE: - case PROCESSOR_K6: - case PROCESSOR_ATHLON: - case PROCESSOR_K8: - case PROCESSOR_AMDFAM10: - case PROCESSOR_BTVER1: - return true; - - default: - return false; - } -} - /* Return true, if profiling code should be emitted before prologue. Otherwise it returns false. Note: For x86 with "hotfix" it is sorried. */ @@ -4205,7 +4189,7 @@ ix86_option_override_internal (bool main if (flag_prefetch_loop_arrays < 0 && HAVE_prefetch && optimize >= 3 - && software_prefetching_beneficial_p ()) + && TARGET_SOFTWARE_PREFETCHING_BENEFICIAL) flag_prefetch_loop_arrays = 1; /* If using typedef char *va_list, signal that __builtin_va_start (&ap, 0)