Integration of AVR backend

I maintain and develop an AVR backend for LLVM on GitHub. It has now progressed quite far, with the ability to compile most non-trivial programs unmodified (for example, the Arduino suite.

It has complete machine code/ELF support, also implementing the entire instruction set (as of 2015), and a functionally-complete assembly parser. David also implemented a test harness which allows executing our CodeGen tests on AVR, integrated into the testing suite. On-target execution tests can be run with make check and by defining a single environment variable.

The other main contributor, David (CC’d), would like to get the backend integrated into LLVM trunk.

What are your thoughts?

From: "Dylan McKay via llvm-dev" <llvm-dev@lists.llvm.org>
To: llvm-dev@lists.llvm.org, "David Siegel" <agnat@me.com>
Sent: Thursday, September 3, 2015 10:35:16 PM
Subject: [llvm-dev] Integration of AVR backend

I maintain and develop an AVR backend for LLVM on GitHub . It has now
progressed quite far, with the ability to compile most non-trivial
programs unmodified (for example, the Arduino suite.

It has complete machine code/ELF support, also implementing the
entire instruction set (as of 2015), and a functionally-complete
assembly parser. David also implemented a test harness which allows
executing our CodeGen tests on AVR, integrated into the testing
suite. On-target execution tests can be run with `make check` and by
defining a single environment variable.

The other main contributor, David (CC’d), would like to get the
backend integrated into LLVM trunk.

What are your thoughts?

It seems like it might be a good candidate for inclusion as an in-tree backend (experimental, at first). You'll need to be prepared for a non-trivial code-review process, but otherwise, please feel free to post a patch to reviews.llvm.org (Code Reviews with Phabricator — LLVM 18.0.0git documentation). That's probably the best way to get everyone on the same page regarding what needs to be reviewed.

-Hal

Exciting!!!

Somehow I missed the original e-mail.

I'd say - yes, this would be a very cood backend for inclusion!

Looking forward to it too, from a fellow AVR compiler hacker for the “other” toolchain :slight_smile:

Regards
Senthil

How is the quality of code generation compared to gcc?

Not great. The biggest focus has been correctness.

I have submitted D13302 for review.