LLVM xCORE examples
|Description:||LLVM IR examples for the xCORE backend|
This repository contains various examples demonstrating how to use of the xCORE specific intrinsics present in the LLVM xCORE backend.
- Getting started with LLVM
- LLVM language reference manual
- Tools Development Guide (contains the xCORE ABI)
- The XMOS XS1 Architecture
Representation of resources
Resources identifers are represented as pointers to
i8 in address space 1.
The benefit of representing these as pointers is that we can use LLVM's alias
analysis infrastructure to determine whether two resource identifier can point
to the same resource. The attributes
nocapture can be
applied to resource identifiers if appropriate.
- threads.ll - Example showing how to start threads
- chanends.ll - Example of how to use chanend resources
- timers.ll - Example of how to use timers
- ports.ll - Example showing how to use ports
- events.ll - Example of how to implement XC's select statement using events
- multiple_returns.ll - Example of how to call a multiple return function