On 28 August 2013 18:17, pavan p m <pm.pa...@gmail.com> wrote:

> Thanks Renato, Yes, i wanted to cross-compile from x86_64 to ARM. More
> specifically, I needed to do it for the cortex m0 processor.
> My eventual goal would be to tweak a certain part of the instruction
> scheduler specific to the project I am working on. So I am thinking if it
> is possible using LLVM.
>

This is most definitely possible! ;)


I saw that there is support for cortex-a9 onwards, but am not sure, if
> there is any support for cortex m series.
>

There is support for M0, you just have to specify "-target thumbv6m
-mcpu=cortex-m0" and you should be good to go. Because LLVM is inherently a
cross-compiler, you can only specify a CPU when using the right back-end,
and you do so by specifying the "-target". I agree this is confusing and I
intend to map all confusing things when cross-compiling, so if you do find
weird behaviour, be sure to send my way.


In that case, I would have implement a backend which would support this
> particular board. This seems to be a long shot, but would you provide your
> opinion if this is possible at all? If not, then what would be the proper
> approach?
>

You don't need to implement the back-end, only the pass you want. I'm not
sure how easy it is to plugin a new scheduler, as the LLVM scheduler is a
bit of a mess, but you could try by changing the current scheduler(s).

A few documents that you can find interesting, some of which you seem to
have read already:

http://llvm.org/docs/WritingAnLLVMBackend.html

http://llvm.org/docs/CodeGenerator.html

http://llvm.org/docs/CodingStandards.html

http://llvm.org/docs/ProgrammersManual.html

cheers,
--renato
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to