Hello Michael  and all,<div><br></div><div>So the issue related can be reduced into the two problem:</div><div><br></div><div>1. There is no good representation of EBC int in LLVM IR.</div><div><br></div><div>2. clang IRGen may have some serious modification.</div>
<div><br></div><div>I know LLVM IR is extensible. Is it possible to add a new type in(natural int) to represent EFI int and</div><div><br></div><div>integrated into clang IRGen??</div><div><br></div><div>thanks</div><div>
<br></div><div>yi-hong<br><br><div class="gmail_quote">2010/12/17 David Chisnall <span dir="ltr"><<a href="mailto:theraven@sucs.org">theraven@sucs.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 17 Dec 2010, at 03:15, Michael Spencer wrote:<br>
<br>
> As long as EFI C isn't radically different from normal C, I would<br>
> suggest adding a EBC target to LLVM first. Otherwise you have no way<br>
> to test the clang modifications.<br>
<br>
<br>
</div>As was stated in the last post on this subject, EFI C has integer types that have a size determined at run time.  I can't see how this would be integrated into the existing IRGen infrastructure in clang without some serious modification, nor how you would represent these in LLVM IR.  Mapping from a language that has variable-sized ints, to a target that has variable-sized ints, via an intermediate representation that does not have variable-sized ints would be tricky, I suspect.<br>

<br>
David<br>
<br>
-- Sent from my PDP-11<br>
<br>
</blockquote></div><br></div>