ICBW but I think the CodeBender <https://github.com/codebendercc/compiler> team
were using Clang at least, though I don't think they were using LLVM. GCC
is pretty entrenched, but there was a good deal of excitement about the
rise of LLVM last year IIRC...

Cheers,
Vic

Victor Aprea // Wicked Device
victor.ap...@wickeddevice.com
T: @vicatcu <http://twitter.com/vicatcu/>

On Thu, Mar 16, 2017 at 7:12 AM, David Brown <da...@westcontrol.com> wrote:

> On 16/03/17 11:22, Senthil Kumar Selvaraj wrote:
> >
> > David Brown writes:
> >
> >> It might be a little heretical to ask here, but has anyone tried out the
> >> experimental AVR backend in the latest llvm/clang release?  I have not
> >> made much use of clang, but it's been good for gcc to have a bit of
> >> friendly competition.  I think it will be interesting to see how
> >> clang/llvm differs from gcc for the AVR.
> >
> > I built it a while back when I added basic support for avr to clang.
> > Dylan McKay, who IIRC has corresponded in this list before, owns the
> > backend, and has added a bunch of support to clang as well. His
> > primary motivation is to get the Rust programming language running on
> > the avr, again IIRC.
> >
> > Last I checked, I still had to use the binutils linker, as lld didn't
> > yet know about the avr. The generated code did look suboptimal compared
> > to gcc, but I didn't play around much to be honest.
> >
>
> Thanks for that information.
>
> It would be interesting to know if clang/llvm could generate better code
> for the AVR.  gcc has a few fundamental problems with the port.  In
> particular, gcc expects its targets to have registers capable of holding
> an int - in this case, 16 bits.  So the AVR port of gcc has to work with
> register pairs r0:r1, r2:r3, r4:r5, etc., and then the backend peephole
> passes try to remove redundant operations.  But there are always some
> redundant operations that get left, and the register allocator cannot
> take full advantage of the AVR's registers when you are using 8-bit
> types.  I have no idea if the same thing affects llvm, or if there is
> potential for getting better results there.
>
> Of course, this would require someone spending a good deal of time and
> effort on the task - it would be a challenge to justify it as a business
> decision for Microchip.
>
>
>
> _______________________________________________
> AVR-GCC-list mailing list
> AVR-GCC-list@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/avr-gcc-list
>
_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to