Date: Mon, 22 Jan 1996 04:56:56 -0800 From: David Greenman <davidg@Root.COM> To: Greg Lehey <lehey.pad@sni.de> Cc: hackers@freebsd.org (Hackers; FreeBSD) Subject: Re: stanford benchmark/usenix Message-ID: <199601221256.EAA14695@Root.COM> In-Reply-To: Your message of "Mon, 22 Jan 1996 13:20:51 %2B0700." <199601221224.NAA10126@nixpbe.pdb.sni.de>
next in thread | previous in thread | raw e-mail | index | archive | help
>> I didn't intend to suggest one, but if you or someone else decides to do >> this, bare in mind that there is definately many 'wrong ways' to do this. We >> don't want a plethora of "if (cpu_class == FOO)" type of things in libc as it >> reduces performance for small operations. I think the way to do it is to jump >> through a function vector that is initialized by default to a generic function. >> The function vector can then be changed to an optimized function for specific >> CPU types. This would happen at some convenient place before program startup, >> or perhaps in the generic function (which could, perhaps, be a stub whose sole >> purpose is to select the appropriate routine, or fall back to a generic one). >> I really don't want to get into this in more detail right now - I don't have >> the time and in the end it would be easier to just sit down and code it. If >> you think you know how to implement this correctly, then by all means, go for >> it! > >Wouldn't it make more sense to have separate libraries for each >processor type, and to install the appropriate versions? Certainly that's another way to do it, but it can be confusing to have lots of different libraries around. I suppose you'd handle this by using a symlink to point to the appropriately optimized version...and of course all of the versions have to at least run on all of the processors (otherwise hardware upgrades become very difficult and confusing (and bug-report generating!). I switch CPUs around enough here that it would be a small problem for me personally, but I suppose it wouldn't be a problem for most people. -DG David Greenman Core Team/Principal Architect, The FreeBSD Project
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199601221256.EAA14695>