<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">You can view the current status of the in-tree AVR backend <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AVR/">here</a>.</p>
<p style="margin:0px 0px 1.2em!important">Allen is right when he says that a good amount of the skeleton code has been added so far. The backend is probably about 40% in tree currently. There are a few things that will need to be fixed before the merge is completed however.</p>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">We have three 16-bit pointer registers: <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">X</code>, <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">Y</code>, and <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">Z</code>. If a function allocates on the stack, <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">Z</code> must be used for the stack pointer. Currently we have a hack which hooks into the regalloc, undoing all uses of the <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">Z</code> register in a function once it allocates. It is messy, and touches some of the generic regalloc code.</li>
<li style="margin:0.5em 0px">TableGen related modifications</li>
</ul>
<p style="margin:0px 0px 1.2em!important">There is a list of ‘upstream-blocking’ issues detailed <a href="https://github.com/avr-llvm/llvm/issues?q=is%3Aopen+is%3Aissue+label%3Ablocks-upstreaming">here</a>.</p>
<div title="MDH:WW91IGNhbiB2aWV3IHRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgaW4tdHJlZSBBVlIgYmFja2Vu
ZCBbaGVyZV0oaHR0cDovL2xsdm0ub3JnL3ZpZXd2Yy9sbHZtLXByb2plY3QvbGx2bS90cnVuay9s
aWIvVGFyZ2V0L0FWUi8pLjxkaXY+PGJyPjwvZGl2PjxkaXY+QWxsZW4gaXMgcmlnaHQgd2hlbiBo
ZSBzYXlzIHRoYXQgYSBnb29kIGFtb3VudCBvZiB0aGUgc2tlbGV0b24gY29kZSBoYXMgYmVlbiBh
ZGRlZCBzbyBmYXIuIFRoZSBiYWNrZW5kIGlzIHByb2JhYmx5IGFib3V0IDQwJSBpbiB0cmVlIGN1
cnJlbnRseS4gVGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB0aGF0IHdpbGwgbmVlZCB0byBiZSBmaXhl
ZCBiZWZvcmUgdGhlIG1lcmdlIGlzIGNvbXBsZXRlZCBob3dldmVyLjwvZGl2PjxkaXY+PGJyPjwv
ZGl2PjxkaXY+KiBXZSBoYXZlIHRocmVlIDE2LWJpdCBwb2ludGVyIHJlZ2lzdGVyczogYFhgLCBg
WWAsIGFuZCBgWmAuIElmIGEgZnVuY3Rpb24gYWxsb2NhdGVzIG9uIHRoZSBzdGFjaywgYFpgIG11
c3QgYmUgdXNlZCBmb3IgdGhlIHN0YWNrIHBvaW50ZXIuIEN1cnJlbnRseSB3ZSBoYXZlIGEgaGFj
ayB3aGljaCBob29rcyBpbnRvIHRoZSByZWdhbGxvYywgdW5kb2luZyBhbGwgdXNlcyBvZiB0aGUg
YFpgIHJlZ2lzdGVyIGluIGEgZnVuY3Rpb24gb25jZSBpdCBhbGxvY2F0ZXMuIEl0IGlzIG1lc3N5
LCBhbmQgdG91Y2hlcyBzb21lIG9mIHRoZSBnZW5lcmljIHJlZ2FsbG9jIGNvZGUuPC9kaXY+PGRp
dj4qIFRhYmxlR2VuIHJlbGF0ZWQgbW9kaWZpY2F0aW9uczwvZGl2PjxkaXY+PGJyPjwvZGl2Pjxk
aXY+VGhlcmUgaXMgYSBsaXN0IG9mICd1cHN0cmVhbS1ibG9ja2luZycgaXNzdWVzIGRldGFpbGVk
IFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vYXZyLWxsdm0vbGx2bS9pc3N1ZXM/cT1pcyUzQW9w
ZW4raXMlM0Fpc3N1ZStsYWJlbCUzQWJsb2Nrcy11cHN0cmVhbWluZykuPC9kaXY+PGRpdj48YnI+
PC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Feb 7, 2016 at 8:00 AM, Allen Lorenz <span dir="ltr"><<a href="mailto:allenlorenz@gmail.com" target="_blank">allenlorenz@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">To those interested in AVR backend additions to LLVM, the LLVM review tools "Phabricator" ( don't ask me to say that 3 times fast ),  allows easy searching.   Go to <a href="http://reviews.llvm.org/" target="_blank">http://reviews.llvm.org/</a>  and type in AVR in the search entry.  This will give you a list of the commits, and resolutions.  From my understanding ( NO Expert ), a large part of the skeleton code has been added.  The leave the rest of the skeleton,and all the fleshy bits.  Good progress Dylan!.  <br></div><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Mon, Dec 21, 2015 at 3:28 AM, Dylan McKay <span dir="ltr"><<a href="mailto:dylanmckay34@gmail.com" target="_blank">dylanmckay34@gmail.com</a>></span> wrote:<br></span><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Hey Allen,</p>
<p dir="ltr">Progress is slow but it is happening. It will take a number of more releases until it is ready.</p>
<p dir="ltr">Currently the backend is marked as an 'experimental' target, which means the only way it can be used is by compiling LLVM from source and passing '-DLLVM_EXPERIMENTAL_TARGETS=AVR' to CMake.</p>
<p dir="ltr">At the moment almost no AVR-specific code has been merged, including clang support, which should come after the backend is functional.</p>
<div style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><div dir="ltr"><div><div>How is the llvm-avr backend integration going ? Will it be functional ( experimental ) in the 3.8 release ?  Will Clang recognize options for avr ?<br><br></div>thanks.<br></div>   Allen<br></div>
<br></span>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></div>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>