From patchwork Fri May 13 10:20:33 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 95454 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 B6FA6B6EE6 for ; Fri, 13 May 2011 20:20:53 +1000 (EST) Received: (qmail 9840 invoked by alias); 13 May 2011 10:20:52 -0000 Received: (qmail 9809 invoked by uid 22791); 13 May 2011 10:20:50 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RFC_ABUSE_POST, TW_ZJ, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-pv0-f175.google.com (HELO mail-pv0-f175.google.com) (74.125.83.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 13 May 2011 10:20:34 +0000 Received: by pvc30 with SMTP id 30so1269621pvc.20 for ; Fri, 13 May 2011 03:20:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.144.15 with SMTP id r15mr776788wfd.439.1305282033919; Fri, 13 May 2011 03:20:33 -0700 (PDT) Received: by 10.143.158.12 with HTTP; Fri, 13 May 2011 03:20:33 -0700 (PDT) Date: Fri, 13 May 2011 12:20:33 +0200 Message-ID: Subject: [PATCH, i386]: Trivial, use can_create_pseudo_p () some more From: Uros Bizjak To: gcc-patches@gcc.gnu.org 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 Hello! Use can_create_pseudo_p () for things that happen strictly before reload. 2011-05-13 Uros Bizjak * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo (). (*movxf_internal_nointeger): Ditto. (*movdf_internal_rex64): Ditto. (*movdf_internal): Ditto. (*movdf_internal_nointeger): Ditto. (*movsf_internal): Ditto. (sincos splitters): Use can_create_pseudo (). Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline SVN. Uros. Index: config/i386/i386.md =================================================================== --- config/i386/i386.md (revision 173723) +++ config/i386/i386.md (working copy) @@ -2866,7 +2866,7 @@ (match_operand:XF 1 "general_operand" "fm,f,G,roF,Fr"))] "optimize_function_for_speed_p (cfun) && !(MEM_P (operands[0]) && MEM_P (operands[1])) - && (reload_in_progress || reload_completed + && (!can_create_pseudo_p () || GET_CODE (operands[1]) != CONST_DOUBLE || memory_operand (operands[0], XFmode))" { @@ -2895,7 +2895,7 @@ (match_operand:XF 1 "general_operand" "fm,f,G,*roF,F*r"))] "optimize_function_for_size_p (cfun) && !(MEM_P (operands[0]) && MEM_P (operands[1])) - && (reload_in_progress || reload_completed + && (!can_create_pseudo_p () || standard_80387_constant_p (operands[1]) || GET_CODE (operands[1]) != CONST_DOUBLE || memory_operand (operands[0], XFmode))" @@ -2938,7 +2938,7 @@ (match_operand:DF 1 "general_operand" "fm,f,G,rm,r,F ,F ,C ,Y2*x,m ,Y2*x,r ,Yi"))] "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) - && (reload_in_progress || reload_completed + && (!can_create_pseudo_p () || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || (!(TARGET_SSE2 && TARGET_SSE_MATH) && optimize_function_for_size_p (cfun) @@ -3102,7 +3102,7 @@ "!TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) && optimize_function_for_speed_p (cfun) && TARGET_INTEGER_DFMODE_MOVES - && (reload_in_progress || reload_completed + && (!can_create_pseudo_p () || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || (!(TARGET_SSE2 && TARGET_SSE_MATH) && optimize_function_for_size_p (cfun) @@ -3255,7 +3255,7 @@ "!TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1])) && (optimize_function_for_size_p (cfun) || !TARGET_INTEGER_DFMODE_MOVES) - && (reload_in_progress || reload_completed + && (!can_create_pseudo_p () || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || (!(TARGET_SSE2 && TARGET_SSE_MATH) && optimize_function_for_size_p (cfun) @@ -3263,8 +3263,7 @@ && standard_80387_constant_p (operands[1])) || GET_CODE (operands[1]) != CONST_DOUBLE || ((optimize_function_for_size_p (cfun) - || !TARGET_MEMORY_MISMATCH_STALL - || reload_in_progress || reload_completed) + || !TARGET_MEMORY_MISMATCH_STALL) && memory_operand (operands[0], DFmode)))" { switch (which_alternative) @@ -3420,7 +3419,7 @@ (match_operand:SF 1 "general_operand" "fm,f,G,rmF,Fr,C,x,xm,x,m ,*y,*y ,r ,Yi,r ,*Ym"))] "!(MEM_P (operands[0]) && MEM_P (operands[1])) - && (reload_in_progress || reload_completed + && (!can_create_pseudo_p () || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE) || (!TARGET_SSE_MATH && optimize_function_for_size_p (cfun) && standard_80387_constant_p (operands[1])) @@ -13525,7 +13524,7 @@ (set (match_operand:XF 1 "register_operand" "") (unspec:XF [(match_dup 2)] UNSPEC_SINCOS_SIN))] "find_regno_note (insn, REG_UNUSED, REGNO (operands[0])) - && !(reload_completed || reload_in_progress)" + && can_create_pseudo_p ()" [(set (match_dup 1) (unspec:XF [(match_dup 2)] UNSPEC_SIN))]) (define_split @@ -13535,7 +13534,7 @@ (set (match_operand:XF 1 "register_operand" "") (unspec:XF [(match_dup 2)] UNSPEC_SINCOS_SIN))] "find_regno_note (insn, REG_UNUSED, REGNO (operands[1])) - && !(reload_completed || reload_in_progress)" + && can_create_pseudo_p ()" [(set (match_dup 0) (unspec:XF [(match_dup 2)] UNSPEC_COS))]) (define_insn "sincos_extendxf3_i387" @@ -13561,7 +13560,7 @@ (set (match_operand:XF 1 "register_operand" "") (unspec:XF [(float_extend:XF (match_dup 2))] UNSPEC_SINCOS_SIN))] "find_regno_note (insn, REG_UNUSED, REGNO (operands[0])) - && !(reload_completed || reload_in_progress)" + && can_create_pseudo_p ()" [(set (match_dup 1) (unspec:XF [(float_extend:XF (match_dup 2))] UNSPEC_SIN))]) @@ -13573,7 +13572,7 @@ (set (match_operand:XF 1 "register_operand" "") (unspec:XF [(float_extend:XF (match_dup 2))] UNSPEC_SINCOS_SIN))] "find_regno_note (insn, REG_UNUSED, REGNO (operands[1])) - && !(reload_completed || reload_in_progress)" + && can_create_pseudo_p ()" [(set (match_dup 0) (unspec:XF [(float_extend:XF (match_dup 2))] UNSPEC_COS))])