pub struct FirrtlBackend;
Expand description
Implements a simple FIRRTL backend. The backend only accepts Calyx programs with no control and no groups.
Trait Implementations§
Source§impl Backend for FirrtlBackend
impl Backend for FirrtlBackend
Source§fn link_externs(_prog: &Context, _write: &mut OutputFile) -> CalyxResult<()>
fn link_externs(_prog: &Context, _write: &mut OutputFile) -> CalyxResult<()>
Link the extern collected while parsing the program.
Source§fn validate(prog: &Context) -> CalyxResult<()>
fn validate(prog: &Context) -> CalyxResult<()>
Validate this program for emitting using this backend. Returns an
Err(..) if the program has unexpected constructs.
Source§fn emit(ctx: &Context, file: &mut OutputFile) -> CalyxResult<()>
fn emit(ctx: &Context, file: &mut OutputFile) -> CalyxResult<()>
Transforms the program into a formatted string representing a valid
and write it to
write
.Source§fn run(&self, prog: Context, file: OutputFile) -> CalyxResult<()>
fn run(&self, prog: Context, file: OutputFile) -> CalyxResult<()>
Convience function to validate and emit the program.
Source§impl Default for FirrtlBackend
impl Default for FirrtlBackend
Source§fn default() -> FirrtlBackend
fn default() -> FirrtlBackend
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for FirrtlBackend
impl RefUnwindSafe for FirrtlBackend
impl Send for FirrtlBackend
impl Sync for FirrtlBackend
impl Unpin for FirrtlBackend
impl UnwindSafe for FirrtlBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more