<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
{font-family:"MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
{font-family:"Meiryo UI";
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:"\@MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
{font-family:"\@Meiryo UI";
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.gmaildefault, li.gmaildefault, div.gmaildefault
{mso-style-name:gmail_default;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Meiryo UI","sans-serif";
color:black;
font-weight:normal;
font-style:normal;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-PH" link="blue" vlink="purple">
<div class="WordSection1">
<div>
<div>
<div>
<div>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:black">Hello llvm-dev,<o:p></o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:black"><o:p> </o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:#242729">Our team is currently creating an LLVM backend for embedded systems. We're seeking for an advice on the best/correct way to implement our register classes in the Legalize Phase.
As an overview, our backend has 8-bit, 16-bit, 32-bit, and 64-bit register classes. Our instruction set consist mostly of 8-bit and 16-bit instructions. The 32-bit and 64-bit instructions are commonly used in memory access operations.
</span><span style="font-size:11.5pt;color:#242729"><o:p></o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline;box-sizing:border-box;font-size-adjust:none;font-stretch:normal;word-spacing:0px">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:#242729">The LLVM Backend reference we used is the AVR. In their implementation, 8-bit and 16-bit register classes were added with the addRegisterClass function (They only have up to 16-bit
registers) in their TargetLowering. With this, 32-bit and 64-bit operations are automatically split into its equivalent 8/16-bit operations in the DAG after the Legalize Phase.</span><span style="font-size:11.5pt;color:#242729"><o:p></o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline;box-sizing:border-box;font-size-adjust:none;font-stretch:normal;word-spacing:0px">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:#242729">For the LLVM Backend we are currently developing, in one hand, adding the 32-bit and 64-bit register classes would output DAG nodes containing 32/64-bit operations. This would require
us to create pseudo instructions in the TableGen for expansion to its 8/16-bit equivalent operations. On the other hand, not adding these register classes would have the same behavior with the AVR.</span><span style="font-size:11.5pt;color:#242729"><o:p></o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline;box-sizing:border-box;font-size-adjust:none;font-stretch:normal;word-spacing:0px">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:#242729">We are unaware of the consequences of both cases. We have only tested this with load and store operations for now. We have not verified if the DAG output are also correct for other
operations. What should we consider in deciding what to use in our implementation?</span><span style="font-size:11.5pt;color:#242729"><o:p></o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline;box-sizing:border-box;font-size-adjust:none;font-stretch:normal;word-spacing:0px">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:#242729">Thank you very much in advance for your efforts and help!</span><span style="font-size:11.5pt;color:#242729"><o:p></o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline;box-sizing:border-box;font-size-adjust:none;font-stretch:normal;word-spacing:0px">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:#242729">Best,</span><span style="font-size:11.5pt;color:#242729"><o:p></o:p></span></p>
<p class="gmaildefault" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:11.25pt;margin-left:0cm;line-height:14.65pt;vertical-align:baseline;box-sizing:border-box;font-size-adjust:none;font-stretch:normal;word-spacing:0px">
<span style="font-size:11.5pt;font-family:"Verdana","sans-serif";color:#242729">Igie</span><span style="font-size:11.5pt;color:#242729"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
JAPANESE: ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯ã€å®›å…ˆã«æ›¸ã‹ã‚Œã¦ã„ã‚‹æ–¹ã®ã¿ã«é€ä¿¡ã™ã‚‹ã“ã¨ã‚’æ„図ã—ã¦ãŠã‚Šã¾ã™ã€‚誤ã£ã¦ãれ以外ã®æ–¹ã«é€ä¿¡ã•ã‚ŒãŸå ´åˆã¯ã€ç”³ã—訳ã”ã–ã„ã¾ã›ã‚“ãŒã€é€ä¿¡è€…ã¾ã§ãŠçŸ¥ã‚‰ã›ã„ãŸã ãã€å—ä¿¡ã•ã‚ŒãŸãƒ¡ãƒ¼ãƒ«ã‚’削除ã—ã¦ã„ãŸã ãã¾ã™ã‚ˆã†ãŠé¡˜ã„ã„ãŸã—ã¾ã™ã€‚ã¾ãŸã€ã‚³ãƒ³ãƒ”ュータ・ウィルスã®æ··å…¥ç‰ã«ã‚ˆã£ã¦ãƒ¡ãƒ¼ãƒ«ã®æ¬ è½ãƒ»ä¸æ•´åˆãƒ»é…滞ç‰ãŒç™ºç”Ÿã—ã€ä½•ã‚‰ã®ã”ä¸ä¾¿ã‚’ãŠã‹ã‘ã™ã‚‹ã“ã¨ãŒç”Ÿã˜ã¦ã‚‚弊社ã¯ãã®è²¬ä»»ã‚’è² ã„ã¾ã›ã‚“。 ENGLISH: This e-mail is intended for the person(s) to which it
is addressed. If you have received it by mistake, please notify the sender and delete the received email. In addition, our company shall not assume any responsibility even if it causes any inconvenience, such as loss of mail, inconsistencies, delays, etc.,
due to the inclusion of computer viruses.
</body>
</html>