Path: csiph.com!au2pb.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED!nerds-end From: Walter Banks Newsgroups: comp.compilers Subject: Re: 8-bit processor specific techniques Date: Mon, 28 Sep 2015 11:04:28 -0400 Organization: Aioe.org NNTP Server Lines: 35 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <15-09-023@comp.compilers> References: <15-09-019@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Trace: miucha.iecc.com 1443468408 86908 2001:470:1f07:1126:0:676f:7373:6970 (28 Sep 2015 19:26:48 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Mon, 28 Sep 2015 19:26:48 +0000 (UTC) Keywords: code, history, comment Posted-Date: 28 Sep 2015 15:26:48 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com X-Received-Bytes: 2812 X-Received-Body-CRC: 473524775 Xref: csiph.com comp.compilers:1618 On 27/09/2015 10:30 AM, lucretia9@lycos.co.uk wrote: > I've been looking around for anything related to compiler development for > 8-bit processors. ... > [There are plenty of compilers for 8 bit machines, particulary at > retrocomputing sites, but I don't recall a lot of interesting code > generation stuff. They tend to have so few registers and be so > irregular that little of the optimization stuff intended for code > generation applies. -John] John, you actually have identified the source for a lot of code generation technology used in 8 bit compilers. There is a wealth of material in some of the compilers that is used to map processors with unusual instruction sets on to C. Unfortunately most of this material has never been published and hasn't been the focus of research projects. The techniques used mostly show up in application specific ISA's. This is the type of processor whose applications tend not to be hosted and are small enough that compilers can be exhaustive and often have tight execution requirements. A couple starting places for this type of compiler. Once parsed implement a strategy pass to map out application implementation approachs this time. Seriously consider dispensing with linkers for this type of compiler, their original purpose was to allow separately compiled modules and combine them later, in this type of compiler cross compiling a whole application is both possible and appropriate. w.. [Agreed about the linker bit. These days, in the tool sets for embedded processors the object files that the compilers create are really just an intermediate code, and the linker does a global optimization pass over the whole program and only then generates the machine code. -John]