Skip to content

cucapra/calyx

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

* checkpoint some stuff

* checkpoint

* checkpoint

* x

* lock apparently

* checkpoint

* unfinished thing

* some iterator sillyness

* still messing around with iterators

* auxillary map stuff

* checkpoint

* Some extreme shenanigans

* ignore this

* checkpoint

* impl `IntoIterator` for IdList references

* translation checkpoint

* obvious mistake

* handle group/combgroup translation

* cleaning up some of the unused imports

* messy checkpoint

* really need to push these to the remote

* this is stupid and bad but I am still doing it

* LOCK TIME

* x

* checkpoint

* shennanigans continue

* cleanup

* murder the benches

* just use ahash instead of hashbrown

* modify idmap

* throw in a debug assert

* remove the explicit count

* range containment

* Make the sparse map accessible

* thoroughly busted checkpoint

* changes to a bunch of things oops

* bunch of stuff

* clean up

* comp translation done?

* cascade delete

* derive debug for secondary

* enjoy some debug printing

* offsets

* add the ability to actually skip offsets

* Ugh components can be ref cells kill me

* Attempt at multicomp

* invoke stub

* hoist the command stuff in main temporarily

* Fix all the newly busted things
cfd41b5

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fud
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
web
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A Compiler Infrastructure for Accelerator Generators

Calyx is an intermediate language and infrastructure for building compilers that generate custom hardware accelerators.

See the Calyx website, language documentation and the documentation for the source code for more information. Calyx's design is based on our paper.

Installation

Quick

If you want to try out the compiler, install it using cargo:

cargo install futil

This will install the futil binary which includes the calyx frontend, optimization passes, and several backends.

Recommended

Follow the getting started instructions.

Organization

This repository contains the source code for the following:

  1. calyx (calyx/): The intermediate representation used for hardware accelerator generation.
  2. futil (src/): The compiler infrastructure for compiling Calyx programs. If calyx is like LLVM, then futil is Clang.
  3. Calyx debugger (interp/): An interpreter and debugger for Calyx.
  4. fud, The Calyx driver: Utility tool that wraps various hardware toolchains.