<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>