LLVM Backend for the VideoCore4, Raspberry Pi 2 VPU

  • It bugs me that LLVM targets are not properly 'plug in'.

    LLVM backends can be in a plugin, but you have to tell the frontend which target to use (so it can use the correct data-layout etc). Its the frontends that don't support plug-in targets. Clang, for example, hardcodes the supported targets.

    A combination of using enums as a 'target triple' and lack of dynamic target registration conspire against easy-to-use out-of-tree targets :(

  • What can you do with this?

  • VC4 is used in all the Raspberry Pi boards, not just the RPi 2.

  • You can run C code on GPUs? I don't know anything about GPUs, but I thought they had a completely different programming model that requires different programming languages and paradigms.

  • How is this different than using gcc like they describe in this book https://jan.newmarch.name/RPi/?

  • Could this be used to give more direct access to the Raspberry Pi Camera subsystem?

    Would appreciate any pointers, no pun intended initially.

  • Outstanding!

    Is it possible to use the LLVMLinux patches to run the kernel directly on the VC4?

  • does this have opencl support now?