<meta http-equiv="content-type" content="text/html; charset=utf-8">Agreed. General consensus seems to be that frontends have no business, nor should they be required to have this tight coupling with the target information. As far as I can tell, a new target independent ABI component would also solve the issues raised in the developer meeting talk as well.<div>
<br></div><div>FCAs, as they currently exist for structs, aren't the right solution and will have to go to achieve this. For ABI independence, I think there needs to be a higher abstraction type that is handled more intelligently in targets.</div>
<div><br></div><div>Amara</div><br><div class="gmail_quote">On 21 September 2011 08:04, John McCall <span dir="ltr"><<a href="mailto:rjmccall@apple.com">rjmccall@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Sep 20, 2011, at 11:38 PM, Chris Lattner wrote:<br>
> On Sep 20, 2011, at 4:03 AM, David Chisnall wrote:<br>
>> On 20 Sep 2011, at 06:34, David Meyer wrote:<br>
>>> * Front-ends would no longer need to implement the ABIs for each<br>
>>> target architecture to get full ABI compliance. They would generate<br>
>>> high-level bitcode, and the ABI lowering knowledge would be contained<br>
>>> in LLVM.<br>
>><br>
>> I'd consider this to be a major benefit all by itself.  Not only is the ABI-dependence of the IR a major layering violation, it's also incredibly badly documented.  For example, I know that FreeBSD's x86 ABI returns small structures in registers, but I have no idea how I am supposed to know that this means that {float, float} is returned as an i64 (or why anyone thinks that's even a remotely sane representation in the IR of 'two floats in float registers').<br>

><br>
> My read of this thread is that there are two independent things being discussed:<br>
><br>
> 1. The utility of a target independent "IR ABI" that nacl wants, and<br>
> 2. Whether first class aggregates are the way to lower structs.<br>
><br>
> #1 is clearly essential for native client, and potentially really interesting for other projects.<br>
<br>
</div>Yeah, to be clear, I think this is a great goal.  I would love it if we could get frontends out of the business of doing bizarre ABI lowering around calls.<br>
<font color="#888888"><br>
John.<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br>