<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
I'm also not sure the line between frontend and backend is so clear.<BR>
They are immediately adjacent of course and do surprisingly similar things.<BR>
 You know, the front end does a lot of bit twiddling.<BR>
  I think a lot of what is in m3back belongs elsewhere, either in m3front<BR>
   or a nonexistant middle layer. It does a lot of target-independent<BR>
   optimization and bit twiddling. I guess ultimately the design is<BR>
   m3back would have M3sparc.m3, M3ppc.m3, M3alpha.m3, M3amd64.m3 (<BR>
   possibly part of m3x86.m3), M3mips.m3, etc., and the existing x86 stuff would gradually get<BR>
   refactored so they'd share a lot of code.<BR>
 <BR>
But ok, I've copied the stuff to m3back.<BR>
 <BR>
 - Jay<BR> <BR>
<HR id=stopSpelling>
From: jay.krell@cornell.edu<BR>To: hosking@elego.de; m3commit@elegosoft.com<BR>Date: Mon, 8 Feb 2010 16:15:36 +0000<BR>Subject: Re: [M3commit] CVS Update: cm3<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
In the one case, there is a dependency on the ordering of the enumeration.<BR>It seems to me that anything that depends on the order of an enumeration<BR>belongs very near the definition of the enumeration.<BR> <BR>Stuff like this:<BR> <BR>  SignedType = ARRAY CGType OF BOOLEAN {<BR>     FALSE, TRUE,  FALSE, TRUE,  (* Word8 .. Int16 *)<BR>     FALSE, TRUE,  FALSE, TRUE,  (* Word32 .. Int64 *)<BR>     TRUE,  TRUE,  TRUE,         (* Reel .. XReel *)<BR>     FALSE, FALSE, FALSE         (* Addr .. Void *)<BR>  };<BR> <BR>CONST<BR>  ToUnsignedType = ARRAY [CGType.Word32..CGType.Int64] OF<BR>                        [CGType.Word32..CGType.Word64] {<BR>                            CGType.Word32, CGType.Word32,<BR>                            CGType.Word64, CGType.Word64 };<BR> <BR>I'm likely going to duplicate this exact stuff.<BR> <BR> - Jay<BR> <BR>> Date: Mon, 8 Feb 2010 17:00:54 +0000<BR>> To: m3commit@elegosoft.com<BR>> From: hosking@elego.de<BR>> Subject: [M3commit] CVS Update: cm3<BR>> <BR>> CVSROOT: /usr/cvs<BR>> Changes by: hosking@birch. 10/02/08 17:00:54<BR>> <BR>> Modified files:<BR>> cm3/m3-sys/m3middle/src/: Target.i3 TargetMap.i3 TargetMap.m3 <BR>> <BR>> Log message:<BR>> Revert muddying of m3middle interfaces. These are engineered in support<BR>> of the front-end. They should not be perturbed for down-stream back-end needs.<BR>> <BR>                                       </body>
</html>