linux-mips
[Top] [All Lists]

Re: Observations on LLSC and SMP

To: Ed Martini <martini@c2micro.com>
Subject: Re: Observations on LLSC and SMP
From: Daniel Jacobowitz <dan@debian.org>
Date: Fri, 25 Mar 2005 17:53:35 -0500
Cc: linux-mips@linux-mips.org
In-reply-to: <424494AC.7020407@c2micro.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <4230DB4C.7090103@c2micro.com> <20050314110101.GF7759@linux-mips.org> <423763B9.2000907@c2micro.com> <20050316120647.GB8563@linux-mips.org> <42446555.6090005@c2micro.com> <20050325193759.GA23046@nevyn.them.org> <424494AC.7020407@c2micro.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.6+20040907i
On Fri, Mar 25, 2005 at 02:46:04PM -0800, Ed Martini wrote:
> Daniel Jacobowitz wrote:
> 
> >On Fri, Mar 25, 2005 at 11:24:05AM -0800, Ed Martini wrote:
> > 
> >
> >>1. If the first part of the if were an ifdef instead it would result in 
> >>a code size reduction as well as a runtime performance gain.
> >>   
> >>
> >
> >You should spend a little time playing with an optimizing compiler. 
> >They're capable of working out when a condition will always be false.
> > 
> >
> Yes, but in the case where R10000_LLSC_WAR is true, but cpu_has_llsc 
> returns false there are still two wasted tests, and two blocks of code 
> that the compiler can't optimize out.

Not only is cpu_has_llsc often a constant, R10000_LLSC_WAR will never
be true if the CPU does not have LL/SC.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

<Prev in Thread] Current Thread [Next in Thread>