From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27065 invoked by alias); 30 Nov 2008 20:53:52 -0000 Received: (qmail 26691 invoked by uid 48); 30 Nov 2008 20:52:33 -0000 Date: Sun, 30 Nov 2008 20:53:00 -0000 Message-ID: <20081130205233.26690.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/37364] [4.4 Regression] IRA generates inefficient code due to missing regmove pass In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl dot tools at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-11/txt/msg02680.txt.bz2 ------- Comment #27 from hjl dot tools at gmail dot com 2008-11-30 20:52 ------- (In reply to comment #26) > Resurrecting regmove is not an option. Time is better spent on figuring out > what regmove does, that makes a difference, and see if IRA can be taught to do > the same. > x86 has (define_insn "*movdi_1_rex64" [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r ,r,m ,!m,*y,*y,?r ,m ,?*Ym,?*y,*x,*x,?r ,m,?*Yi,*x,?*x,?*Ym") (match_operand:DI 1 "general_operand" "Z ,rem,i,re,n ,C ,*y,*Ym,*y,r ,m ,C ,*x,*Yi,*x,r ,m ,*Ym,*x"))] "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))" The alternative with * is available for regmove, but not for IRA/reload. I don't know how you can resolve it without a different pass. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37364