RISC-V: towards a reference LLVM backend Alex Bradbury - - PowerPoint PPT Presentation

risc v towards a reference llvm backend
SMART_READER_LITE
LIVE PREVIEW

RISC-V: towards a reference LLVM backend Alex Bradbury - - PowerPoint PPT Presentation

RISC-V: towards a reference LLVM backend Alex Bradbury asb@lowrisc.org @asbradbury @lowRISC 3rd November 2016 What is RISC-V? A free to implement ISA originally developed at UC Berkeley Has Linux, QEMU, FreeBSD, seL4, Coreboot, ...


slide-1
SLIDE 1

3rd November 2016

RISC-V: towards a reference LLVM backend

Alex Bradbury asb@lowrisc.org @asbradbury @lowRISC

slide-2
SLIDE 2

What is RISC-V?

  • A free to implement ISA originally developed at UC Berkeley
  • Has Linux, QEMU, FreeBSD, seL4, Coreboot, ... ports
  • 32-bit, 64-bit, 128-bit(!)
  • Modular specification (scales up and down)
  • See http://riscv.org

2

slide-3
SLIDE 3

The opportunity

  • Hardware/software co-design enabling rapid innovation from the open

hardware community.

  • Make LLVM more accessible to groups performing computer architecture

research

  • Improve documentation for the wider LLVM community

3

slide-4
SLIDE 4

The approach

  • Incremental, easily reviewable patches
  • Start with the MC layer
  • Maintain the patchset separately as a living artefact, even after merging
  • Act as a ‘reference’ backend
  • See github.com/lowRISC/riscv-llvm

4

slide-5
SLIDE 5

Status

  • Initial set of MC patches mostly reviewed and starting to be committed
  • Follow-on patches for basic codegen will be posted in the next couple of

weeks

  • Docs/tutorial: currently exists in the form of copious notes. Needs to be

cleaned up and shared

5

slide-6
SLIDE 6

Future

  • Complete codegen
  • Benchmarking, optimisations
  • LLDB, LLD, ...
  • Support for RVC (compressed 16-bit instruction encoding)
  • Prototype support for proposed vector extensions
  • Tagged memory

6

slide-7
SLIDE 7

Get involved

  • Chat to me about how you can help (asb@lowrisc.org, or in person)
  • Review patches
  • Look at “RFC: Implement variable-sized register classes”

7