[LLVMdev] Back ends for instructional use?
Vikram Adve
vadve at illinois.edu
Sat Aug 20 08:14:06 PDT 2011
Thank you, all, for the responses to my question -- they have been very helpful. What I'm teaching this Fall is an introductory compiler class and the complexity of ARM is a more than what I am looking for. The goal of this project is not to deal with a lot of bells and whistles but to understand the general principles of writing (part of) a back-end.
Given that the MIPS back-end seems to be in reasonably good shape, I'll go with a MIPS project.
--Vikram
Professor, Computer Science
University of Illinois at Urbana-Champaign
http://llvm.org/
http://llvm.cs.illinois.edu/~vadve
On Aug 16, 2011, at 4:57 PM, Anton Korobeynikov wrote:
> Hello Vikram,
>
>> I'm trying to decide whether to use either the MIPS or ARM back ends for course projects in our introductory compiler class. I'd like to use something that has a stable back end, so that the students can use the selector, probably without changes, and do a project on register allocation and stack layout. We don't have MIPS or ARM hardware (other than possibly a few donated Android phones to play with), so a simulator like Spim will be essential.
>>
>> 1. Is there a similar open-source or free simulator for ARM that would run llc- or lli-generated code on Linux?
>>
>> 2. How stable is the MIPS back end? We need the whole thing for testing, and as a reference implementation.
> Everything depends on what you want to use the backend for. Actually I
> thought MSP430 backend as an example for such "educational" backend
> (instruction set it only 25 or something like this instructions, RISC,
> etc.), it even works for simple cases, but I don't have time right now
> to finish it up to "fully usable" state.
>
> Surely, if you're planning to teach some complex stuff (as Jacob
> pointed for ARM case), then surely MSP430 is too simple for such a
> purpose :)
>
> --
> With best regards, Anton Korobeynikov
> Faculty of Mathematics and Mechanics, Saint Petersburg State University
More information about the llvm-dev
mailing list