From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14645 invoked by alias); 5 Jul 2005 05:27:16 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 14573 invoked by uid 22791); 5 Jul 2005 05:27:12 -0000 Received: from dsl-tn-081.29.144.59.touchtelindia.net (HELO BalajiS) (59.144.29.81) by sourceware.org (qpsmtpd/0.30-dev) with SMTP; Tue, 05 Jul 2005 05:27:12 +0000 Message-ID: <42CA1A29.2070308@acmet.com> Date: Tue, 05 Jul 2005 05:27:00 -0000 From: Balaji S User-Agent: Mozilla Thunderbird 1.0+ (Windows/20050531) MIME-Version: 1.0 To: Ian Lance Taylor CC: gcc@gcc.gnu.org, Steven Bosscher Subject: Re: Problem with Delayed Branch Scheduling References: <42C8D032.8070902@acmet.com> <200507041201.41751.stevenb@suse.de> <42C9123D.90302@acmet.com> <200507041252.22979.stevenb@suse.de> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-07/txt/msg00135.txt.bz2 _On 05-Jul-2005 00:14, Ian Lance Taylor san wrote_: > Steven Bosscher writes: > >>So you have a few instructions bundled into a VLIW instruction, and >>one of the instructions in the bundle is moved into the delay slot, >>thus breaking your VLIW bundle. Right? > > > I think there are two natural approaches. > > 1) Do the VLIW bundling after delayed branch scheduling. The way to > do that is to the bundling in TARGET_ASM_FUNCTION_PROLOGUE. The > FRV backend does this. I've done this successfully in the past. I think this is a good workaround but nullifying the possibility of having a VLIW bundled instruction in a branch delay slot. > 2) When you do the VLIW bundling, put the instructions into a > PARALLEL. I think this is the right solution which rectifies the problems. Please provide the pointer to where it has to be done. > In general the gcc scheduler does not handle VLIW scheduling very > well, and it needs a fair amount of target specific help. I dont know the list of known requirements (help), but from my side, currently insns are marked by TImode to signify the start of a VLIW bundle but some assemblers may require to signify the end of a VLIW bundle. There is no provision for that. Currently i have hacked GCC to meet this requirement.