Enum calyx_frontend::Attribute
source · [−]pub enum Attribute {
+Attribute in calyx_frontend - Rust Enum calyx_frontend::Attribute
source · [−]pub enum Attribute {
Bool(BoolAttr),
Num(NumAttr),
Internal(InternalAttr),
@@ -8,9 +8,9 @@
cannot be parsed back.
Variants
Bool(BoolAttr)
Num(NumAttr)
Internal(InternalAttr)
Unknown(Id)
Unknown attribute. Should not appear in the Calyx codebase.
Useful for other frontends using Calyx
-Trait Implementations
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Self
Converts to this type from the input type.sourceimpl PartialEq<Attribute> for Attribute
sourcefn eq(&self, other: &Attribute) -> bool
This method tests for self
and other
values to be equal, and is used
+Trait Implementations
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Self
Converts to this type from the input type.sourceimpl Copy for Attribute
sourceimpl Eq for Attribute
sourceimpl StructuralEq for Attribute
sourceimpl StructuralPartialEq for Attribute
Auto Trait Implementations
impl RefUnwindSafe for Attribute
impl Send for Attribute
impl Sync for Attribute
impl Unpin for Attribute
impl UnwindSafe for Attribute
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl Copy for Attribute
sourceimpl Eq for Attribute
sourceimpl StructuralEq for Attribute
sourceimpl StructuralPartialEq for Attribute
Auto Trait Implementations
impl RefUnwindSafe for Attribute
impl Send for Attribute
impl Sync for Attribute
impl Unpin for Attribute
impl UnwindSafe for Attribute
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
diff --git a/source/calyx_frontend/enum.BoolAttr.html b/source/calyx_frontend/enum.BoolAttr.html
index dbbf764f..45766e43 100644
--- a/source/calyx_frontend/enum.BoolAttr.html
+++ b/source/calyx_frontend/enum.BoolAttr.html
@@ -1,6 +1,6 @@
-BoolAttr in calyx_frontend - Rust Enum calyx_frontend::BoolAttr
source · [−]#[repr(u8)]
+BoolAttr in calyx_frontend - Rust Enum calyx_frontend::BoolAttr
source · [−]#[repr(u8)]
pub enum BoolAttr {
-Show 15 variants
TopLevel,
+Show 16 variants
TopLevel,
External,
NoInterface,
Reset,
@@ -15,6 +15,7 @@
OneHot,
Inline,
Promoted,
+ Fast,
}
Expand description
Attributes that are only allowed to take boolean values.
Variants
TopLevel
This is the top-level component
External
Cell should be externalized
@@ -33,8 +34,9 @@
won’t necesarily be honored.)
Inline
Inline this subcomponent
Promoted
denotes a static component or control promoted from dynamic
+Fast
https://github.com/calyxir/calyx/issues/1828
Implementations
Trait Implementations
Trait Implementations
sourceimpl Copy for BoolAttr
sourceimpl Eq for BoolAttr
sourceimpl StructuralEq for BoolAttr
sourceimpl StructuralPartialEq for BoolAttr
Auto Trait Implementations
impl RefUnwindSafe for BoolAttr
impl Send for BoolAttr
impl Sync for BoolAttr
impl Unpin for BoolAttr
impl UnwindSafe for BoolAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
diff --git a/source/calyx_frontend/enum.InternalAttr.html b/source/calyx_frontend/enum.InternalAttr.html
index 7397b3a4..82f70c7d 100644
--- a/source/calyx_frontend/enum.InternalAttr.html
+++ b/source/calyx_frontend/enum.InternalAttr.html
@@ -1,4 +1,4 @@
-InternalAttr in calyx_frontend - Rust Enum calyx_frontend::InternalAttr
source · [−]pub enum InternalAttr {
+InternalAttr in calyx_frontend - Rust Enum calyx_frontend::InternalAttr
source · [−]pub enum InternalAttr {
DEAD,
NODE_ID,
BEGIN_ID,
@@ -8,9 +8,9 @@
START,
END,
}
Expand description
Internal attributes that cannot be parsed back from the IL.
-Variants
DEAD
NODE_ID
BEGIN_ID
END_ID
ST_ID
LOOP
START
END
Trait Implementations
sourceimpl AsRef<str> for InternalAttr
sourceimpl Clone for InternalAttr
sourcefn clone(&self) -> InternalAttr
Returns a copy of the value. Read more1.0.0 · sourcefn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresourceimpl Debug for InternalAttr
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Self
Converts to this type from the input type.sourceimpl Hash for InternalAttr
sourceimpl PartialEq<InternalAttr> for InternalAttr
sourcefn eq(&self, other: &InternalAttr) -> bool
This method tests for self
and other
values to be equal, and is used
+Variants
DEAD
NODE_ID
BEGIN_ID
END_ID
ST_ID
LOOP
START
END
Trait Implementations
sourceimpl AsRef<str> for InternalAttr
sourceimpl Clone for InternalAttr
sourcefn clone(&self) -> InternalAttr
Returns a copy of the value. Read more1.0.0 · sourcefn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresourceimpl Debug for InternalAttr
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Self
Converts to this type from the input type.sourceimpl Hash for InternalAttr
sourceimpl PartialEq<InternalAttr> for InternalAttr
sourcefn eq(&self, other: &InternalAttr) -> bool
sourceimpl Copy for InternalAttr
sourceimpl Eq for InternalAttr
sourceimpl StructuralEq for InternalAttr
sourceimpl StructuralPartialEq for InternalAttr
Auto Trait Implementations
impl RefUnwindSafe for InternalAttr
impl Send for InternalAttr
impl Sync for InternalAttr
impl Unpin for InternalAttr
impl UnwindSafe for InternalAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl Copy for InternalAttr
sourceimpl Eq for InternalAttr
sourceimpl StructuralEq for InternalAttr
sourceimpl StructuralPartialEq for InternalAttr
Auto Trait Implementations
impl RefUnwindSafe for InternalAttr
impl Send for InternalAttr
impl Sync for InternalAttr
impl Unpin for InternalAttr
impl UnwindSafe for InternalAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
diff --git a/source/calyx_frontend/enum.NumAttr.html b/source/calyx_frontend/enum.NumAttr.html
index 8cde63fa..417e584e 100644
--- a/source/calyx_frontend/enum.NumAttr.html
+++ b/source/calyx_frontend/enum.NumAttr.html
@@ -1,4 +1,4 @@
-NumAttr in calyx_frontend - Rust Enum calyx_frontend::NumAttr
source · [−]pub enum NumAttr {
+NumAttr in calyx_frontend - Rust Enum calyx_frontend::NumAttr
source · [−]pub enum NumAttr {
Go,
Done,
ReadTogether,
@@ -21,9 +21,9 @@
This indicates the component can serve ``double-duty’’ as both static and
dynamic.
Therefore, we only place if we can guarantee the interval of the component.
-
Trait Implementations
sourceimpl PartialEq<NumAttr> for NumAttr
sourcefn eq(&self, other: &NumAttr) -> bool
This method tests for self
and other
values to be equal, and is used
+Trait Implementations
sourceimpl Copy for NumAttr
sourceimpl Eq for NumAttr
sourceimpl StructuralEq for NumAttr
sourceimpl StructuralPartialEq for NumAttr
Auto Trait Implementations
impl RefUnwindSafe for NumAttr
impl Send for NumAttr
impl Sync for NumAttr
impl Unpin for NumAttr
impl UnwindSafe for NumAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl Copy for NumAttr
sourceimpl Eq for NumAttr
sourceimpl StructuralEq for NumAttr
sourceimpl StructuralPartialEq for NumAttr
Auto Trait Implementations
impl RefUnwindSafe for NumAttr
impl Send for NumAttr
impl Sync for NumAttr
impl Unpin for NumAttr
impl UnwindSafe for NumAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
diff --git a/source/calyx_frontend/parser/enum.AliasedRule.html b/source/calyx_frontend/parser/enum.AliasedRule.html
index 4a31b62a..79a4133c 100644
--- a/source/calyx_frontend/parser/enum.AliasedRule.html
+++ b/source/calyx_frontend/parser/enum.AliasedRule.html
@@ -1,101 +1,101 @@
AliasedRule in calyx_frontend::parser - Rust Enum calyx_frontend::parser::AliasedRule
source · [−]pub enum AliasedRule {
-Show 96 variants
params,
- guard_geq,
- extern_or_component,
- semi,
- bad_num,
- at_attributes,
- outputs,
- static_if_stmt,
- guard_eq,
- static_switch_stmt,
- stmt,
- prim_inline,
- file,
- io_port,
- expr,
- block_char,
- block_string,
+Show 96 variants
octal,
+ comma,
EOI,
- bitwidth,
+ comb_or_static,
+ attr_val,
+ comb,
+ sig_with_params,
+ cell_without_semi,
+ both_comb_static,
+ LHS,
+ guard_expr,
+ reference,
+ term,
+ static_wire,
static_group,
par,
+ repeat_stmt,
invoke,
- block,
- primitive,
- args,
- comb,
- guard_lt,
- empty,
+ expr,
+ char,
+ inputs,
+ at_attribute,
+ static_if_stmt,
+ connections,
+ wire,
+ at_attributes,
static_seq,
- repeat_stmt,
- static_term,
+ guard_geq,
+ static_invoke,
+ while_stmt,
+ bad_num,
+ static_switch_stmt,
stmts_without_block,
- comma_req,
- latency_annotation,
- control,
- guard_not,
- guard_neq,
- static_guard_expr,
- guard_expr,
- wire,
- sig_with_params,
group,
- reference,
- connections,
- at_attribute,
- name_with_attribute,
- decimal,
- imports,
- static_timing_expr,
- ext,
- static_wire,
- if_stmt,
- metadata_char,
- both_comb_static,
- term,
- enable,
- attribute,
+ args,
cell,
- static_invoke,
+ comma_req,
num_lit,
- port_with,
- hex,
- comb_or_static,
- signature,
- attr_val,
- static_annotation,
+ guard_gt,
+ enable,
+ metadata_char,
+ hole,
invoke_ref_args,
- component,
- static_word,
+ static_timing_expr,
+ guard_eq,
+ block_string,
+ port_with,
+ decimal,
static_par,
+ guard_neq,
+ block,
+ imports,
+ static_term,
+ seq,
+ invoke_args,
+ attribute,
+ static_annotation,
+ any_char,
+ if_stmt,
+ static_guard_expr,
+ semi,
+ name_with_attribute,
+ latency_annotation,
+ hex,
+ io_port,
+ outputs,
+ switch_stmt,
+ invoke_arg,
attributes,
- cells,
- LHS,
- string_lit,
- cmp_expr,
- octal,
- while_stmt,
- cell_without_semi,
- identifier,
+ invoke_ref_arg,
+ primitive,
+ empty,
+ params,
+ stmt,
+ extern_or_component,
externs_and_comps,
- any_char,
- port,
- guard_gt,
- inputs,
- comma,
- binary,
+ file,
+ cmp_expr,
static_optional_latency,
- invoke_args,
+ prim_inline,
+ block_char,
+ string_lit,
+ signature,
+ cells,
+ port,
guard_leq,
- seq,
- hole,
+ guard_lt,
+ guard_not,
+ component,
+ binary,
metadata,
- switch_stmt,
- invoke_arg,
- invoke_ref_arg,
- char,
-}
Variants
params
guard_geq
extern_or_component
semi
bad_num
at_attributes
outputs
static_if_stmt
guard_eq
static_switch_stmt
stmt
prim_inline
file
io_port
expr
block_char
block_string
EOI
bitwidth
static_group
par
invoke
block
primitive
args
comb
guard_lt
empty
static_seq
repeat_stmt
static_term
stmts_without_block
comma_req
latency_annotation
control
guard_not
guard_neq
static_guard_expr
guard_expr
wire
sig_with_params
group
reference
connections
at_attribute
name_with_attribute
decimal
imports
static_timing_expr
ext
static_wire
if_stmt
metadata_char
both_comb_static
term
enable
attribute
cell
static_invoke
num_lit
port_with
hex
comb_or_static
signature
attr_val
static_annotation
invoke_ref_args
component
static_word
static_par
attributes
cells
LHS
string_lit
cmp_expr
octal
while_stmt
cell_without_semi
identifier
externs_and_comps
any_char
port
guard_gt
inputs
comma
binary
static_optional_latency
invoke_args
guard_leq
seq
hole
metadata
switch_stmt
invoke_arg
invoke_ref_arg
char
Trait Implementations
sourceimpl Clone for AliasedRule
sourcefn clone(&self) -> AliasedRule
Returns a copy of the value. Read more1.0.0 · sourcefn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresourceimpl Debug for AliasedRule
sourceimpl Hash for AliasedRule
sourceimpl Ord for AliasedRule
sourcefn cmp(&self, other: &AliasedRule) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
Restrict a value to a certain interval. Read moresourceimpl PartialEq<AliasedRule> for AliasedRule
sourcefn eq(&self, other: &AliasedRule) -> bool
This method tests for self
and other
values to be equal, and is used
+ static_word,
+ bitwidth,
+ ext,
+ identifier,
+ control,
+}Variants
octal
comma
EOI
comb_or_static
attr_val
comb
sig_with_params
cell_without_semi
both_comb_static
LHS
guard_expr
reference
term
static_wire
static_group
par
repeat_stmt
invoke
expr
char
inputs
at_attribute
static_if_stmt
connections
wire
at_attributes
static_seq
guard_geq
static_invoke
while_stmt
bad_num
static_switch_stmt
stmts_without_block
group
args
cell
comma_req
num_lit
guard_gt
enable
metadata_char
hole
invoke_ref_args
static_timing_expr
guard_eq
block_string
port_with
decimal
static_par
guard_neq
block
imports
static_term
seq
invoke_args
attribute
static_annotation
any_char
if_stmt
static_guard_expr
semi
name_with_attribute
latency_annotation
hex
io_port
outputs
switch_stmt
invoke_arg
attributes
invoke_ref_arg
primitive
empty
params
stmt
extern_or_component
externs_and_comps
file
cmp_expr
static_optional_latency
prim_inline
block_char
string_lit
signature
cells
port
guard_leq
guard_lt
guard_not
component
binary
metadata
static_word
bitwidth
ext
identifier
control
Trait Implementations
sourceimpl Clone for AliasedRule
sourcefn clone(&self) -> AliasedRule
Returns a copy of the value. Read more1.0.0 · sourcefn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresourceimpl Debug for AliasedRule
sourceimpl Hash for AliasedRule
sourceimpl Ord for AliasedRule
sourcefn cmp(&self, other: &AliasedRule) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
Restrict a value to a certain interval. Read moresourceimpl PartialEq<AliasedRule> for AliasedRule
sourcefn eq(&self, other: &AliasedRule) -> bool
sourceimpl PartialOrd<AliasedRule> for AliasedRule
sourcefn partial_cmp(&self, other: &AliasedRule) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more1.0.0 · sourcefn ge(&self, other: &Rhs) -> bool
This method tests greater than or equal to (for self
and other
) and is used by the >=
diff --git a/source/calyx_ir/enum.Attribute.html b/source/calyx_ir/enum.Attribute.html
index ea6a898e..5325169c 100644
--- a/source/calyx_ir/enum.Attribute.html
+++ b/source/calyx_ir/enum.Attribute.html
@@ -1,4 +1,4 @@
-Attribute in calyx_ir - Rust pub enum Attribute {
+Attribute in calyx_ir - Rust pub enum Attribute {
Bool(BoolAttr),
Num(NumAttr),
Internal(InternalAttr),
@@ -8,9 +8,9 @@
cannot be parsed back.
Variants
Bool(BoolAttr)
Num(NumAttr)
Internal(InternalAttr)
Unknown(Id)
Unknown attribute. Should not appear in the Calyx codebase.
Useful for other frontends using Calyx
-Trait Implementations
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Attribute
Converts to this type from the input type.sourceimpl PartialEq<Attribute> for Attribute
sourcefn eq(&self, other: &Attribute) -> bool
This method tests for self
and other
values to be equal, and is used
+Trait Implementations
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Attribute
Converts to this type from the input type.sourceimpl Copy for Attribute
sourceimpl Eq for Attribute
sourceimpl StructuralEq for Attribute
sourceimpl StructuralPartialEq for Attribute
Auto Trait Implementations
impl RefUnwindSafe for Attribute
impl Send for Attribute
impl Sync for Attribute
impl Unpin for Attribute
impl UnwindSafe for Attribute
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl Copy for Attribute
sourceimpl Eq for Attribute
sourceimpl StructuralEq for Attribute
sourceimpl StructuralPartialEq for Attribute
Auto Trait Implementations
impl RefUnwindSafe for Attribute
impl Send for Attribute
impl Sync for Attribute
impl Unpin for Attribute
impl UnwindSafe for Attribute
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
diff --git a/source/calyx_ir/enum.BoolAttr.html b/source/calyx_ir/enum.BoolAttr.html
index 53658708..9e296713 100644
--- a/source/calyx_ir/enum.BoolAttr.html
+++ b/source/calyx_ir/enum.BoolAttr.html
@@ -1,5 +1,5 @@
-BoolAttr in calyx_ir - Rust pub enum BoolAttr {
-Show 15 variants
TopLevel,
+BoolAttr in calyx_ir - Rust pub enum BoolAttr {
+Show 16 variants
TopLevel,
External,
NoInterface,
Reset,
@@ -14,6 +14,7 @@
OneHot,
Inline,
Promoted,
+ Fast,
}
Expand description
Attributes that are only allowed to take boolean values.
Variants
TopLevel
This is the top-level component
External
Cell should be externalized
@@ -32,8 +33,9 @@
won’t necesarily be honored.)
Inline
Inline this subcomponent
Promoted
denotes a static component or control promoted from dynamic
+Fast
https://github.com/calyxir/calyx/issues/1828
Implementations
Trait Implementations
Trait Implementations
sourceimpl Copy for BoolAttr
sourceimpl Eq for BoolAttr
sourceimpl StructuralEq for BoolAttr
sourceimpl StructuralPartialEq for BoolAttr
Auto Trait Implementations
impl RefUnwindSafe for BoolAttr
impl Send for BoolAttr
impl Sync for BoolAttr
impl Unpin for BoolAttr
impl UnwindSafe for BoolAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
diff --git a/source/calyx_ir/enum.InternalAttr.html b/source/calyx_ir/enum.InternalAttr.html
index 2a4a7ce3..c0b39432 100644
--- a/source/calyx_ir/enum.InternalAttr.html
+++ b/source/calyx_ir/enum.InternalAttr.html
@@ -1,4 +1,4 @@
-InternalAttr in calyx_ir - Rust Enum calyx_ir::InternalAttr
source · [−]pub enum InternalAttr {
+InternalAttr in calyx_ir - Rust Enum calyx_ir::InternalAttr
source · [−]pub enum InternalAttr {
DEAD,
NODE_ID,
BEGIN_ID,
@@ -8,9 +8,9 @@
START,
END,
}
Expand description
Internal attributes that cannot be parsed back from the IL.
-Variants
DEAD
NODE_ID
BEGIN_ID
END_ID
ST_ID
LOOP
START
END
Trait Implementations
sourceimpl AsRef<str> for InternalAttr
sourceimpl Clone for InternalAttr
sourcefn clone(&self) -> InternalAttr
Returns a copy of the value. Read more1.0.0 · sourcefn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresourceimpl Debug for InternalAttr
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Attribute
Converts to this type from the input type.sourceimpl Hash for InternalAttr
sourceimpl PartialEq<InternalAttr> for InternalAttr
sourcefn eq(&self, other: &InternalAttr) -> bool
This method tests for self
and other
values to be equal, and is used
+Variants
DEAD
NODE_ID
BEGIN_ID
END_ID
ST_ID
LOOP
START
END
Trait Implementations
sourceimpl AsRef<str> for InternalAttr
sourceimpl Clone for InternalAttr
sourcefn clone(&self) -> InternalAttr
Returns a copy of the value. Read more1.0.0 · sourcefn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read moresourceimpl Debug for InternalAttr
sourceimpl From<InternalAttr> for Attribute
sourcefn from(attr: InternalAttr) -> Attribute
Converts to this type from the input type.sourceimpl Hash for InternalAttr
sourceimpl PartialEq<InternalAttr> for InternalAttr
sourcefn eq(&self, other: &InternalAttr) -> bool
sourceimpl Copy for InternalAttr
sourceimpl Eq for InternalAttr
sourceimpl StructuralEq for InternalAttr
sourceimpl StructuralPartialEq for InternalAttr
Auto Trait Implementations
impl RefUnwindSafe for InternalAttr
impl Send for InternalAttr
impl Sync for InternalAttr
impl Unpin for InternalAttr
impl UnwindSafe for InternalAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl Copy for InternalAttr
sourceimpl Eq for InternalAttr
sourceimpl StructuralEq for InternalAttr
sourceimpl StructuralPartialEq for InternalAttr
Auto Trait Implementations
impl RefUnwindSafe for InternalAttr
impl Send for InternalAttr
impl Sync for InternalAttr
impl Unpin for InternalAttr
impl UnwindSafe for InternalAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
diff --git a/source/calyx_ir/enum.NumAttr.html b/source/calyx_ir/enum.NumAttr.html
index a50544f3..5a70eb58 100644
--- a/source/calyx_ir/enum.NumAttr.html
+++ b/source/calyx_ir/enum.NumAttr.html
@@ -1,4 +1,4 @@
-NumAttr in calyx_ir - Rust pub enum NumAttr {
+NumAttr in calyx_ir - Rust pub enum NumAttr {
Go,
Done,
ReadTogether,
@@ -21,9 +21,9 @@
This indicates the component can serve ``double-duty’’ as both static and
dynamic.
Therefore, we only place if we can guarantee the interval of the component.
-
Trait Implementations
sourceimpl PartialEq<NumAttr> for NumAttr
sourcefn eq(&self, other: &NumAttr) -> bool
This method tests for self
and other
values to be equal, and is used
+Trait Implementations
sourceimpl Copy for NumAttr
sourceimpl Eq for NumAttr
sourceimpl StructuralEq for NumAttr
sourceimpl StructuralPartialEq for NumAttr
Auto Trait Implementations
impl RefUnwindSafe for NumAttr
impl Send for NumAttr
impl Sync for NumAttr
impl Unpin for NumAttr
impl UnwindSafe for NumAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl Copy for NumAttr
sourceimpl Eq for NumAttr
sourceimpl StructuralEq for NumAttr
sourceimpl StructuralPartialEq for NumAttr
Auto Trait Implementations
impl RefUnwindSafe for NumAttr
impl Send for NumAttr
impl Sync for NumAttr
impl Unpin for NumAttr
impl UnwindSafe for NumAttr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read moreimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.sourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
diff --git a/source/calyx_opt/passes/struct.StaticPromotion.html b/source/calyx_opt/passes/struct.StaticPromotion.html
index aa34c84d..c46a5a64 100644
--- a/source/calyx_opt/passes/struct.StaticPromotion.html
+++ b/source/calyx_opt/passes/struct.StaticPromotion.html
@@ -12,9 +12,9 @@
Trait Implementations
sourceimpl ConstructVisitor for StaticPromotion
sourcefn from(ctx: &Context) -> CalyxResult<Self>
Construct the visitor using information from the Contextsourcefn clear_data(&mut self)
Clear the data stored in the visitor. Called before traversing the
next component by [ir::traversal::Visitor]. Read moresourcefn get_opts(ctx: &Context) -> LinkedHashMap<&'static str, ParseVal>where
Self: Named,
sourceimpl Named for StaticPromotion
sourcefn description() -> &'static str
A short description of the pass.sourceimpl Visitor for StaticPromotion
sourcefn iteration_order() -> Order
Define the iteration order in which components should be visitedsourceimpl Visitor for StaticPromotion
sourcefn iteration_order() -> Order
Define the iteration order in which components should be visitedsourcefn finish(
&mut self,
comp: &mut Component,
_lib: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn start(
&mut self,
comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before the traversal begins.sourcefn enable(
&mut self,
s: &mut Enable,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Enable node.sourcefn invoke(
&mut self,
s: &mut Invoke,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Invoke node.sourcefn finish_seq(
&mut self,
s: &mut Seq,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Seq node.sourcefn finish_par(
&mut self,
s: &mut Par,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Par node.sourcefn finish_if(
&mut self,
s: &mut If,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::If node.sourcefn finish_while(
&mut self,
s: &mut While,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::While node.sourcefn finish_repeat(
&mut self,
s: &mut Repeat,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Repeat node.sourcefn precondition(_ctx: &Context) -> Option<String>where
Self: Sized,
Precondition for this pass to run on the program. If this function returns
+the children. Read moresourcefn start(
&mut self,
comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before the traversal begins.sourcefn enable(
&mut self,
s: &mut Enable,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Enable node.sourcefn invoke(
&mut self,
s: &mut Invoke,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Invoke node.sourcefn finish_seq(
&mut self,
s: &mut Seq,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Seq node.sourcefn finish_par(
&mut self,
s: &mut Par,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Par node.sourcefn finish_if(
&mut self,
s: &mut If,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::If node.sourcefn finish_while(
&mut self,
s: &mut While,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::While node.sourcefn finish_repeat(
&mut self,
s: &mut Repeat,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Repeat node.sourcefn precondition(_ctx: &Context) -> Option<String>where
Self: Sized,
Precondition for this pass to run on the program. If this function returns
None, the pass triggers. Otherwise it aborts and logs the string as the reason. Read moresourcefn start_context(&mut self, _ctx: &mut Context) -> VisResult
Transform the ir::Context
before visiting the components.sourcefn finish_context(&mut self, _ctx: &mut Context) -> VisResult
Transform the ir::Context
after visiting the components.sourcefn traverse_component(
&mut self,
comp: &mut Component,
signatures: &LibrarySignatures,
components: &[Component]
) -> CalyxResult<()>where
Self: Sized,
Define the traversal over a component.
Calls Visitor::start, visits each control node, and finally calls
Visitor::finish. Read moresourcefn do_pass(&mut self, context: &mut Context) -> CalyxResult<()>where
Self: Sized + ConstructVisitor + Named,
Run the visitor on a given program ir::Context
.
diff --git a/source/calyx_opt/passes/struct.TopDownCompileControl.html b/source/calyx_opt/passes/struct.TopDownCompileControl.html
index 123d0c84..9000e8ad 100644
--- a/source/calyx_opt/passes/struct.TopDownCompileControl.html
+++ b/source/calyx_opt/passes/struct.TopDownCompileControl.html
@@ -1,4 +1,4 @@
-TopDownCompileControl in calyx_opt::passes - Rust Struct calyx_opt::passes::TopDownCompileControl
source · [−]pub struct TopDownCompileControl { /* private fields */ }
Expand description
Core lowering pass.
+
TopDownCompileControl in calyx_opt::passes - Rust Struct calyx_opt::passes::TopDownCompileControl
source · [−]pub struct TopDownCompileControl { /* private fields */ }
Expand description
Core lowering pass.
Compiles away the control programs in components into purely structural code using an
finite-state machine (FSM).
Lowering operates in two steps:
@@ -72,11 +72,11 @@ Compiling Compilation guarantee
At the end of this pass, the control program will have no more than one
group enable in it.
-Trait Implementations
sourceimpl ConstructVisitor for TopDownCompileControl
sourcefn from(ctx: &Context) -> CalyxResult<Self>where
Self: Sized + Named,
Construct the visitor using information from the Contextsourcefn clear_data(&mut self)
Clear the data stored in the visitor. Called before traversing the
-next component by [ir::traversal::Visitor]. Read moresourcefn get_opts(ctx: &Context) -> LinkedHashMap<&'static str, ParseVal>where
Self: Named,
sourceimpl Named for TopDownCompileControl
sourcefn description() -> &'static str
A short description of the pass.sourceimpl Visitor for TopDownCompileControl
sourcefn finish_par(
&mut self,
s: &mut Par,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Compile each child in par
block separately so each child can make
+
Trait Implementations
sourceimpl ConstructVisitor for TopDownCompileControl
sourcefn from(ctx: &Context) -> CalyxResult<Self>where
Self: Sized + Named,
Construct the visitor using information from the Contextsourcefn clear_data(&mut self)
Clear the data stored in the visitor. Called before traversing the
+next component by [ir::traversal::Visitor]. Read moresourcefn get_opts(ctx: &Context) -> LinkedHashMap<&'static str, ParseVal>where
Self: Named,
sourceimpl Named for TopDownCompileControl
sourcefn description() -> &'static str
A short description of the pass.sourceimpl Visitor for TopDownCompileControl
sourcefn finish_par(
&mut self,
s: &mut Par,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Compile each child in par
block separately so each child can make
progress indepdendently.
-sourcefn start(
&mut self,
comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before the traversal begins.sourcefn finish_seq(
&mut self,
s: &mut Seq,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Seq node.sourcefn finish_if(
&mut self,
i: &mut If,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::If node.sourcefn finish_while(
&mut self,
w: &mut While,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::While node.sourcefn finish(
&mut self,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after the traversal ends.
+sourcefn start(
&mut self,
comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before the traversal begins.sourcefn finish_seq(
&mut self,
s: &mut Seq,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Seq node.sourcefn finish_if(
&mut self,
i: &mut If,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::If node.sourcefn finish_while(
&mut self,
w: &mut While,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::While node.sourcefn finish(
&mut self,
comp: &mut Component,
sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn precondition(_ctx: &Context) -> Option<String>where
Self: Sized,
Precondition for this pass to run on the program. If this function returns
None, the pass triggers. Otherwise it aborts and logs the string as the reason. Read moresourcefn start_context(&mut self, _ctx: &mut Context) -> VisResult
Transform the ir::Context
before visiting the components.sourcefn finish_context(&mut self, _ctx: &mut Context) -> VisResult
Transform the ir::Context
after visiting the components.sourcefn iteration_order() -> Orderwhere
Self: Sized,
Define the iteration order in which components should be visitedsourcefn traverse_component(
&mut self,
comp: &mut Component,
signatures: &LibrarySignatures,
components: &[Component]
) -> CalyxResult<()>where
Self: Sized,
Define the traversal over a component.
diff --git a/source/calyx_opt/passes/struct.WellFormed.html b/source/calyx_opt/passes/struct.WellFormed.html
index 45d73306..da12d94b 100644
--- a/source/calyx_opt/passes/struct.WellFormed.html
+++ b/source/calyx_opt/passes/struct.WellFormed.html
@@ -1,4 +1,4 @@
-WellFormed in calyx_opt::passes - Rust Struct calyx_opt::passes::WellFormed
source · [−]pub struct WellFormed { /* private fields */ }
Expand description
Pass to check if the program is well-formed.
+WellFormed in calyx_opt::passes - Rust Struct calyx_opt::passes::WellFormed
source · [−]pub struct WellFormed { /* private fields */ }
Expand description
Pass to check if the program is well-formed.
Catches the following errors:
- Programs that don’t use a defined group or combinational group.
@@ -9,9 +9,9 @@
- Invoking components with wrong ref cell name.
- Invoking components with impatible fed-in cell type for ref cells.
-Trait Implementations
sourceimpl ConstructVisitor for WellFormed
sourcefn from(ctx: &Context) -> CalyxResult<Self>where
Self: Sized,
Construct the visitor using information from the Contextsourcefn clear_data(&mut self)
Clear the data stored in the visitor. Called before traversing the
-next component by [ir::traversal::Visitor]. Read moresourcefn get_opts(ctx: &Context) -> LinkedHashMap<&'static str, ParseVal>where
Self: Named,
sourceimpl Debug for WellFormed
sourceimpl DiagnosticPass for WellFormed
sourcefn diagnostics(&self) -> &DiagnosticContext
Return an iterator of the diagnostics gathered by this pass.sourceimpl Named for WellFormed
sourcefn description() -> &'static str
A short description of the pass.sourceimpl Visitor for WellFormed
sourcefn start(
&mut self,
comp: &mut Component,
_ctx: &LibrarySignatures,
comps: &[Component]
) -> VisResult
Executed before the traversal begins.sourcefn static_enable(
&mut self,
s: &mut StaticEnable,
comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::StaticEnable node.sourcefn enable(
&mut self,
s: &mut Enable,
comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Enable node.sourcefn invoke(
&mut self,
s: &mut Invoke,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Invoke node.sourcefn static_invoke(
&mut self,
s: &mut StaticInvoke,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at a ir::StaticInvoke node.sourcefn start_if(
&mut self,
s: &mut If,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::If node.sourcefn start_static_if(
&mut self,
s: &mut StaticIf,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::StaticIf node.sourcefn finish_if(
&mut self,
s: &mut If,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::If node.sourcefn start_while(
&mut self,
s: &mut While,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::While node.sourcefn finish_while(
&mut self,
s: &mut While,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::While node.sourcefn finish(
&mut self,
comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after the traversal ends.
+Trait Implementations
sourceimpl ConstructVisitor for WellFormed
sourcefn from(ctx: &Context) -> CalyxResult<Self>where
Self: Sized,
Construct the visitor using information from the Contextsourcefn clear_data(&mut self)
Clear the data stored in the visitor. Called before traversing the
+next component by [ir::traversal::Visitor]. Read moresourcefn get_opts(ctx: &Context) -> LinkedHashMap<&'static str, ParseVal>where
Self: Named,
sourceimpl Debug for WellFormed
sourceimpl DiagnosticPass for WellFormed
sourcefn diagnostics(&self) -> &DiagnosticContext
Return an iterator of the diagnostics gathered by this pass.sourceimpl Named for WellFormed
sourcefn description() -> &'static str
A short description of the pass.sourceimpl Visitor for WellFormed
sourcefn start(
&mut self,
comp: &mut Component,
_ctx: &LibrarySignatures,
comps: &[Component]
) -> VisResult
Executed before the traversal begins.sourcefn static_enable(
&mut self,
s: &mut StaticEnable,
comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::StaticEnable node.sourcefn enable(
&mut self,
s: &mut Enable,
comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Enable node.sourcefn invoke(
&mut self,
s: &mut Invoke,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at an ir::Invoke node.sourcefn static_invoke(
&mut self,
s: &mut StaticInvoke,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed at a ir::StaticInvoke node.sourcefn start_if(
&mut self,
s: &mut If,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::If node.sourcefn start_static_if(
&mut self,
s: &mut StaticIf,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::StaticIf node.sourcefn start_seq(
&mut self,
s: &mut Seq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::Seq node.sourcefn finish_if(
&mut self,
s: &mut If,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::If node.sourcefn start_while(
&mut self,
s: &mut While,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::While node.sourcefn finish_while(
&mut self,
s: &mut While,
_comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::While node.sourcefn finish(
&mut self,
comp: &mut Component,
_ctx: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn precondition(_ctx: &Context) -> Option<String>where
Self: Sized,
Precondition for this pass to run on the program. If this function returns
None, the pass triggers. Otherwise it aborts and logs the string as the reason. Read moresourcefn start_context(&mut self, _ctx: &mut Context) -> VisResult
Transform the ir::Context
before visiting the components.sourcefn finish_context(&mut self, _ctx: &mut Context) -> VisResult
Transform the ir::Context
after visiting the components.sourcefn iteration_order() -> Orderwhere
Self: Sized,
Define the iteration order in which components should be visitedsourcefn traverse_component(
&mut self,
comp: &mut Component,
signatures: &LibrarySignatures,
components: &[Component]
) -> CalyxResult<()>where
Self: Sized,
Define the traversal over a component.
@@ -19,7 +19,7 @@
Visitor::finish. Read moresourcefn do_pass(&mut self, context: &mut Context) -> CalyxResult<()>where
Self: Sized + ConstructVisitor + Named,
Run the visitor on a given program ir::Context
.
The function mutably borrows the control
program in each component and
traverses it. Read moresourcefn do_pass_default(context: &mut Context) -> CalyxResult<Self>where
Self: ConstructVisitor + Sized + Named,
sourcefn start_seq(
&mut self,
_s: &mut Seq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::Seq node.sourcefn finish_seq(
&mut self,
_s: &mut Seq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Seq node.sourcefn start_par(
&mut self,
_s: &mut Par,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::Par node.sourcefn finish_par(
&mut self,
_s: &mut Par,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Par node.sourcefn start_repeat(
&mut self,
_s: &mut Repeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::Repeat node.sourcefn finish_repeat(
&mut self,
_s: &mut Repeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Repeat node.sourcefn start_static_control(
&mut self,
_s: &mut StaticControl,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the contents of an ir::StaticControl node.sourcefn finish_static_control(
&mut self,
_s: &mut StaticControl,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the conetnts of an ir::StaticControl node.sourcefn finish_static_if(
&mut self,
_s: &mut StaticIf,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::StaticIf node.sourcefn start_static_repeat(
&mut self,
_s: &mut StaticRepeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::StaticRepeat node.sourcefn finish_static_repeat(
&mut self,
_s: &mut StaticRepeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::StaticRepeat node.sourcefn start_static_seq(
&mut self,
_s: &mut StaticSeq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn finish_static_seq(
&mut self,
_s: &mut StaticSeq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn start_static_par(
&mut self,
_s: &mut StaticPar,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn finish_static_par(
&mut self,
_s: &mut StaticPar,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Auto Trait Implementations
impl !RefUnwindSafe for WellFormed
impl !Send for WellFormed
impl !Sync for WellFormed
impl Unpin for WellFormed
impl !UnwindSafe for WellFormed
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresourceimpl<T> From<T> for T
sourcefn finish_seq(
&mut self,
_s: &mut Seq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Seq node.sourcefn start_par(
&mut self,
_s: &mut Par,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::Par node.sourcefn finish_par(
&mut self,
_s: &mut Par,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Par node.sourcefn start_repeat(
&mut self,
_s: &mut Repeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::Repeat node.sourcefn finish_repeat(
&mut self,
_s: &mut Repeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::Repeat node.sourcefn start_static_control(
&mut self,
_s: &mut StaticControl,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the contents of an ir::StaticControl node.sourcefn finish_static_control(
&mut self,
_s: &mut StaticControl,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the conetnts of an ir::StaticControl node.sourcefn finish_static_if(
&mut self,
_s: &mut StaticIf,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::StaticIf node.sourcefn start_static_repeat(
&mut self,
_s: &mut StaticRepeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed before visiting the children of a ir::StaticRepeat node.sourcefn finish_static_repeat(
&mut self,
_s: &mut StaticRepeat,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Executed after visiting the children of a ir::StaticRepeat node.sourcefn start_static_seq(
&mut self,
_s: &mut StaticSeq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn finish_static_seq(
&mut self,
_s: &mut StaticSeq,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn start_static_par(
&mut self,
_s: &mut StaticPar,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
sourcefn finish_static_par(
&mut self,
_s: &mut StaticPar,
_comp: &mut Component,
_sigs: &LibrarySignatures,
_comps: &[Component]
) -> VisResult
Auto Trait Implementations
impl !RefUnwindSafe for WellFormed
impl !Send for WellFormed
impl !Sync for WellFormed
impl Unpin for WellFormed
impl !UnwindSafe for WellFormed
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read moresourceimpl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · sourcefn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
diff --git a/source/calyx_opt/traversal/trait.ConstructVisitor.html b/source/calyx_opt/traversal/trait.ConstructVisitor.html
index 15307b91..dd6a6733 100644
--- a/source/calyx_opt/traversal/trait.ConstructVisitor.html
+++ b/source/calyx_opt/traversal/trait.ConstructVisitor.html
@@ -13,5 +13,5 @@
Required Methods
sourcefn from(_ctx: &Context) -> CalyxResult<Self>where
Self: Sized,
Construct the visitor using information from the Context
sourcefn clear_data(&mut self)
Clear the data stored in the visitor. Called before traversing the
next component by [ir::traversal::Visitor].
-Provided Methods
Implementors
sourceimpl ConstructVisitor for Canonicalize
sourceimpl ConstructVisitor for CombProp
sourceimpl ConstructVisitor for CompileInvoke
sourceimpl ConstructVisitor for ComponentInliner
sourceimpl ConstructVisitor for DefaultAssigns
sourceimpl ConstructVisitor for DiscoverExternal
sourceimpl ConstructVisitor for ExternalToRef
sourceimpl ConstructVisitor for Externalize
sourceimpl ConstructVisitor for GroupToInvoke
sourceimpl ConstructVisitor for Papercut
sourceimpl ConstructVisitor for StaticFSMOpts
sourceimpl ConstructVisitor for StaticInference
sourceimpl ConstructVisitor for StaticPromotion
sourceimpl ConstructVisitor for SynthesisPapercut
sourceimpl ConstructVisitor for TopDownCompileControl
sourceimpl ConstructVisitor for WellFormed
sourceimpl<T: Default + Sized + Visitor> ConstructVisitor for T
Derive ConstructVisitor when Default is provided for a visitor.
+Provided Methods
Implementors
sourceimpl ConstructVisitor for Canonicalize
sourceimpl ConstructVisitor for CombProp
sourceimpl ConstructVisitor for CompileInvoke
sourceimpl ConstructVisitor for ComponentInliner
sourceimpl ConstructVisitor for DefaultAssigns
sourceimpl ConstructVisitor for DiscoverExternal
sourceimpl ConstructVisitor for ExternalToRef
sourceimpl ConstructVisitor for Externalize
sourceimpl ConstructVisitor for GroupToInvoke
sourceimpl ConstructVisitor for Papercut
sourceimpl ConstructVisitor for StaticFSMOpts
sourceimpl ConstructVisitor for StaticInference
sourceimpl ConstructVisitor for StaticPromotion
sourceimpl ConstructVisitor for SynthesisPapercut
sourceimpl ConstructVisitor for TopDownCompileControl
sourceimpl ConstructVisitor for WellFormed
sourceimpl<T: Default + Sized + Visitor> ConstructVisitor for T
Derive ConstructVisitor when Default is provided for a visitor.
\ No newline at end of file
diff --git a/source/calyx_opt/traversal/trait.DiagnosticPass.html b/source/calyx_opt/traversal/trait.DiagnosticPass.html
index 2c1422bd..838b66cd 100644
--- a/source/calyx_opt/traversal/trait.DiagnosticPass.html
+++ b/source/calyx_opt/traversal/trait.DiagnosticPass.html
@@ -2,4 +2,4 @@
fn diagnostics(&self) -> &DiagnosticContext;
}Expand description
A pass that implements reporting Diagnostics
Required Methods
sourcefn diagnostics(&self) -> &DiagnosticContext
Return an iterator of the diagnostics gathered by this pass.
-Implementors
sourceimpl DiagnosticPass for Papercut
sourceimpl DiagnosticPass for SynthesisPapercut
sourceimpl DiagnosticPass for WellFormed
\ No newline at end of file
+Implementors
sourceimpl DiagnosticPass for Papercut
sourceimpl DiagnosticPass for SynthesisPapercut
sourceimpl DiagnosticPass for WellFormed
\ No newline at end of file
diff --git a/source/calyx_opt/traversal/trait.Named.html b/source/calyx_opt/traversal/trait.Named.html
index 1e2e0469..4698204a 100644
--- a/source/calyx_opt/traversal/trait.Named.html
+++ b/source/calyx_opt/traversal/trait.Named.html
@@ -11,4 +11,4 @@
sourcefn description() -> &'static str
A short description of the pass.
Provided Methods
Implementors
sourceimpl Named for AddGuard
sourceimpl Named for Canonicalize
sourceimpl Named for ClkInsertion
sourceimpl Named for CollapseControl
sourceimpl Named for CombProp
sourceimpl Named for CompileInvoke
sourceimpl Named for CompileRepeat
sourceimpl Named for CompileStatic
sourceimpl Named for CompileSync
sourceimpl Named for CompileSyncWithoutSyncReg
sourceimpl Named for ComponentInliner
sourceimpl Named for DataPathInfer
sourceimpl Named for DeadAssignmentRemoval
sourceimpl Named for DeadCellRemoval
sourceimpl Named for DeadGroupRemoval
sourceimpl Named for DefaultAssigns
sourceimpl Named for DiscoverExternal
sourceimpl Named for ExternalToRef
sourceimpl Named for Externalize
sourceimpl Named for GoInsertion
sourceimpl Named for GroupToInvoke
sourceimpl Named for GroupToSeq
sourceimpl Named for HoleInliner
sourceimpl Named for LowerGuards
sourceimpl Named for MergeAssign
sourceimpl Named for Metadata
sourceimpl Named for Papercut
sourceimpl Named for ParToSeq
sourceimpl Named for RegisterUnsharing
sourceimpl Named for RemoveIds
sourceimpl Named for ResetInsertion
sourceimpl Named for SimplifyStaticGuards
sourceimpl Named for SimplifyWithControl
sourceimpl Named for StaticFSMOpts
sourceimpl Named for StaticInference
sourceimpl Named for StaticInliner
sourceimpl Named for StaticPromotion
sourceimpl Named for SynthesisPapercut
sourceimpl Named for TopDownCompileControl
sourceimpl Named for UnrollBounded
sourceimpl Named for WellFormed
sourceimpl Named for WireInliner
sourceimpl Named for WrapMain
\ No newline at end of file
+Implementors
sourceimpl Named for AddGuard
sourceimpl Named for Canonicalize
sourceimpl Named for ClkInsertion
sourceimpl Named for CollapseControl
sourceimpl Named for CombProp
sourceimpl Named for CompileInvoke
sourceimpl Named for CompileRepeat
sourceimpl Named for CompileStatic
sourceimpl Named for CompileSync
sourceimpl Named for CompileSyncWithoutSyncReg
sourceimpl Named for ComponentInliner
sourceimpl Named for DataPathInfer
sourceimpl Named for DeadAssignmentRemoval
sourceimpl Named for DeadCellRemoval
sourceimpl Named for DeadGroupRemoval
sourceimpl Named for DefaultAssigns
sourceimpl Named for DiscoverExternal
sourceimpl Named for ExternalToRef
sourceimpl Named for Externalize
sourceimpl Named for GoInsertion
sourceimpl Named for GroupToInvoke
sourceimpl Named for GroupToSeq
sourceimpl Named for HoleInliner
sourceimpl Named for LowerGuards
sourceimpl Named for MergeAssign
sourceimpl Named for Metadata
sourceimpl Named for Papercut
sourceimpl Named for ParToSeq
sourceimpl Named for RegisterUnsharing
sourceimpl Named for RemoveIds
sourceimpl Named for ResetInsertion
sourceimpl Named for SimplifyStaticGuards
sourceimpl Named for SimplifyWithControl
sourceimpl Named for StaticFSMOpts
sourceimpl Named for StaticInference
sourceimpl Named for StaticInliner
sourceimpl Named for StaticPromotion
sourceimpl Named for SynthesisPapercut
sourceimpl Named for TopDownCompileControl
sourceimpl Named for UnrollBounded
sourceimpl Named for WellFormed
sourceimpl Named for WireInliner
sourceimpl Named for WrapMain
\ No newline at end of file
diff --git a/source/calyx_opt/traversal/trait.Visitor.html b/source/calyx_opt/traversal/trait.Visitor.html
index f9f0008c..f1089cba 100644
--- a/source/calyx_opt/traversal/trait.Visitor.html
+++ b/source/calyx_opt/traversal/trait.Visitor.html
@@ -103,4 +103,4 @@ Panics
perform graph coloring using self.ordering
to define the order of the greedy coloring
use coloring to rewrite group assignments, continuous assignments, and conditional ports.
-sourceimpl Visitor for ClkInsertion
sourceimpl Visitor for CollapseControl
sourceimpl Visitor for CombProp
sourceimpl Visitor for CompileInvoke
sourceimpl Visitor for CompileRepeat
sourceimpl Visitor for CompileStatic
sourceimpl Visitor for CompileSync
sourceimpl Visitor for CompileSyncWithoutSyncReg
sourceimpl Visitor for ComponentInliner
sourceimpl Visitor for DataPathInfer
sourceimpl Visitor for DeadAssignmentRemoval
sourceimpl Visitor for DeadCellRemoval
sourceimpl Visitor for DeadGroupRemoval
sourceimpl Visitor for DefaultAssigns
sourceimpl Visitor for DiscoverExternal
sourceimpl Visitor for ExternalToRef
sourceimpl Visitor for Externalize
sourceimpl Visitor for GoInsertion
sourceimpl Visitor for GroupToInvoke
sourceimpl Visitor for GroupToSeq
sourceimpl Visitor for HoleInliner
sourceimpl Visitor for LowerGuards
sourceimpl Visitor for MergeAssign
sourceimpl Visitor for Metadata
sourceimpl Visitor for Papercut
sourceimpl Visitor for ParToSeq
sourceimpl Visitor for RegisterUnsharing
sourceimpl Visitor for RemoveIds
sourceimpl Visitor for ResetInsertion
sourceimpl Visitor for SimplifyStaticGuards
sourceimpl Visitor for SimplifyWithControl
sourceimpl Visitor for StaticFSMOpts
sourceimpl Visitor for StaticInference
sourceimpl Visitor for StaticInliner
sourceimpl Visitor for StaticPromotion
sourceimpl Visitor for SynthesisPapercut
sourceimpl Visitor for TopDownCompileControl
sourceimpl Visitor for UnrollBounded
sourceimpl Visitor for WellFormed
sourceimpl Visitor for WireInliner
sourceimpl Visitor for WrapMain
\ No newline at end of file
+sourceimpl Visitor for ClkInsertion
sourceimpl Visitor for CollapseControl
sourceimpl Visitor for CombProp
sourceimpl Visitor for CompileInvoke
sourceimpl Visitor for CompileRepeat
sourceimpl Visitor for CompileStatic
sourceimpl Visitor for CompileSync
sourceimpl Visitor for CompileSyncWithoutSyncReg
sourceimpl Visitor for ComponentInliner
sourceimpl Visitor for DataPathInfer
sourceimpl Visitor for DeadAssignmentRemoval
sourceimpl Visitor for DeadCellRemoval
sourceimpl Visitor for DeadGroupRemoval
sourceimpl Visitor for DefaultAssigns
sourceimpl Visitor for DiscoverExternal
sourceimpl Visitor for ExternalToRef
sourceimpl Visitor for Externalize
sourceimpl Visitor for GoInsertion
sourceimpl Visitor for GroupToInvoke
sourceimpl Visitor for GroupToSeq
sourceimpl Visitor for HoleInliner
sourceimpl Visitor for LowerGuards
sourceimpl Visitor for MergeAssign
sourceimpl Visitor for Metadata
sourceimpl Visitor for Papercut
sourceimpl Visitor for ParToSeq
sourceimpl Visitor for RegisterUnsharing
sourceimpl Visitor for RemoveIds
sourceimpl Visitor for ResetInsertion
sourceimpl Visitor for SimplifyStaticGuards
sourceimpl Visitor for SimplifyWithControl
sourceimpl Visitor for StaticFSMOpts
sourceimpl Visitor for StaticInference
sourceimpl Visitor for StaticInliner
sourceimpl Visitor for StaticPromotion
sourceimpl Visitor for SynthesisPapercut
sourceimpl Visitor for TopDownCompileControl
sourceimpl Visitor for UnrollBounded
sourceimpl Visitor for WellFormed
sourceimpl Visitor for WireInliner
sourceimpl Visitor for WrapMain
\ No newline at end of file
diff --git a/source/search-index.js b/source/search-index.js
index f673b0f1..78723b0c 100644
--- a/source/search-index.js
+++ b/source/search-index.js
@@ -1,7 +1,7 @@
var searchIndex = JSON.parse('{\
-"calyx_frontend":{"doc":"Frontend parsing and AST representation.","t":[4,3,13,13,4,13,13,13,13,13,13,17,13,4,13,13,13,13,13,13,8,13,13,13,13,13,13,4,13,13,3,13,2,13,13,13,4,13,13,13,3,13,3,4,13,13,13,13,13,13,13,13,13,13,13,13,4,3,13,11,11,11,11,11,11,0,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,12,11,11,12,11,12,12,0,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,4,13,13,13,3,3,13,6,13,13,3,4,13,13,13,13,13,3,13,3,4,4,13,13,13,13,13,13,3,13,13,13,13,4,13,13,13,13,4,13,3,13,13,3,3,4,13,13,13,13,13,13,3,13,13,3,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,12,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,13,3,13,13,13,13,4,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,11,11,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,13,13,13,13],"n":["Attribute","Attributes","BEGIN_ID","Bool","BoolAttr","Bound","Clk","Compactable","Const","Control","DEAD","DEPRECATED_ATTRIBUTES","Data","Direction","Done","END","END_ID","Extern","External","Generated","GetAttributes","Go","Inline","Inline","Inout","Input","Internal","InternalAttr","Interval","LOOP","LibrarySignatures","NODE_ID","NamespaceDef","NewFSM","NoInterface","Num","NumAttr","OneHot","Output","Param","PortDef","Pos","Primitive","PrimitiveInfo","Promotable","Promoted","ReadTogether","Reset","START","ST_ID","Share","Stable","StateShare","Sync","TopLevel","Unknown","Width","Workspace","WriteTogether","add_extern_primitive","add_inline_primitive","add_span","as_ref","as_ref","as_ref","ast","attributes","attributes","body","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","components","construct","construct_shallow","construct_with_all_deps","copy_from","copy_span","declarations","default","default","default","direction","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","ext","extern_paths","find_all_with_attr","find_primitive","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_compile_lib","from_repr","from_str","from_str","from_str","get","get_attributes","get_hash","get_hash","get_hash","get_hash","get_hash","get_mut_attributes","get_primitive","has","hash","hash","hash","hash","hash","inline","insert","into","into","into","into","into","into","into","into","into","into","into","into","is_comb","is_empty","is_source","latency","lib","mark_extern_source","mark_inline_source","merge_namespace","metadata","name","name","name","new","original_imports","params","parser","prim_infos","prim_inlines","remove","resolve","resolve","reverse","set_source","signature","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string_with","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","width","0","0","0","0","is_source","is_source","path","primitive","primitives","value","value","And","And","Atom","Atom","Atom","Binary","BitNum","Cell","Comp","CompGuard","CompOp","CompOp","ComponentDef","Control","Decimal","Empty","Enable","Eq","Geq","Group","Gt","Guard","GuardComp","GuardExpr","Hex","Hole","If","Invoke","Leq","Lt","NamespaceDef","Neq","Not","Not","Num","NumType","Octal","Or","Or","Par","Port","Port","Proto","Repeat","Seq","StaticGroup","StaticGuard","StaticGuardExpr","StaticIf","StaticInfo","StaticInvoke","StaticPar","StaticRepeat","StaticSeq","StaticWire","This","While","Wire","attributes","attributes","attributes","attributes","attributes","attributes","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cells","components","construct","construct_from_str","continuous_assignments","control","dest","dest","empty","expr","expr","externs","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_attributes","groups","guard","guard","imports","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_comb","is_comb","latency","latency","metadata","name","name","name","name","name","new","num_type","params","prototype","reference","signature","span","src","src","static_groups","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","val","width","wires","wires","0","0","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","body","body","body","comb_group","comb_group","comp","comp","comp","cond","cond","fbranch","fbranch","inputs","inputs","latency","latency","latency","latency","num_repeats","num_repeats","outputs","outputs","port","port","port","ref_cells","ref_cells","stmts","stmts","stmts","stmts","tbranch","tbranch","0","0","0","0","0","1","1","component","group","name","port","port","0","0","0","0","0","0","1","1","AliasedRule","COMMENT","CalyxParser","EOI","EOI","LHS","LHS","Rule","WHITESPACE","all_rules","any_char","any_char","args","args","at_attribute","at_attribute","at_attributes","at_attributes","attr_val","attr_val","attribute","attribute","attributes","attributes","bad_num","bad_num","binary","binary","bitwidth","bitwidth","block","block","block_char","block_char","block_string","block_string","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","both_comb_static","both_comb_static","cell","cell","cell_without_semi","cell_without_semi","cells","cells","char","char","clone","clone","clone_into","clone_into","cmp","cmp","cmp_expr","cmp_expr","comb","comb","comb_or_static","comb_or_static","comma","comma","comma_req","comma_req","compare","compare","component","component","connections","connections","control","control","decimal","decimal","empty","empty","enable","enable","eq","eq","equivalent","equivalent","equivalent","equivalent","expr","expr","ext","ext","extern_or_component","extern_or_component","externs_and_comps","externs_and_comps","file","file","fmt","fmt","from","from","from","get_hash","get_hash","group","group","guard_and","guard_eq","guard_eq","guard_expr","guard_expr","guard_geq","guard_geq","guard_gt","guard_gt","guard_leq","guard_leq","guard_lt","guard_lt","guard_neq","guard_neq","guard_not","guard_not","guard_or","hash","hash","hex","hex","hole","hole","ident_syms","identifier","identifier","if_stmt","if_stmt","import","imports","imports","inputs","inputs","into","into","into","invoke","invoke","invoke_arg","invoke_arg","invoke_args","invoke_args","invoke_ref_arg","invoke_ref_arg","invoke_ref_args","invoke_ref_args","io_port","io_port","latency_annotation","latency_annotation","metadata","metadata","metadata_char","metadata_char","name_with_attribute","name_with_attribute","num_lit","num_lit","octal","octal","operator","outputs","outputs","par","par","params","params","parse","parse","parse_file","partial_cmp","partial_cmp","port","port","port_with","port_with","prim_inline","prim_inline","primitive","primitive","reference","reference","repeat_stmt","repeat_stmt","semi","semi","seq","seq","sig_with_params","sig_with_params","signature","signature","static_annotation","static_annotation","static_group","static_group","static_guard_expr","static_guard_expr","static_if_stmt","static_if_stmt","static_invoke","static_invoke","static_optional_latency","static_optional_latency","static_par","static_par","static_seq","static_seq","static_switch_stmt","static_switch_stmt","static_term","static_term","static_timing_expr","static_timing_expr","static_wire","static_wire","static_word","static_word","stmt","stmt","stmts_without_block","stmts_without_block","string_lit","string_lit","switch_stmt","switch_stmt","term","term","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","while_stmt","while_stmt","wire","wire"],"q":["calyx_frontend","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_frontend::Attribute","","","","calyx_frontend::PrimitiveInfo","","","","","calyx_frontend::Width","","calyx_frontend::ast","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_frontend::ast::Atom","","calyx_frontend::ast::Control","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_frontend::ast::GuardExpr","","","","","","","calyx_frontend::ast::Port","","","","","calyx_frontend::ast::StaticGuardExpr","","","","","","","","calyx_frontend::parser","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Defines the known attributes that can be attached to IR …","Attributes associated with a specific IR structure.","","","Attributes that are only allowed to take boolean values.","The bound of a while loop","Clk for the signal","suggest that the current static seq block is compactable","The width is a constant.","This is a control path instance","","Attributes that have been deprecated.","This is a data path instance","Direction of a port on a cell.","","","","An extern block that defines multiple primitives","Cell should be externalized","IR Node was generated by the compiler","Structs that can return an Attributes
instance.","","Inline this subcomponent","An inline primitive","Input-Output “port”. Should only be used by holes.","Input port.","","Internal attributes that cannot be parsed back from the IL.","Placed on @go ports of components to denote the II of a …","","A representation of all the primitive definitions found …","","","Generate a new FSM for this control node","The component doesn’t have a standard interface","","Attributes that can take numeric values","Generate a one-hot FSM for this control node. (Not …","Output port.","The width is a parameter.","Definition of a port parameterized by a width type. Ports …","Source location position for this node","Representation of a external primitive definition.","Tracks the information for Primitives defined in the …","Can promote the group, control, or @go port of the …","denotes a static component or control promoted from dynamic","","Reset signal for the component","","","Is this component shareable","Is the port connected to a state element","Is the component state shareable","Synchronize this thread with others in the current par …","This is the top-level component","Unknown attribute. Should not appear in the Calyx codebase.","Represents an abstract width of a primitive signature.","A Workspace represents all Calyx files transitively …","","Add a new, non-inline primitive to the context. Panics if …","Add a new inline primitive to the context. Panics if a …","Set the span information","","","","Abstract Syntax Tree for Calyx","Key-value attributes for this primitive.","Attributes attached to this port definition","body of the string, if it is an inlined primitive","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","List of component definitions that need to be compiled.","Construct a new workspace from an input stream …","Construct the Workspace using the given NamespaceDef and …","Construct the Workspace using the given files and all …","self
copys (i.e., assigns the same values) the attributes …","","List of component definitions that should be used as …","","","","The direction of the port. Only allowed to be …","","","","","","","","","","","","","","","","","","","","","Return the paths for the extern defining files along with …","Return all ports that have the attribute attr
.","Return the Primitive associated with the given name if …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a new workspace using the compile.futil
library …","Try to create Self from the raw representation","","","","Get the value associated with an attribute key","Returns an Attributes
instance","","","","","","Returns a mutable Attributes
instance","Return the Primitive associated to this Id.","Check if an attribute key has been set","","","","","","","Add a new attribute","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","True iff this is a combinational primitive","Returns true if there are no attributes","Check if this primitive is a source primitive","(Optional) latency; for static primitives","Absolute path to extern definitions and primitives defined …","Marks an import
ed extern block as a part of the source. …","Mark an inlined primitive as a part of the source. This is …","Merge the contents of a namespace into this workspace. …","Optional opaque metadata attached to the top-level file","","Return the name of the port definition","Name of this primitive.","","Original import statements present in the top-level file.","Paramters for this primitive.","Parser for Calyx programs.","Returns all the underlying primitive information. If you …","Return the underyling inlined primitives and whether they …","Remove attribute with the name key
","Retuns the bindings for all the paramters, the input ports …","Given a map from names of parameters to their values, …","Return the direction opposite to the current direction","Mark this primitive as a source primitive","The input/output signature for this primitive.","Return an iterator over all defined primitives.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The width of the port. .","","","","","","","","","","","","","","Atomic operations used in guard conditions and RHS of the …","","","","Custom bitwidth numbers","The Cell AST nodes.","Refers to the port named port
on the subcomponent component
…","Guard Comparison Type","","","AST statement for defining components.","Control AST nodes. Since enables and static enables are …","","Control statement that does nothing.","Runs the control for a list of subcomponents.","","","","","Guards expr
using the optional guard condition guard
.","Possible comparison operators for guards.","The AST for GuardExprs","","group[name]
parses into Hole { group, name }
and is a hole …","Standard imperative if statement","Invoke component with input/output assignments.","","","Corresponds to an individual Calyx file.","","","","A constant.","","","","","Represents parallel composition of control statements.","Statement that refers to a port on a subcomponent. This is …","Accessing a particular port on a component.","Prototype of the cell definition","Static Repeat (essentially a bounded while loop w/o a …","Represents sequential composition of control statements.","","Guards expr
using the optional guard condition guard
.","The AST for StaticGuardExprs","Static if statement.","","Invoke component with input/output assignments.","Represents parallel composition of static control …","Static Repeat (essentially a bounded while loop w/o a …","Represents sequential composition of static control …","Data for the ->
structure statement.","Refers to the port named port
on the component currently …","Standard imperative while statement","Data for the ->
structure statement.","Attributes attached to this component","Attributes attached to this cell definition","","","Attributes for this assignment","Attributes for this assignment","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","List of instantiated sub-components","List of component definitions.","Construct a namespace from a file or the input stream. If …","Construct a namespace from a definition using a string.","List of continuous assignments","Single control statement for this component.","Guarded destinations of the wire.","Guarded destinations of the wire.","","","","Extern statements and any primitive declarations in them.","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a primitive cell instantiation.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","List of groups","","","Path to extern files.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","True iff this is a combinational component","","(Optional) latency of component, if it is static","","Optional opaque metadata","Name of the component.","Name of the primitive.","Name of the cell.","","","","","Parameter binding for primitives","Name of the prototype this cell was built from.","Whether this cell is external","Defines input and output ports along with their attributes.","","Source of the wire.","Source of the wire.","List of StaticGroups","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Control for the loop body.","Control for the true branch.","Control for the true branch.","Combinational group that may execute with this invoke.","Combinational group that may execute with this invoke.","Group to be enabled","Name of the component to be invoked.","Name of the component to be invoked.","Modules that need to be enabled to send signal on port
.","Modules that need to be enabled to send signal on port
.","Control for the true branch.","Control for the true branch.","Input assignments","Input assignments","(optional) latency. Latency can be inferred if not given.","Optional latency for the seq","Optional latency for the par","Optional latency; should be the longer of the two branches","Control for the true branch.","Control for the true branch.","Output assignments","Output assignments","Port that connects the conditional check.","Port that connects the conditional check.","Port that connects the conditional check.","External cells that may execute with this invoke.","External cells that may execute with this invoke.","List of Control
statements to run in sequence.","List of Control
statements to run in sequence.","List of Control
statements to run in sequence. If not all …","List of Control
statements to run in sequence. If not all …","Control for the true branch.","Control for the true branch.","","","","","","","","","","","","","","","","","","","","","","","","End-of-input","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Parse a Calyx program into an AST representation.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,10,11,0,9,7,9,14,7,10,0,7,0,9,10,10,4,7,7,0,9,7,4,15,15,11,0,9,10,0,10,0,7,7,11,0,7,15,14,0,9,0,0,9,7,9,7,10,10,7,7,7,9,7,11,0,0,9,1,1,5,7,9,10,0,3,13,3,7,9,10,11,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,7,9,10,11,5,3,13,14,15,18,18,18,18,5,5,18,5,1,18,13,7,9,10,11,5,14,15,7,7,9,9,10,10,11,11,5,5,15,15,4,1,3,1,7,7,9,9,10,11,11,5,3,13,14,14,15,4,1,7,9,10,11,11,11,11,5,3,13,14,14,14,15,4,1,18,18,7,7,9,11,5,59,7,9,10,11,15,59,1,5,7,9,10,11,15,4,5,7,9,10,11,5,3,13,14,15,4,1,18,3,5,4,3,18,1,1,18,18,3,13,3,13,18,3,0,1,1,5,3,13,15,4,3,1,7,9,10,11,5,3,13,14,15,7,9,11,14,5,7,7,9,9,10,11,5,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,4,1,18,13,60,61,62,63,64,65,64,65,64,66,67,41,42,0,41,42,38,0,0,37,0,41,42,0,0,38,35,35,43,43,0,43,0,0,0,38,37,35,35,43,43,0,43,41,42,40,0,38,41,42,35,0,40,0,35,35,0,0,0,35,42,35,35,35,35,0,37,35,0,36,47,48,49,50,51,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,36,31,31,31,36,36,50,51,35,44,45,31,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,47,48,49,50,51,35,35,36,44,45,31,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,36,48,36,49,31,36,46,47,48,49,36,39,46,47,47,36,39,50,51,36,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,39,39,48,49,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,73,74,82,76,77,75,76,77,72,73,72,81,76,77,77,79,80,81,74,82,76,77,72,73,81,76,77,70,71,79,80,72,81,83,84,85,86,87,83,84,88,89,89,88,90,91,92,93,94,95,96,91,92,0,53,0,53,54,53,54,0,53,53,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,97,54,53,97,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,53,54,54,53,54,53,54,53,54,53,54,53,54,53,54,53,97,54,53,54,53,54,53,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,53,54,53,54,53,54,53,53,54,53,54,53,53,54,53,54,53,97,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,53,54,53,54,53,54,97,97,97,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,97,54,53,97,54,53,97,54,53,54,53,54],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,2,3]],[[1,3],4],[[5,6],5],[7,8],[9,8],[10,8],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[7,7],[9,9],[10,10],[11,11],[5,5],[3,3],[[[13,[12]]],[[13,[12]]]],[14,14],[15,15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[16,17],[[19,[18]]]],[[16,17],[[19,[18]]]],[[[20,[2]],17],[[19,[18]]]],[[5,5,20]],[5,6],0,[[],5],[[],1],[[],18],0,[[7,7],21],[[9,9],21],[[10,10],21],[[11,11],21],[[5,5],21],[[14,14],21],[[15,15],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[2,[23,[22,3]]],4],[1,[[20,[2]]]],[3,24],[1,[[16,[3]]]],[[7,25],26],[[7,25],26],[[9,25],26],[[9,25],26],[[10,25],26],[[11,25],26],[[11,25],26],[[5,25],26],[[3,25],26],[[[13,[27]],25],26],[[14,25],26],[[14,25],26],[[15,25],26],[[4,25],26],[[1,25],26],[[]],[[]],[[]],[10,11],[[]],[9,11],[7,11],[[]],[[]],[[]],[[]],[22,14],[28,14],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[29,[[16,[7]]]],[8,[[30,[7]]]],[8,[[30,[9]]]],[8,[[19,[11]]]],[5,[[16,[28]]]],[[],5],[[],28],[[],28],[[],28],[[],28],[[],28],[[],5],[1,3],[5,21],[7],[9],[10],[11],[15],[3,4],[[5,28]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[5,21],[4,21],0,0,[[1,2]],[[1,22]],[[18,31,21,17,21,17],[[19,[20]]]],0,[3,22],[13,22],0,[[[32,[22]],15,5],13],0,0,0,[1,20],[1,24],[5],[3,19],[[[13,[14]],23],[[19,[[13,[28]]]]]],[15,15],[4],0,[1,24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],33],[[],33],[[],33],[[],33],[[5,8],33],[[],30],[8,[[30,[7]]]],[[],30],[8,[[30,[9]]]],[[],30],[[],30],[20,[[19,[5]]]],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[16,[[19,[31]]]],[8,[[19,[31]]]],0,0,0,0,[[],35],0,0,0,[[31,25],26],[[36,25],26],[[37,25],26],[[38,25],26],[[39,25],26],[[40,25],26],[[41,25],26],[[42,25],26],[[43,25],26],[[44,25],26],[[45,25],26],[[46,25],26],[[47,25],26],[[48,25],26],[[49,25],26],[[50,25],26],[[51,25],26],[[35,25],26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[22,22,[20,[28]],5,21],47],[[]],[[]],[[]],[[]],[[]],[[]],[35,5],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[[21,[16,[52]],[20,[[13,[28]]]]],36],0,0,0,0,0,0,0,0,0,[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[53,53],[54,54],[[]],[[]],[[53,53],55],[[54,54],55],0,0,0,0,0,0,0,0,0,0,[[],55],[[],55],0,0,0,0,0,0,0,0,0,0,0,0,[[53,53],21],[[54,54],21],[[],21],[[],21],[[],21],[[],21],0,0,0,0,0,0,0,0,0,0,[[53,25],26],[[54,25],26],[[]],[[]],[[]],[[],28],[[],28],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[53],[54],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[53,8],[[30,[[56,[53]],[57,[53]]]]]],[58,[[19,[31]]]],[17,[[19,[31]]]],[[53,53],[[16,[55]]]],[[54,54],[[16,[55]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],34],[[],34],[[],34],0,0,0,0],"p":[[3,"LibrarySignatures"],[3,"PathBuf"],[3,"Primitive"],[4,"PrimitiveInfo"],[3,"Attributes"],[3,"GPosIdx"],[4,"BoolAttr"],[15,"str"],[4,"NumAttr"],[4,"InternalAttr"],[4,"Attribute"],[8,"Clone"],[3,"PortDef"],[4,"Width"],[4,"Direction"],[4,"Option"],[3,"Path"],[3,"Workspace"],[6,"CalyxResult"],[3,"Vec"],[15,"bool"],[3,"Id"],[3,"LinkedHashMap"],[8,"Iterator"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[15,"u64"],[15,"u8"],[4,"Result"],[3,"NamespaceDef"],[8,"Into"],[3,"String"],[3,"TypeId"],[4,"Control"],[3,"ComponentDef"],[4,"Port"],[4,"NumType"],[3,"BitNum"],[4,"Atom"],[4,"GuardExpr"],[4,"StaticGuardExpr"],[4,"GuardComp"],[3,"Guard"],[3,"StaticGuard"],[3,"Proto"],[3,"Cell"],[3,"Group"],[3,"StaticGroup"],[3,"Wire"],[3,"StaticWire"],[3,"NonZeroU64"],[4,"Rule"],[4,"AliasedRule"],[4,"Ordering"],[3,"Pairs"],[3,"Error"],[8,"Read"],[8,"GetAttributes"],[13,"Bool"],[13,"Num"],[13,"Internal"],[13,"Unknown"],[13,"Extern"],[13,"Inline"],[13,"Const"],[13,"Param"],[13,"Port"],[13,"Num"],[13,"Seq"],[13,"Par"],[13,"If"],[13,"While"],[13,"Repeat"],[13,"Enable"],[13,"Invoke"],[13,"StaticInvoke"],[13,"Empty"],[13,"StaticSeq"],[13,"StaticPar"],[13,"StaticIf"],[13,"StaticRepeat"],[13,"And"],[13,"Or"],[13,"Not"],[13,"CompOp"],[13,"Atom"],[13,"Comp"],[13,"Hole"],[13,"This"],[13,"And"],[13,"Or"],[13,"Not"],[13,"CompOp"],[13,"Atom"],[13,"StaticInfo"],[3,"CalyxParser"]]},\
-"calyx_ir":{"doc":"Internal representation for the Calyx compiler.","t":[13,13,3,4,3,13,3,6,13,4,13,3,3,3,13,4,13,3,3,13,13,13,3,13,13,13,3,4,13,13,17,13,4,13,13,13,13,3,13,13,3,13,13,13,13,13,4,13,4,13,8,8,13,3,13,13,4,3,3,3,3,3,13,13,13,13,13,13,13,13,4,13,3,13,13,13,13,3,13,13,13,13,13,13,13,3,13,4,13,13,13,13,3,13,13,13,3,13,13,4,3,3,4,13,3,13,4,3,13,13,17,6,13,3,13,13,13,2,13,13,3,13,13,13,13,13,13,13,4,3,3,13,3,3,3,3,3,3,13,13,13,13,13,13,3,3,13,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,14,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,12,12,12,12,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,12,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,14,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,11,11,12,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,11,11,11,12,12,11,11,11,11,11,12,12,12,12,11,11,12,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,0,5,11,11,11,0,11,11,11,11,11,12,12,11,12,11,11,11,12,11,11,11,11,11,11,12,12,12,12,14,11,12,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,5,6,6,3,11,11,12,12,11,11,11,11,12,11,12,11,11,11,11,11,11,11,12,11,11,11,13,13,8,3,4,13,11,11,11,11,11,11,12,12,12,5,5,11,11,10,12,11,11,12,11,12,11,11,11,11,11,11],"n":["And","And","Assignment","Attribute","Attributes","BEGIN_ID","BackendConf","Binding","Bool","BoolAttr","Bound","Builder","Canonical","Cell","Cell","CellType","Clk","Cloner","CombGroup","CompOp","CompOp","Compactable","Component","Component","Const","Constant","Context","Control","Control","DEAD","DEPRECATED_ATTRIBUTES","Data","Direction","Done","Dynamic","END","END_ID","Empty","Empty","Empty","Enable","Enable","Enable","Eq","Extern","External","FlatGuard","Generated","GenericControl","Geq","GetAttributes","GetName","Go","Group","Group","Gt","Guard","GuardPool","GuardRef","Id","IdList","If","If","If","Info","Inline","Inline","Inout","Input","Internal","InternalAttr","Interval","Invoke","Invoke","Invoke","LOOP","Leq","LibrarySignatures","Lt","NODE_ID","Neq","NewFSM","NoInterface","Not","Not","Nothing","Num","NumAttr","OneHot","Or","Or","Output","Par","Par","Par","Param","Port","Port","Port","PortComp","PortDef","PortIterator","PortParent","Pos","Primitive","Primitive","PrimitiveInfo","Printer","Promotable","Promoted","RESERVED_NAMES","RRC","ReadTogether","Repeat","Repeat","Repeat","Reset","Rewriter","START","ST_ID","Seq","Seq","Seq","Share","Stable","StateShare","Static","Static","StaticControl","StaticEnable","StaticGroup","StaticGroup","StaticIf","StaticInvoke","StaticPar","StaticRepeat","StaticSeq","StaticTiming","Sync","ThisComponent","TopLevel","True","True","Unknown","WRC","While","While","Width","WriteTogether","add","add_attribute","add_comb_group","add_component","add_constant","add_continuous_assignments","add_extern_primitive","add_group","add_inline_primitive","add_interval","add_primitive","add_span","add_static_group","all_ports","and","append","as_ref","as_ref","as_ref","as_ref","assignment_to_str","assignments","assignments","assignments","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","bc","bitand","bitand_assign","bitor","bitor_assign","body","body","body","body","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_assignment","build_assignments","canonical","cell","cell_parent","cells","check_for_each_info","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","comb_group","comb_group","comb_groups","comp","comp","compare","compare","compare","component","components","cond","cond","constant_name","continuous_assignments","control","control","control_to_str","copy_from","copy_span","copy_span","default","default","default","default","default","default","default","default","default","default","direction","direction","display","done_cond","done_cond_mut","drain","dst","emit_primitive_extmodules","empty","empty","empty","empty","enable","enable","enable_verification","entrypoint","entrypoint","entrypoint_mut","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","ext","extern_paths","extra_opts","fbranch","fbranch","find","find","find","find","find_all_with_attr","find_all_with_attr","find_cell","find_comb_group","find_group","find_guaranteed_cell","find_primitive","find_static_group","find_unique_with_attr","flat_assign","flatten","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each","for_each_assignment","for_each_info","for_each_interval","for_each_port","for_each_static_assignment","format_at_attributes","format_attributes","format_metadata","format_port_def","format_ports","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ast","from_repr","from_str","from_str","from_str","ge","generate_name","get","get","get","get","get","get_attribute","get_attribute","get_attribute","get_attribute","get_attribute","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_groups","get_groups_mut","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_interval","get_latency","get_latency","get_latency","get_mem_info","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_name","get_parameter","get_parent_name","get_primitive","get_signature","get_static_groups","get_static_groups_mut","get_unique_with_attr","group","group","groups","gt","guard","guard","guard_str","has","has_attribute","has_attribute","hash","hash","hash","hash","hash","hash","hash","hash","hash","holes","holes","id","if_","if_","index","inline","inputs","inputs","insert","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","invoke","invoke","is_comb","is_comb","is_comb_cell","is_component","is_constant","is_empty","is_empty","is_empty","is_false","is_hole","is_not_done","is_primitive","is_reference","is_source","is_static","is_static","is_structural","is_this","is_true","is_true","is_true","iter","iter","iter_assignments","iter_mut","iter_static_assignments","latency","latency","latency","latency","latency","latency","latency","latency","le","len","lib","lt","mark_extern_source","mark_inline_source","metadata","name","name","name","name","name","name","name","name","name","name","name","name","name","name","neq","new","new","new","new","new","new","new","new","new","new","new","new","next","not","not_generated","num_repeats","num_repeats","op_str","or","outputs","outputs","par","par","par","params","parent","parent_is_comb","partial_cmp","partial_cmp","partial_cmp","port","port","port","port","port","port_to_str","ports","ports","prim_infos","prim_inlines","prototype","ref_cells","ref_cells","remove","remove","remove_attribute","remove_attribute","repeat","repeat","repeat","resolve","resolve","retain","reverse","rewriter","rrc","seq","seq","seq","serializers","set_groups","set_interval","set_reference","set_source","set_static_groups","signature","signature","signatures","src","static_control","static_enable","static_enable","static_groups","static_if","static_if","static_invoke","static_par","static_repeat","static_seq","stmts","stmts","stmts","stmts","structure","surface_name","synthesis_mode","take_control","take_static_control","take_static_control","tbranch","tbranch","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string_with","try_add_primitive","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_equivalent","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_name","update","upgrade","utils","validate","while_","while_","width","width","write_assignment","write_cell","write_comb_group","write_component","write_context","write_control","write_externs","write_group","write_primitive","write_static_control","write_static_group","0","0","0","0","is_comb","latency","name","name","param_binding","val","width","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","1","1","2","0","0","0","0","0","0","0","0","1","1","1","2","0","0","0","is_source","is_source","path","primitive","primitives","0","0","0","0","0","0","0","value","value","ast_to_ir","PortRewriteMap","RewriteMap","Rewriter","borrow","borrow_mut","cell_map","comb_group_map","default","from","get","get_cell_rewrite","group_map","into","port_map","rewrite","rewrite_assign","rewrite_control","rewrite_guard","rewrite_invoke","rewrite_static_control","rewrite_static_invoke","static_group_map","try_from","try_into","type_id","Combinational","Dynamic","GetMemInfo","MemInfo","MemoryType","Sequential","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","data_width","dimension_sizes","dimensions","external_and_ref_memories_cells","external_and_ref_memories_names","from","from","get_mem_info","idx_sizes","into","into","memory_type","to_owned","total_size","try_from","try_from","try_into","try_into","type_id","type_id"],"q":["calyx_ir","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_ir::Attribute","","","","calyx_ir::CellType","","","","","","","calyx_ir::Control","","","","","","","","","calyx_ir::FlatGuard","","","","","","","","","calyx_ir::GenericControl","","calyx_ir::Guard","","","","","","","","","","calyx_ir::PortParent","","","calyx_ir::PrimitiveInfo","","","","","calyx_ir::StaticControl","","","","","","","calyx_ir::Width","","calyx_ir::from_ast","calyx_ir::rewriter","","","","","","","","","","","","","","","","","","","","","","","","","calyx_ir::utils","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","Represents c1 && c2
.","Represents a guarded assignment in the program","Defines the known attributes that can be attached to IR …","Attributes associated with a specific IR structure.","","Configuration information for the backends.","Alias for bindings","","Attributes that are only allowed to take boolean values.","The bound of a while loop","IR builder. Uses internal references to the component to …","Canonical name of a Port","Represents an instantiated cell.","","The type for a Cell","Clk for the signal","Implement cloning operations on control statements. We …","A combinational group. A combinational group does not have …","","Comparison operator.","suggest that the current static seq block is compactable","In memory representation of a Component.","Cell constructed using a Calyx component","The width is a constant.","Cell representing a Constant","The IR Context that represents an entire Calyx program …","Control AST nodes.","This is a control path instance","","Attributes that have been deprecated.","This is a data path instance","Direction of a port on a cell.","","","","","Data for the empty
control statement.","Control statement that does nothing.","","Data for the enable
control statement.","Runs the control for a list of subcomponents.","","p1 == p2","An extern block that defines multiple primitives","Cell should be externalized","","IR Node was generated by the compiler","Either holds a reference to a StaticControl, reference to …","p1 >= p2","Structs that can return an Attributes
instance.","A trait representing something in the IR that has a name.","","A Group of assignments that perform a logical action.","","p1 > p2","An assignment guard which has pointers to the various …","A GuardPool
is an “arena”-style storage area for …","","Represents an identifier in a Calyx program","A wrapper struct exposing an ordered collection of named …","Data for the if
control statement.","Standard imperative if statement","","Other types of information.","Inline this subcomponent","An inline primitive","Input-Output “port”. Should only be used by holes.","Input port.","","Internal attributes that cannot be parsed back from the IL.","Placed on @go ports of components to denote the II of a …","Data for an invoke
control statement.","Invoke a sub-component with the given port assignments","","","p1 <= p2","A representation of all the primitive definitions found …","p1 < p2","","p1 != p2","Generate a new FSM for this control node","The component doesn’t have a standard interface","","Represents !c1
","","","Attributes that can take numeric values","Generate a one-hot FSM for this control node. (Not …","","Represents c1 || c2
.","Output port.","Data for the par
control statement.","Represents parallel composition of control statements.","","The width is a parameter.","Represents a port on a cell.","","Uses the value on a port as the condition. Same as …","Comparison operations that can be performed between ports …","Definition of a port parameterized by a width type. Ports …","Wraps generic iterators over ports to allow functions to …","Ports can come from Cells or Groups","Source location position for this node","Representation of a external primitive definition.","Cell constructed using a primitive definition","Tracks the information for Primitives defined in the …","Printer for the IR.","Can promote the group, control, or @go port of the …","denotes a static component or control promoted from dynamic","Names that are reserved in Calyx and Verilog.","Alias for a RefCell contained in an Rc reference.","","Data for the Dynamic Repeat
control statement. Repeats the …","Standard repeat control statement","","Reset signal for the component","","","","Data for the seq
control statement.","Represents sequential composition of control statements.","","Is this component shareable","Is the port connected to a state element","Is the component state shareable","Static Control","","Control AST nodes.","Data for the enable
control for a static group.","A Group of assignments that perform a logical action.","","Data for the static if
control statement.","Data for a StaticInvoke
control statement","","Data for the StaticRepeat
control statement. Essentially a …","Data for the static seq
control statement.","","Synchronize this thread with others in the current par …","This cell represents the current component","This is the top-level component","","The constant true","Unknown attribute. Should not appear in the Calyx codebase.","A Wrapper for a weak RefCell pointer. Used by parent …","Data for the while
control statement.","Standard imperative while statement","Represents an abstract width of a primitive signature.","","Add a new element to the colleciton","Add a new attribute to the group.","Construct a combinational group","Add a component instance to this component using its name …","Return reference for a constant cell associated with the …","","Add a new, non-inline primitive to the context. Panics if …","Construct a new group and add it to the Component. The …","Add a new inline primitive to the context. Panics if a …","updates self -> self & interval","Consturcts a primitive cell of type primitive
. The name of …","Set the span information","Construct a new static group and add it to the Component. …","Returns all the ports used by this guard.","","Add all elements to the collection","","","","","Convinience method to get string representation of …","The assignments used in this group","The assignments used in this group","The assignments used in this group","Attributes for this component","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes","Attributes","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","","Attributes associated with this port.","Attributes for this group.","Attributes for this assignment.","Attributes for this group.","Attributes for this group.","Attributes for this group.","Key-value attributes for this primitive.","Attributes attached to this port definition","Configuration flags for backends.","","","","","Control for the loop body.","Body to repeat","Body to repeat","body of the string, if it is an inlined primitive","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct an assignment.","Build guarded assignment statements and return a vector …","Get the canonical representation for this Port.","","Returns the parent of the Port which must be Cell. Throws …","The cells instantiated for this component.","runs f(info) on each info in guard
. f should return Result<…","Removes all elements from the collection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Optional combinational group that is active when the …","Optional combinational group that is active when the …","Groups of assignment wires.","Cell that is being invoked.","Cell that is being invoked.","","","","Component for which this builder is constructing.","The components for this program.","Optional combinational group attached using with
.","Group that makes the signal on the conditional port valid.","Return the canonical name for the cell generated to …","The set of “continuous assignments”, i.e., assignments …","","The control program for this component.","Convinience method to get string representation of …","self
copys (i.e., assigns the same values) the attributes …","","","","","","","","","","","","","Direction of the port","The direction of the port. Only allowed to be …","","Returns a reference to the assignment in the group that …","Returns a mutable reference to the assignment in the group …","Removes all elements from the collection and returns an …","The destination for the assignment.","[FIRRTL backend only] Emit extmodule declarations for …","","Returns an empty iterator over ports.","Convience constructor for empty.","Convience constructor for empty.","","Convience constructor for enable.","Enables verification checks.","Return the entrypoint component.","Entrypoint for the program","Return the entrypoint component with mutable access.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return the paths for the extern defining files along with …","Extra options provided to the command line. Interpreted by …","Control for the false branch.","Control for the false branch.","Returns the element indicated by the name, if present, …","Get a reference to the named port if it exists.","Get a reference to the named hole if it exists.","Get a reference to the named hole if it exists.","Return all ports that have the attribute attr
.","Return all ports that have the attribute attr
.","Return a reference to the cell with name
if present.","Return a refernece to a combination group with name
if …","Return a reference to the group with name
if present.","Return a reference to the cell with name
if present.","Return the Primitive associated with the given name if …","Return a reference to the group with name
if present.","Return the unique port with the given attribute. If …","Use flat (ANF) assignments for guards instead of deep …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Mutates a guard by calling f
on every leaf in the guard …","Apply function on all non-static assignments contained …","runs f(info) on each Guard::Info in guard
. if f(info)
= …","Apply function f
to each port contained within the …","Apply function f
to each port contained within the …","Apply function to all assignments within static groups.","Format attributes of the form @static(1)
. Returns the …","Format attributes of the form <"static"=1>
. Returns the …","Formats the top-level metadata if present","","Formats port definitions in signatures","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Turns a normal guard into a static guard","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Turns a normal assignment into a static assignment","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Module to transform AST programs into IR.","Try to create Self from the raw representation","","","","","Construct a non-conflicting name using the Component’s …","","Get a reference to the named port and throw an error if it …","Get a reference to the named hole or panic.","Get a reference to the named hole or panic.","Get the value associated with an attribute key","Returns the value of an attribute if present","Returns the value of an attribute if present","Returns the value of an attribute if present","Returns the value of an attribute if present","Return the value associated with this attribute key.","Returns an Attributes
instance","","","","","","","","","","","","","","","","","","The attributes of this group.","The attributes of this group.","The attributes of this group.","gets the component’s groups","gets the component’s groups","","","","","","","","","","returns the (u64, u64) interval for struct
","","Returns the value of an attribute if present","","","Returns a mutable Attributes
instance","","","","","","","","","","","","","","","","","","Return the name associated with this CellType if present","Get parameter binding from the prototype used to build …","Gets name of parent object.","Return the Primitive associated to this Id.","","gets the component’s static groups","gets the component’s groups","Get the unique port with the given attribute. Panic if no …","List of components to run.","List of components to run.","Groups of assignment wires.","","The guard for this assignment.","Parse guard expression into ir::Guard
.","Generate a String-based representation for a guard.","Check if an attribute key has been set","Returns true if the node has a specific attribute","Returns true if the node has a specific attribute","","","","","","","","","","Holes for this group","Holes for this group","","","Convience constructor for if","Get the underlying number for this reference. Clients …","","Mapping from name of input ports in comp
to the port …","Mapping from name of input ports in comp
to the port …","Add a new attribute","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","Convience constructor for invoke.","True iff component is combinational","True iff this is a combinational primitive","","Returns true iff this cell is an instance of a …","Checks if this port is a constant of value: val
.","Returns true if there are no elements in the list.","","Returns true if there are no attributes","Checks if the guard is always false. Returning false does …","Checks if this port is a hole","returns true if the self is !cell_name, false otherwise.","Returns true if this is an instance of a primitive. If the …","Get a boolean describing whether the cell is external.","Check if this primitive is a source primitive","Check whether this is a static component. A static …","","Check whether this component is purely structural, i.e. …","Returns true iff this cell is the signature of the current …","Check whether this refers to a FlatGuard::True
. (We can do …","","Returns true definitely Guard::True
. Returning false does …","Iterate over all the guards in the pool.","Returns an iterator over immutable references","Iterate over all non-static assignments contained within …","Returns an iterator over mutable references. Likely a …","Iterate over all static assignments contained within the …","(Optional) latency of component, if it is static","Latency, in cycles","Latency, in cycles","latency field currrently, if two if branches take …","latency = num_repeats * (body latency)","StaticLatency","Latency of static group","(Optional) latency; for static primitives","","","Library definitions imported by the program.","","Marks an import
ed extern block as a part of the source. …","Mark an inlined primitive as a part of the source. This is …","An optional opaque metadata string which is used by Cider","Return a reference to the object’s name","Grants immutable access to the name of this cell.","","The name of this group.","","The name of this group.","","","The name of this group.","","Return the name of the port definition","Name of the component.","Name of the port","Name of this primitive.","","Instantiate a new builder using for a component.","","","Construct a new PortIterator from an iterator over ports.","Construct a new Component with the given name
and ports.","creates a new StaticTiming
struct","","Construct a cell","Build a new unguarded assignment","","","","","","Disable the generated flag on the builder","Number of times to repeat the body","Number of times to repeat the body","Return the string corresponding to the guard operation.","","Mapping from name of output ports in comp
to the port …","Mapping from name of output ports in comp
to the port …","","Convience constructor for par.","Convience constructor for static enable.","Paramters for this primitive.","Weak pointer to this port’s parent","Checks if parent is combinational component","","","","","Port that connects the conditional check.","Port that connects the conditional check.","Port that connects the conditional check.","","Get the port access expression.","Returns a reference to all super::Port attached to this …","Ports on this cell","Returns all the underlying primitive information. If you …","Return the underyling inlined primitives and whether they …","Underlying type for this cell","Mapping from name of external cell in ‘comp’ to the …","Mapping from name of external cell in ‘comp’ to the …","","Remove attribute with the name key
","","","","Convience constructor for dynamic repeat","Convience constructor for static if","Retuns the bindings for all the paramters, the input ports …","Given a map from names of parameters to their values, …","Keep only the elements in the collection which satisfy the …","Return the direction opposite to the current direction","Modules to rewrite the IR","Construct a new RRC.","","Convience constructor for seq.","Convience constructor for static enable.","Serializer methods for IR nodes.","gets the component’s groups","overwrites the current interval
to be new_interval
","Set the external field","Mark this primitive as a source primitive","gets the component’s groups","The input/output signature of this component.","The input/output signature for this primitive.","Return an iterator over all defined primitives.","The source for the assignment.","","","Convience constructor for enable.","Groups of assignment wires","","Convience constructor for static if","","","","","List of Control
statements to run in sequence.","List of StaticControl
statements to run in sequence.","List of Control
statements to run in parallel.","List of StaticControl
statements to run in parallel.","Add primitives and constants to the component and let
-bind …","Generate string representation of CellType appropriate for …","Enables synthesis mode.","Replaces &mut self with an empty control statement, and …","Replaces &mut self with an empty control statement, and …","Replaces &mut self with an empty static control statement, …","Control for the true branch.","Control for the true branch.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Result variant of [ir::Builder::add_primitive()].","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if the widths, name, direction, and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the name of the component that is this cells type.","Update the guard in place. Replaces this guard with …","Convinience method to upgrade and extract the underlying …","Helpers used to examine calyx programs. Used in Xilinx and …","Enable the validation flag on a builder.","","Convience constructor for while","Width of the port","The width of the port. .","Format and write an assignment.","Format and write a cell.","Format and write a combinational group.","Formats and writes the Component to the formatter.","Prints out the program context. If skip_primitives
is …","Format and write a control program","Formats and writes extern statements.","Format and write a group.","","Format and write a static control program","Format and write a static group.","","","","","True iff this is a combinational primitive","(Optional) latency of the primitive","Name of the primitive cell used to instantiate this cell.","Name of the component used to instantiate this cell.","Bindings for the parameters. Uses Vec to retain the input …","Value of this constant","Width of this constant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct an IR representation using a parsed AST and …","Map to rewrite port uses. Maps the canonical name of an …","A rewrite map from ir::Id to [T].","A structure to track rewrite maps for ports. Stores both …","","","Mapping from names of cells to cell instance.","Mapping from names of combinational groups to …","","Returns the argument unchanged.","Get any port rewrite defined for the given port.","Return the rewrite for a cell","Mapping from names of groups to group instance.","Calls U::from(self)
.","Mapping from canonical names of ports to port instances","Rewrite the component using the given maps","Rewrite an assignment","Given a control program, rewrite all uses of cells, …","Rewrite assignments in a guard","Rewrite a invoke
node using a RewriteMapir::Cell and a …","Given a control program, rewrite all uses of cells, …","Rewrite a static invoke
node using a RewriteMapir::Cell …","Mapping from names of static groups to static group …","","","","","","","Parameters for std memories","","","","","","","","","","","","Gets all memory cells in top level marked @external
or ref
.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","",""],"i":[37,20,0,0,0,30,0,0,5,0,29,0,0,0,40,0,28,0,0,37,20,29,0,41,42,41,0,0,28,30,0,28,0,29,77,30,30,0,45,51,0,45,51,38,18,28,0,28,0,38,0,0,29,0,40,38,0,0,0,0,0,0,45,51,20,28,18,43,43,5,0,29,0,45,51,30,38,0,38,30,38,28,28,37,20,0,5,0,28,37,20,43,0,45,51,42,0,37,20,0,0,0,0,29,0,41,0,0,29,28,0,0,29,0,45,51,28,0,30,30,0,45,51,28,28,28,45,77,0,0,0,40,0,0,0,0,0,0,29,41,28,37,20,5,0,0,45,0,29,2,4,8,8,8,8,14,8,14,20,8,21,8,20,20,2,26,28,29,30,90,17,23,9,54,65,66,67,68,69,70,71,72,73,52,74,75,76,49,24,4,13,17,23,9,16,10,53,20,20,20,20,71,72,73,16,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,8,0,24,32,24,54,20,2,26,35,36,37,12,38,20,19,40,24,32,41,4,13,28,29,30,5,21,16,10,42,43,26,35,36,37,12,38,20,19,40,24,32,41,4,13,28,29,30,5,21,16,10,42,43,26,20,32,75,76,54,75,76,26,20,32,8,53,69,71,4,54,91,54,90,21,45,21,26,47,2,48,49,12,20,19,21,14,24,10,47,17,17,2,13,48,91,50,45,51,91,45,48,53,53,53,26,26,26,26,26,26,12,38,20,20,19,24,32,41,28,29,30,5,21,42,43,26,26,12,12,38,38,20,20,19,19,24,24,32,32,41,41,28,28,29,29,30,30,5,5,21,21,43,43,18,14,53,69,70,2,4,17,23,4,16,54,54,54,54,14,54,4,48,47,26,26,35,54,2,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,32,41,4,13,17,23,9,28,28,29,29,30,5,5,21,16,10,42,42,43,18,14,20,54,20,13,13,54,90,90,90,90,90,8,53,91,26,26,26,47,90,50,35,35,54,2,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,45,45,45,51,51,51,77,77,77,36,37,12,38,20,20,20,19,40,24,32,41,4,13,13,17,23,9,28,29,30,5,5,5,5,21,16,10,42,42,42,43,18,14,0,28,28,29,5,20,54,47,4,17,23,21,74,45,51,24,4,92,65,66,67,68,69,70,71,72,73,52,74,75,76,45,51,24,4,17,23,9,54,54,26,20,32,41,28,29,30,5,43,19,45,51,23,54,92,65,66,67,68,69,70,71,72,73,52,74,75,76,45,51,24,4,41,4,24,14,4,54,54,4,52,74,54,20,13,0,90,21,45,24,26,20,32,41,28,29,30,5,43,17,23,26,91,45,36,18,75,76,21,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,50,2,91,45,54,16,4,4,24,2,45,21,20,24,20,4,4,18,54,45,54,4,36,37,20,47,2,54,2,54,54,66,68,70,73,76,23,16,20,2,53,20,14,14,53,1,4,4,17,17,23,23,9,9,16,10,54,24,16,20,8,26,47,50,54,19,32,4,13,17,23,10,50,20,8,72,73,20,20,75,76,91,45,51,16,24,24,26,20,32,20,69,70,71,32,90,4,4,14,14,4,75,76,2,21,17,23,91,45,51,16,10,2,43,0,0,91,45,51,0,54,19,4,18,54,54,16,14,13,91,91,45,54,91,51,91,91,91,91,65,66,67,68,0,41,48,45,45,51,69,70,26,35,36,37,12,38,20,19,40,24,32,41,4,13,28,29,30,5,21,16,10,42,43,26,12,19,32,28,29,5,42,21,8,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,28,29,29,30,5,21,21,16,10,42,43,18,14,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,24,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,4,20,35,0,8,91,45,24,10,90,90,90,90,90,90,90,90,90,90,90,93,94,95,96,97,97,97,98,97,99,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,109,110,112,112,114,115,116,117,118,119,120,121,116,117,119,119,122,123,124,125,126,125,126,125,127,128,129,130,131,132,133,134,135,0,0,0,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,89,89,0,0,0,89,79,89,79,89,89,89,79,79,79,0,0,79,89,136,79,79,89,79,89,79,79,89,79,89,79,89],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[2,[1]],[3,[1]]]],[[4,[6,[5]],7]],[8,[[3,[9]]]],[[8,[11,[[10,[7]]]]],[[3,[4]]]],[[8,7,7],[[3,[4]]]],[[8,[11,[[13,[12]]]]]],[[14,15,16]],[8,[[3,[17]]]],[[14,16],18],[[[20,[19]],19]],[8,[[3,[4]]]],[[21,22],21],[[8,7],[[3,[23]]]],[20,[[11,[[3,[24]]]]]],[[20,20],20],[[[2,[1]],25]],[26,27],[28,27],[29,27],[30,27],[13,31],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[20,20]],[[20,20]],[[20,20]],[[20,20]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[8,[3,[24]],[3,[24]],20],13],0,[24,32],0,[24,[[3,[4]]]],0,[20,[[34,[33]]]],[[[2,[1]]]],[26,26],[[[35,[1]]],[[35,[1]]]],[36,36],[37,37],[12,12],[38,38],[[[20,[39]]],[[20,[39]]]],[19,19],[40,40],[24,24],[32,32],[41,41],[4,4],[[[13,[39]]],[[13,[39]]]],[28,28],[29,29],[30,30],[5,5],[21,21],[16,16],[10,10],[42,42],[43,43],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[26,26],44],[[20,20],44],[[32,32],44],0,0,0,0,0,[[],44],[[],44],[[],44],0,0,0,0,[[7,7],26],0,[45,45],0,[45,31],[[21,21,[11,[46]]]],[45,22],[21,22],[[],26],[[],47],[[],[[2,[1]]]],[[],48],[[],49],[[],12],[[],20],[[],19],[[],21],[[],14],0,0,[[47,37],31],[17,13],[17,13],[[[2,[1]]],25],0,0,[49,49],[[],50],[[],45],[[],51],[52,52],[[[3,[17]]],45],0,[53,54],0,[53,54],[[26,27],55],[[26,27],55],[[26,26],55],[[26,56],55],[[26,31],55],[[26,26],55],[[12,12],55],[[38,38],55],[[20,20],55],[[20,20],20],[[19,19],55],[[24,24],55],[[32,32],55],[[41,41],55],[[28,28],55],[[29,29],55],[[30,30],55],[[5,5],55],[[21,21],55],[[42,42],55],[[43,43],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[15,[58,[26,16,57]]],18],[14,[[11,[15,46]]]],0,0,0,[[[2,[1]]],[[59,[[3,[1]]]]]],[4,[[59,[[3,[24]]]]]],[17,[[59,[[3,[24]]]]]],[23,[[59,[[3,[24]]]]]],[4,25],[16,25],[54,[[59,[[3,[4]]]]]],[54,[[59,[[3,[9]]]]]],[54,[[59,[[3,[17]]]]]],[54,[[3,[4]]]],[14,[[59,[16]]]],[54,[[59,[[3,[23]]]]]],[4,[[60,[[59,[[3,[24]]]]]]]],0,[[47,20],36],[[26,61],[[34,[62]]]],[[26,61],[[34,[62]]]],[[[35,[63]],61],64],[[54,61],64],[[[2,[[0,[63,1]]]],61],64],[[65,61],64],[[66,61],64],[[67,61],64],[[68,61],64],[[69,61],64],[[70,61],64],[[71,61],64],[[72,61],64],[[73,61],64],[[52,61],64],[[74,61],64],[[75,61],64],[[76,61],64],[[49,61],64],[[45,61],64],[[51,61],64],[[77,61],64],[[36,61],64],[[37,61],64],[[12,61],64],[[38,61],64],[[[20,[63]],61],64],[[19,61],64],[[40,61],64],[[24,61],64],[[32,61],64],[[32,61],64],[[41,61],64],[[4,61],64],[[[13,[63]],61],64],[[17,61],64],[[23,61],64],[[9,61],64],[[28,61],[[34,[62]]]],[[28,61],[[34,[62]]]],[[29,61],[[34,[62]]]],[[29,61],[[34,[62]]]],[[30,61],[[34,[62]]]],[[5,61],[[34,[62]]]],[[5,61],[[34,[62]]]],[[21,61],[[34,[62]]]],[[16,61],[[34,[62]]]],[[10,61],[[34,[62]]]],[[42,61],[[34,[62]]]],[[42,61],[[34,[62]]]],[[43,61],[[34,[62]]]],[[18,61],[[34,[62]]]],[[14,61],[[34,[62]]]],[20],[54],[20],[13],[13],[54],[21,31],[21,31],[59,31],[[],31],[[],31],[[]],[[]],[[]],[27,26],[31,26],[[]],[[]],[[]],[[]],[3,[[35,[1]]]],[[]],[[]],[[],2],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[75,45],[51,45],[[]],[52,45],[[[3,[23]]],51],[[]],[74,51],[[]],[51,77],[45,77],[[]],[[]],[[]],[[]],[[]],[[[3,[24]]],20],[[[20,[12]]],[[20,[19]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[[13,[12]]],[[13,[19]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[28,5],[[]],[30,5],[29,5],[[]],[[]],[[]],[26,42],[7,42],[[]],[[]],[[]],[[]],0,[78,[[59,[28]]]],[27,[[34,[28]]]],[27,[[34,[29]]]],[27,[[34,[5,33]]]],[[20,20],20],[54,26],[[47,36],37],[4,[[3,[24]]]],[17,[[3,[24]]]],[23,[[3,[24]]]],[21,[[59,[7]]]],[[74,5],[[59,[7]]]],[45,[[59,[7]]]],[[51,5],[[59,[7]]]],[24,[[59,[7]]]],[[4,[6,[5]]],[[59,[7]]]],[[],21],[65,21],[66,21],[67,21],[68,21],[69,21],[70,21],[71,21],[72,21],[73,21],[52,21],[74,21],[75,21],[76,21],[45,21],[51,21],[24,21],[4,21],[17,[[59,[21]]]],[23,[[59,[21]]]],[9,[[59,[21]]]],[54,2],[54,2],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[19],[45,[[59,[7]]]],[51,7],[23,7],[54,[[11,[79]]]],[[],21],[65,21],[66,21],[67,21],[68,21],[69,21],[70,21],[71,21],[72,21],[73,21],[52,21],[74,21],[75,21],[76,21],[45,21],[51,21],[24,21],[4,21],[41,[[59,[26]]]],[4,[[59,[7]]]],[24,26],[14,16],[4,[[11,[[10,[7]]]]]],[54,2],[54,2],[4,[[60,[[3,[24]]]]]],0,0,0,[[20,20],20],0,0,[20,31],[21,55],[45,55],[24,55],[26],[20],[32],[41],[28],[29],[30],[5],[43],0,0,0,[69,69],[[[3,[24]],[59,[[3,[9]]]],[80,[45]],[80,[45]]],45],[36,81],[16,18],0,0,[[21,7]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[2],[75,75],[[[3,[4]],11,11],45],0,0,[4,55],[4,55],[[24,7,7],55],[[[2,[1]]],55],[45,55],[21,55],[20,55],[24,55],[[20,26],55],[[4,59],55],[4,55],[18,55],[54,55],[45,55],[54,55],[4,55],[36,55],[37,55],[20,55],[47,25],[[[2,[1]]],[[0,[39,25]]]],[54],[[[2,[1]]],25],[54],0,0,0,0,0,0,0,0,[[20,20],20],[[[2,[1]]],82],0,[[20,20],20],[[14,15]],[[14,26]],0,[[],26],[4,26],[4,26],[17,26],[17,26],[23,26],[23,26],[9,26],[9,26],[16,26],[10,26],0,0,0,[[20,20],20],[[54,14],8],[[],26],[[],47],[[],50],[[[11,[[10,[7]]]],55,55,[59,[83]]],54],[[],19],[[26,26],32],[[26,41],4],[[[3,[24]],[3,[24]]],13],[26,17],[[26,7],23],[[[6,[26]],43,21],10],[50,59],[20,20],[8,8],0,0,[20,31],[[20,20],20],0,0,[67,67],[[[11,[45]]],45],[[[11,[51]],7],51],0,0,[24,55],[[26,26],[[59,[44]]]],[[20,20],[[59,[44]]]],[[32,32],[[59,[44]]]],[[[3,[24]]],20],0,0,0,0,[24,31],[4,84],0,[14,11],[14,25],0,0,0,[[[2,[1]]],[[59,[[3,[1]]]]]],[21],[[17,5]],[[23,5]],[72,72],[[7,[80,[45]]],45],[[7,7,[80,[51]]],51],[16,[[34,[33]]]],[[[10,[42]],58],[[34,[[10,[7]],33]]]],[[[2,[1]]],7],[43,43],0,[[],3],[65,65],[[[11,[45]]],45],[[[11,[51]],7],51],0,[[54,[2,[17]]]],[19],[[4,55],55],[18],[[54,[2,[23]]]],0,0,[14,25],0,[51,51],[74,74],[[[3,[23]]],45],0,[70,70],[[[3,[24]],[80,[51]],[80,[51]],7],51],[76,76],[68,68],[73,73],[66,66],0,0,0,0,0,[41,[[59,[31]]]],0,[45,45],[45,51],[51,51],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],31],[12,31],[19,31],[[],31],[[],31],[[],31],[[],31],[[],31],[[21,27],31],[8,[[60,[[3,[4]]]]]],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[27,[[34,[28]]]],[[],34],[27,[[34,[29]]]],[[],34],[[],34],[[[11,[46]]],[[34,[21,33]]]],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[24,24],55],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[4,[[59,[26]]]],[20],[[[35,[1]]],[[3,[1]]]],0,[8,8],[71,71],[[[3,[24]],[59,[[3,[9]]]],[80,[45]]],45],0,0,[[13,82],86],[[4,82],86],[[9,82],86],[54,86],[[53,55],86],[[45,82],86],[[],86],[[17,82],86],[[16,82],86],[[51,82],86],[[23,82],86],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[87,[[60,[53]]]],0,0,0,[[]],[[]],0,0,[[],88],[[]],[[88,3],[[59,[[3,[24]]]]]],[[88,26],[[59,[[3,[4]]]]]],0,[[]],0,[[88,54]],[[88,13]],[[88,45]],[[88,20]],[[88,75]],[[88,51]],[[88,76]],0,[[],34],[[],34],[[],85],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[89,89],[[]],0,0,0,[54,[[11,[[3,[4]]]]]],[54,[[11,[31]]]],[[]],[[]],[[],[[11,[79]]]],0,[[]],[[]],0,[[]],0,[[],34],[[],34],[[],34],[[],34],[[],85],[[],85]],"p":[[8,"GetName"],[3,"IdList"],[6,"RRC"],[3,"Cell"],[4,"Attribute"],[8,"Into"],[15,"u64"],[3,"Builder"],[3,"CombGroup"],[3,"PortDef"],[3,"Vec"],[3,"Nothing"],[3,"Assignment"],[3,"LibrarySignatures"],[3,"PathBuf"],[3,"Primitive"],[3,"Group"],[4,"PrimitiveInfo"],[3,"StaticTiming"],[4,"Guard"],[3,"Attributes"],[3,"GPosIdx"],[3,"StaticGroup"],[3,"Port"],[8,"Iterator"],[3,"Id"],[15,"str"],[4,"BoolAttr"],[4,"NumAttr"],[4,"InternalAttr"],[3,"String"],[3,"Canonical"],[3,"Error"],[4,"Result"],[3,"WRC"],[3,"GuardRef"],[4,"FlatGuard"],[4,"PortComp"],[8,"Clone"],[4,"PortParent"],[4,"CellType"],[4,"Width"],[4,"Direction"],[4,"Ordering"],[4,"Control"],[3,"Global"],[3,"GuardPool"],[3,"BackendConf"],[3,"Empty"],[3,"PortIterator"],[4,"StaticControl"],[3,"Enable"],[3,"Context"],[3,"Component"],[15,"bool"],[3,"GlobalSymbol"],[3,"RandomState"],[3,"LinkedHashMap"],[4,"Option"],[6,"CalyxResult"],[3,"Formatter"],[3,"Error"],[8,"Debug"],[6,"Result"],[3,"Seq"],[3,"StaticSeq"],[3,"Par"],[3,"StaticPar"],[3,"If"],[3,"StaticIf"],[3,"While"],[3,"Repeat"],[3,"StaticRepeat"],[3,"StaticEnable"],[3,"Invoke"],[3,"StaticInvoke"],[4,"GenericControl"],[15,"u8"],[3,"MemInfo"],[3,"Box"],[15,"u32"],[15,"usize"],[3,"NonZeroU64"],[3,"SmallVec"],[3,"TypeId"],[6,"Result"],[3,"Workspace"],[3,"Rewriter"],[4,"MemoryType"],[3,"Printer"],[3,"Cloner"],[8,"GetAttributes"],[13,"Bool"],[13,"Num"],[13,"Internal"],[13,"Unknown"],[13,"Primitive"],[13,"Component"],[13,"Constant"],[13,"Seq"],[13,"Par"],[13,"If"],[13,"While"],[13,"Repeat"],[13,"Invoke"],[13,"Enable"],[13,"Empty"],[13,"Static"],[13,"Or"],[13,"And"],[13,"Not"],[13,"CompOp"],[13,"Port"],[13,"Static"],[13,"Dynamic"],[13,"Or"],[13,"And"],[13,"Not"],[13,"CompOp"],[13,"Port"],[13,"Info"],[13,"Cell"],[13,"Group"],[13,"StaticGroup"],[13,"Extern"],[13,"Inline"],[13,"Repeat"],[13,"Enable"],[13,"Par"],[13,"Seq"],[13,"If"],[13,"Empty"],[13,"Invoke"],[13,"Const"],[13,"Param"],[8,"GetMemInfo"]]},\
-"calyx_opt":{"doc":"The Calyx Intermediate Language","t":[0,0,0,0,14,0,8,3,3,3,3,3,3,3,3,3,3,16,8,3,3,3,3,3,3,16,3,3,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,10,12,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,13,4,13,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,6,3,6,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,4,13,13,3,8,13,3,8,8,13,8,13,13,4,13,4,3,13,13,13,13,13,13,6,8,8,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,12,12,12,12,12,12],"n":["analysis","default_passes","pass_manager","passes","register_alias","traversal","AssignmentAnalysis","CompactionAnalysis","ControlId","ControlOrder","ControlPorts","DataflowOrder","DominatorMap","GoDone","GraphAnalysis","GraphColoring","InferenceAnalysis","Info","IntoStatic","LiveRangeAnalysis","PortInterface","PromotionAnalysis","ReadWriteSet","ScheduleConflicts","ShareSet","StaticCon","StaticFSM","StaticParTiming","StaticSchedule","VariableDetection","WithStatic","add","add_component","add_edges","add_static_enable_ids","add_static_enable_ids_static","adjust_component","all_conflicts","analysis","analysis","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_be_promoted","clone","clone","clone_into","clone_into","color_greedy","comb_path_spec","comb_path_specs","compact_control_vec","component_name","compute_static","compute_unique_ids","conflicts_with","contains","control_port_read_write_set","control_port_read_write_set_static","control_read_write_set","control_read_write_set_static","convert_enable_to_static","convert_invoke_to_static","convert_to_static","convert_vec_to_static","count_to_n","dataflow_sort","default","default","default","default","default","default","default","default","default","edge_induced_subgraph","exits_map","fixup_ctrl","fixup_if","fixup_par","fixup_repeat","fixup_seq","fixup_timing","fixup_while","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_context","from_ctx","get","get","get_all","get_all_bindings","get_bindings","get_bitwidth","get_control","get_control_nodes","get_dependency_graph_seq","get_guaranteed_attribute","get_guaranteed_attribute_static","get_guaranteed_enable_id","get_guaranteed_id","get_guaranteed_id_static","get_inferred_latency","get_latency","get_live_control_data","get_node_reads","get_ports","get_possible_latency","get_share_freqs","get_static_control","get_total_order","get_unique_id","has_cycles","has_nodes","insert_conflict","insert_conflicts","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_done","is_empty","is_go","is_shareable_component","is_state_share","iter","key_written_guaranteed","latency_data","len","liveness_overlaps","make_static","map","new","new","new","new","new","new","paths","port_reads","ports","query_between","reaching_defns","reads_from","realize_schedule","remove","remove_component","remove_isolated_vertices","remove_promotable_attribute","remove_promotable_from_seq","static_component_latencies","static_groups","static_par_domination","to_owned","to_owned","to_string","to_string","toposort","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_cont_read_writes","update_static","update_static","variable_like","welsh_powell_coloring","write_together_specs","writes_to","DefSet","Group","GroupOrInvoke","Invoke","MetadataMap","ReachingDefinitionAnalysis","bitor","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_overlap","clone","clone","clone_into","clone_into","cmp","compare","default","default","default","eq","equivalent","equivalent","fetch_label","fetch_label_static","fmt","fmt","fmt","fmt","from","from","from","from","get_hash","hash","into","into","into","into","into","meta","new","partial_cmp","reach","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","0","0","PassClosure","PassManager","PassResult","add_alias","borrow","borrow_mut","complete_help","default","default_passes","execute_plan","from","into","register_diagnostic","register_pass","specific_help","try_from","try_into","type_id","AddGuard","Canonicalize","CellShare","ClkInsertion","CollapseControl","CombProp","CompileInvoke","CompileRepeat","CompileStatic","CompileSync","CompileSyncWithoutSyncReg","ComponentInliner","DataPathInfer","DeadAssignmentRemoval","DeadCellRemoval","DeadGroupRemoval","DefaultAssigns","DiscoverExternal","ExternalToRef","Externalize","GoInsertion","GroupToInvoke","GroupToSeq","HoleInliner","InferShare","LowerGuards","MergeAssign","Metadata","Papercut","ParToSeq","RegisterUnsharing","RemoveIds","ResetInsertion","SimplifyStaticGuards","SimplifyWithControl","StaticFSMOpts","StaticInference","StaticInliner","StaticPromotion","SynthesisPapercut","TopDownCompileControl","UnrollBounded","WellFormed","WireInliner","WrapMain","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","diagnostics","diagnostics","diagnostics","enable","enable","enable","enable","enable","finish","finish","finish","finish","finish","finish","finish","finish","finish","finish","finish_if","finish_if","finish_if","finish_if","finish_if","finish_if","finish_par","finish_par","finish_par","finish_par","finish_par","finish_par","finish_repeat","finish_repeat","finish_repeat","finish_seq","finish_seq","finish_seq","finish_static_par","finish_static_repeat","finish_static_seq","finish_while","finish_while","finish_while","finish_while","finish_while","finish_while","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bit_width_from","get_coloring","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","invoke","invoke","invoke","invoke","invoke","invoke","invoke","iteration_order","iteration_order","iteration_order","iteration_order","iteration_order","math_utilities","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","new","opts","opts","opts","opts","opts","opts","opts","opts","precondition","separate_anded_intervals","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start_context","start_context","start_if","start_if","start_if","start_if","start_static_control","start_static_control","start_static_control","start_static_if","start_static_if","start_while","start_while","start_while","start_while","start_while","start_while","static_enable","static_enable","static_invoke","static_invoke","static_invoke","static_invoke","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","get_bit_width_from","Action","Bool","Change","CompTraversal","ConstructVisitor","Continue","DiagnosticContext","DiagnosticPass","DiagnosticResult","List","Named","No","Num","Order","OutStream","ParseVal","PassOpt","Post","Pre","SkipChildren","StaticChange","Stop","String","VisResult","Visitable","Visitor","accumulate_err","accumulate_err","apply_update","bool","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change","clear_data","clone","clone_into","default","default","default","description","description","diagnostics","do_pass","do_pass","do_pass_default","do_pass_default","early_return_err","empty","empty","enable","enable","eq","equivalent","equivalent","err","errors_iter","finish","finish","finish_context","finish_context","finish_if","finish_if","finish_par","finish_par","finish_repeat","finish_repeat","finish_seq","finish_seq","finish_static_control","finish_static_control","finish_static_if","finish_static_if","finish_static_par","finish_static_par","finish_static_repeat","finish_static_repeat","finish_static_seq","finish_static_seq","finish_while","finish_while","fmt","fmt","from","from","from","from","from","from","from","get_opts","get_opts","into","into","into","into","into","into","invoke","invoke","iteration_order","iteration_order","name","name","new","new","not_null_outstream","num","num_list","num_list_exact","opts","opts","parse_bool","parse_num","parse_num_list","parse_outstream","parse_string","pos_num","precondition","precondition","start","start","start_context","start_context","start_if","start_if","start_par","start_par","start_repeat","start_repeat","start_seq","start_seq","start_static_control","start_static_control","start_static_if","start_static_if","start_static_par","start_static_par","start_static_repeat","start_static_repeat","start_static_seq","start_static_seq","start_while","start_while","static_change","static_enable","static_enable","static_invoke","static_invoke","string","take","to_owned","to_string","traverse_component","traverse_component","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","visit","warning","warning_iter","0","0","0","0","0","0","0"],"q":["calyx_opt","","","","","","calyx_opt::analysis","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::analysis::reaching_defns","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::analysis::reaching_defns::GroupOrInvoke","","calyx_opt::pass_manager","","","","","","","","","","","","","","","","","","calyx_opt::passes","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::passes::math_utilities","calyx_opt::traversal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::traversal::Action","","calyx_opt::traversal::ParseVal","","","",""],"d":["Analysis for Calyx programs.","Defines the default passes available to PassManager.","Define the PassManager structure that is used to construct …","Passes for the Calyx compiler.","Simple macro to register an alias with a pass manager.","Helpers for traversing Control programs","Analyzes that can be performed on a set of assignments.","Struct to perform compaction on seqs
. It will only work if …","Adding “NODE_ID”, “BEGIN_ID”, and “END_ID” …","Extract the dependency order of a list of control programs.","Contains a mapping from name of ir::CombGroup to the ports …","Given a set of assignment, generates an ordering that …","Builds a Domination Map for the control program. It maps …","Struct to store information about the go-done interfaces …","Constructs a graph based representation of a component. …","Defines a greedy graph coloring algorithm over a generic …","Default implemnetation is almost certainly not helpful. …","Extra information needed to compute static information for …","","This analysis implements a parallel version of a classic …","Helper methods to parse @read_together
and @write_together
…","","Calcuate the reads-from and writes-to set for a given set …","A conflict graph that describes which nodes (i.e. …","Stores a Hashset that contains the type names of all …","","","Calculate live ranges across static par blocks. Assumes …","Represents a static schedule.","Detects if a group is solely being used to update a …","Trait to propagate and extra “static” attributes …","Adds id to self","Updates the component, given a component name and a new …","Add each edge in edges
to the graph.","","","Updates the component, given a component name and a new …","Returns an iterator containing all conflict edges, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if a control statement is already static, or …","","","","","Given an ordering
of T
s, find a mapping from nodes to T
s …","Construct @read_together
spec from the definition of a …","Construct @read_together specs from the primitive …","Takes a vec of ctrl stmts and turns it into a compacted …","","Compute the static information for the type if possible …","Adds the @NODE_ID attribute to all control stmts except …","Return a vector of all nodes that conflict with this nodes.","Checks if id contains self","Returns the ports that are read and written, respectively, …","Returns the ports that are read and written, respectively, …","Returns the cells that are read and written, respectively, …","Returns the cells that are read and written, respectively, …","","","Converts control to static control. Control must already …","Converts vec of control to vec of static control. All …","","","","","","","","","","","","Restricts the analysis graph to only include edges that …","Maps ids of control stmts, to the “last” nodes in …","","","","","","“Fixes Up” the component. In particular:","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Builds a StaticSchedule object from a vec of static groups.","Constructs a shareset from the context. Looks for “…","Builds FixUp struct from a ctx. Looks at all primitives …","Return a reference to the port reads associated with the …","Look up the set of things live at a node (i.e. group or …","Get a unique list of all live cells in component
.","Return the entire invoke binding map.","Get all bindings for an instance","","Given a control c and an id, finds the control statement …","","","","","","","","","Returns the latency associated with the provided @go port …","Updates live_once_map and par_thread_map. live_once_map …","","Iterate over the defined ports","Returns Some(latency) if a control statement has a …","provides a hashmap that gives the sharing frequencies","","Return a total order for the control programs. Returns an …","","Checks if there are cycles in the analysis graph.","","Add a conflict edge between a
and b
.","Add conflict edges between all given items.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Returns true if this is a @done port","Iterate over the defined ports","Returns true if this is @go port","Given a set of shareable and a cell, determines whether …","Returns whether or not this instance is state_share","Iterate over the defined ports","","component name -> vec<(go signal, done signal, latency)>","Iterate over the defined ports","par_id
is the id of a par thread. thread_a
and thread_b
…","","Map from node (either invokes, enables, or if/while ports) …","","Construct a domination map.","","Construct a live range analysis.","","Construct a live range analysis.","Return a Vec of paths from start
to finish
, each path a …","Returns ir::Port that are read from in the given …","Returns all the Port
associated with this instance.","","Calculate the reaching definitions in a control program.","Returns an iterator over all the reads from a port. …","Realizes a StaticSchedule (i.e., instantiates the FSMs) If …","Remove the port reads associated with the group.","Updates the component, given a component name and a new …","Remove all vertices that have no undirected neighbors from …","Removes the @promotable attribute from the control program.","","Maps static component names to their latencies, but there …","The static groups the FSM will schedule. It is a vec …","an analysis to help domination across static pars static …","","","","","Return a topological sort of this graph.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Updates self so that compaction will take continuous …","Compute the static information for the type if possible …","Compute the static information for the type if possible …","A group is variable like if it:","","Construct @write_together specs from the primitive …","Returns an iterator over all the writes to this port. …","A datastructure used to represent a set of …","","A wrapper enum to distinguish between Ids that come from …","","","A struct used to compute a reaching definition analysis. …","","","","","","","","","","Provides a map containing a vector of sets for each …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","Constructs a reaching definition analysis for registers …","","","","","","","","","","","","","","","","","","","Top-level type for all passes that transform an ir::Context","Structure that tracks all registered passes for the …","","Adds a new alias for groups of passes. An alias is a list …","","","Return a string representation to show all available …","","","Executes a given “plan” constructed using the incl and …","Returns the argument unchanged.","Calls U::from(self)
.","Registers a diagnostic pass as a normal pass. If there is …","Register a new Calyx pass and return an error if another …","Return the help string for a specific pass.","","","","","Perform serval canonicalizations on the program.","Given a LiveRangeAnalysis that specifies the “share” …","Adds assignments from a components clk
port to every …","Collapses and de-nests control constructs.","Propagate unconditional reads and writes from wires.","Compiles ir::Invoke
statements into an ir::Enable
that …","Compiles ir::Invoke
statements into an ir::Enable
that …","Compiles Static Islands","loop through all control statements under “par” block …","Compiles @sync without use of std_sync_reg Upon …","Inlines all sub-components marked with the @inline
…","Infers @control
and @data
annotations for cells. A cell …","Removes unused assigns from groups. Analyzes the writes to …","Removes unused cells from components.","Removes unused groups and combinational groups from …","Adds default assignments to all non-@data
ports of an …","A pass to detect cells that have been inlined into the …","Turns memory cell primitives with the @external(1)
…","Externalize input/output ports for cells marked with the …","Add the group’s go
signal into the guards of all …","Transform groups that are structurally invoking components …","Transforms a group into a seq of 2 smaller groups, if …","Removes all groups and inlines reads and writes from holes.","This pass checks if components are (state) shareable. Here …","Lowers guards into a purely structural representation. …","Merge assignments of the form with the same (dst_port, …","Metadata stores a Map between each group name and data …","Pass to check for common errors such as missing …","Transforms all par
into seq
. Uses analysis::ControlOrder …","Unsharing registers reduces the amount of multiplexers …","Removes NODE_ID, BEGIN_ID, and END_ID from each control …","Adds assignments from a components reset
port to every …","Simplifies Static Guards In particular if g = g1 & g2 & ……","Transforms combinational groups into normal groups by …","Adds assignments from a components clk
port to every …","Infer @promotable annotation for groups and control. …","","Promote control to static when (conservatively) possible, …","Pass to check common synthesis issues.","Core lowering pass. Compiles away the control programs in …","Fully unroll all while
loops with a given @bound
.","Pass to check if the program is well-formed.","Alternate hole inliner that removes groups and group holes …","If the top-level component is not named main
, adds a new …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Transforms a if-with
into a seq-if
which first runs the …","","Compile each child in par
block separately so each child …","Collapse par { par { A }; B } into par { A; B }.","Collapse par { par { A }; B } into par { A; B }.","","","","","","","","Collapse seq { seq { A }; B } into seq { A; B }.","Collapse static par {static par {A; B;}} into static par …","Collapse","Collase static seq {static seq {A; B; }} into static seq …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create an empty metadata table","","","","","","","","","","takes in g, and separates the “anded intervals” from …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Executed after visiting the children of a [ir::Static] …","Executed after visiting the children of a [ir::Static] …","","","","","","If while body is static, then we want to make sure that …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the minimum bit width needed to represents n …","Action performed at the end of visiting a control …","A boolean option.","Replace the current ast node with a new node. If performed …","Define traversal order of components: pre-order, …","Trait defining method that can be used to construct a …","Continue traversal of control program.","A type for accumulating multiple errors","A pass that implements reporting Diagnostics","Accumuate the error in a Result
type into the …","A list of values.","Trait that describes named things. Calling do_pass
and …","Use an arbitrary order.","A number option.","The order in which the components are traversed.","An output stream (stdout, stderr, file name)","The value returned from parsing an option.","Option that can be passed to a pass.","Traverse components in post-order.","Traverse components in pre-order.","Skips the traversal of this node’s children but …","Replace the current StaticControl node with a new node If …","Globally abort traversal of control program.","A string option.","Result of performing a visit.","Describes types that can be visited by things implementing …","The visiting interface for a ir::Control
program. Contains …","","","Traverses components in post-order and applies upd
.","","","","","","","","","","","","","","","Clear the data stored in the visitor. Called before …","","","","","","A short description of the pass.","","Return an iterator of the diagnostics gathered by this …","Run the visitor on a given program ir::Context
. The …","Run the visitor on a given program ir::Context
. The …","Build a Default implementation of this pass and call …","Build a Default implementation of this pass and call …","Accumulates error
into the context, and returns …","Executed at an ir::Empty node.","Executed at an ir::Empty node.","Executed at an ir::Enable node.","Executed at an ir::Enable node.","","","","Report an error
","","Executed after the traversal ends. This method is always …","Executed after the traversal ends. This method is always …","Transform the ir::Context
after visiting the components.","Transform the ir::Context
after visiting the components.","Executed after visiting the children of a ir::If node.","Executed after visiting the children of a ir::If node.","Executed after visiting the children of a ir::Par node.","Executed after visiting the children of a ir::Par node.","Executed after visiting the children of a ir::Repeat node.","Executed after visiting the children of a ir::Repeat node.","Executed after visiting the children of a ir::Seq node.","Executed after visiting the children of a ir::Seq node.","Executed after visiting the conetnts of an …","Executed after visiting the conetnts of an …","Executed after visiting the children of a ir::StaticIf …","Executed after visiting the children of a ir::StaticIf …","","","Executed after visiting the children of a ir::StaticRepeat …","Executed after visiting the children of a ir::StaticRepeat …","","","Executed after visiting the children of a ir::While node.","Executed after visiting the children of a ir::While node.","","","Construct the visitor using information from the Context","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Executed at an ir::Invoke node.","Executed at an ir::Invoke node.","Define the iteration order in which components should be …","Define the iteration order in which components should be …","The name of a pass. Is used for identifying passes.","","","Returns a new instance the PostOrder iterator given a …","Returns an output stream if it is not the null stream","","","Parse a list that should have exactly N elements. If …","Set of options that can be passed to the pass. The options …","Set of options that can be passed to the pass. The options …","","Parse a number from a string.","Parse a list of numbers from a string.","","Parse a String from a string.","","Precondition for this pass to run on the program. If this …","Precondition for this pass to run on the program. If this …","Executed before the traversal begins.","Executed before the traversal begins.","Transform the ir::Context
before visiting the components.","Transform the ir::Context
before visiting the components.","Executed before visiting the children of a ir::If node.","Executed before visiting the children of a ir::If node.","Executed before visiting the children of a ir::Par node.","Executed before visiting the children of a ir::Par node.","Executed before visiting the children of a ir::Repeat node.","Executed before visiting the children of a ir::Repeat node.","Executed before visiting the children of a ir::Seq node.","Executed before visiting the children of a ir::Seq node.","Executed before visiting the contents of an …","Executed before visiting the contents of an …","Executed before visiting the children of a ir::StaticIf …","Executed before visiting the children of a ir::StaticIf …","","","Executed before visiting the children of a ir::StaticRepeat…","Executed before visiting the children of a ir::StaticRepeat…","","","Executed before visiting the children of a ir::While node.","Executed before visiting the children of a ir::While node.","","Executed at an ir::StaticEnable node.","Executed at an ir::StaticEnable node.","Executed at a ir::StaticInvoke node.","Executed at a ir::StaticInvoke node.","","Returns the underlying component vector in original order.","","","Define the traversal over a component. Calls Visitor::start…","Define the traversal over a component. Calls Visitor::start…","","","","","","","","","","","","","","","","","","","Perform the traversal.","Report a warning
","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0,0,0,0,0,0,138,0,0,0,0,0,1,3,4,139,139,3,8,140,140,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,19,4,1,4,1,11,142,142,18,29,137,139,8,1,143,143,143,143,19,19,19,19,24,28,18,29,4,30,19,8,1,31,32,4,29,3,3,3,3,3,3,3,18,29,4,41,30,19,31,24,32,139,141,42,42,28,11,11,3,142,143,144,18,29,4,4,4,41,41,41,30,19,8,8,1,31,24,32,32,1,3,42,30,30,42,42,24,29,29,141,139,139,139,139,139,19,41,30,29,41,3,11,29,141,24,4,11,11,11,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,41,41,41,1,1,41,29,3,41,31,138,29,28,29,41,30,1,31,4,143,4,24,0,4,32,42,3,4,3,3,3,32,29,4,1,11,4,4,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,18,137,137,144,11,142,4,0,67,0,67,0,0,63,67,69,63,64,67,69,63,64,64,67,63,67,63,67,67,69,63,64,67,67,67,69,69,67,69,63,64,67,69,63,64,67,67,67,67,69,63,64,64,64,67,64,67,63,67,69,63,64,67,69,63,64,67,69,63,64,145,146,0,0,0,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,89,90,91,81,85,89,98,100,77,84,85,88,89,95,97,98,113,115,85,88,89,98,113,115,85,88,93,104,110,111,85,93,94,85,88,93,93,93,93,85,88,89,98,113,115,89,90,114,91,74,74,75,75,76,76,77,77,78,78,79,79,80,80,81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88,89,89,92,93,94,95,96,97,98,99,100,101,102,103,90,90,104,105,106,107,108,109,110,111,112,113,114,115,91,91,116,117,118,0,95,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,77,78,85,89,97,98,105,77,78,82,84,85,0,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,114,75,76,78,82,83,85,88,95,118,108,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,95,96,99,100,101,102,103,90,105,106,107,108,115,91,117,114,118,78,89,97,90,95,109,112,89,97,78,89,95,97,90,116,89,98,77,89,97,105,114,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,0,0,130,131,0,0,131,0,0,0,130,0,125,130,0,130,0,0,125,125,131,131,131,130,0,0,0,147,121,129,130,131,126,129,130,119,125,131,126,129,130,119,125,131,148,130,130,126,119,125,149,126,150,136,136,136,136,119,136,136,136,136,125,125,125,119,119,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,130,119,148,131,126,129,130,119,125,148,148,131,126,129,130,119,125,136,136,136,136,149,126,126,129,130,130,130,130,149,149,126,126,126,126,126,130,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,131,136,136,136,136,130,129,130,130,136,136,131,126,129,130,119,125,131,126,129,130,119,125,131,126,129,130,119,125,151,119,119,152,153,154,155,156,157,158],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,2]],[3],[4,4],[[5,6],6],[[7,6],6],[3],[8,9],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5,10],[4,4],[1,1],[[]],[[]],[[11,[13,[12]],10],14],[15,[[17,[16]]]],[9,[[17,[[14,[2,16]]]]]],[[18,[16,[5]],19,20],[[16,[5]]]],0,[[],[[13,[6]]]],[[5,6,10],6],[[8,2],[[21,[2]]]],[[1,2],10],[5],[7],[5],[7],[[19,22,20],7],[[19,23],7],[[19,5,20],7],[[19,20,[16,[5]]],[[16,[7]]]],[[24,20,6,[13,[[26,[25]]]]],[[16,[[27,[25]]]]]],[[28,[16,[27]]],[[17,[[16,[27]]]]]],[[],18],[[],29],[[],4],[[],30],[[],19],[[],8],[[],1],[[],31],[[],32],[4,4],0,[[3,5]],[[3,33]],[[3,34]],[[3,35]],[[3,36]],[[3,37]],[[3,38]],[[18,39],40],[[29,39],40],[[4,39],40],[[41,39],40],[[30,39],40],[[19,39],40],[[31,39],40],[[24,39],40],[[32,39],40],[[]],[[]],[5,42],[[]],[[]],[[],11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[43,4],[37,4],[[]],[15,41],[44,41],[[]],[[]],[[]],[[]],[5,8],[[]],[[]],[[]],[[]],[[[16,[[46,[45]]]]],32],[47,1],[47,3],[[42,2],[[13,[16]]]],[[30,6],14],[30,9],[42,[[14,[2,16]]]],[[42,2],[[13,[16]]]],[24,6],[[6,5],[[13,[48]]]],[[21,5]],[[9,14,14],[[49,[[13,[5]]]]]],[5,6],[7,6],[50,6],[5,6],[7,6],[5,6],[[41,2],[[13,[6]]]],[[30,14,14,14,21,5]],[[6,37,1],[[21,[2]]]],[41,16],[5,[[13,[6]]]],[11,[[14,[12,12]]]],[[6,7],[[13,[48]]]],[9,[[17,[[16,[5]]]]]],[24,2],[4,10],[11,10],[11],[11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[41,2],10],[41,10],[[41,2],10],[[1,46],10],[1,10],[41,9],[[2,21,37],10],0,[41,51],[[31,6,6,6,2,2],10],[[],13],0,[9,[[17,[28]]]],[[5,2],29],[16,41],[[5,1,1,10],30],[[[21,[2]],10],1],[[5,2,30],31],[[4,52,52],[[16,[[16,[[46,[52]]]]]]]],[27,[[0,[9]]]],[4,[[16,[[46,[52]]]]]],[[24,20],[[53,[[26,[25]]]]]],0,[[4,52],54],[[32,20,10]],[[42,2],[[13,[[16,[[46,[52]]]]]]]],[[3,2]],[4,4],[5],[36],0,0,0,[[]],[[]],[[[11,[[0,[55,56,57,58,59]]]]],60],[4,60],[4,54],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[18,37]],[[],[[13,[6]]]],[[],[[13,[6]]]],[[46,1],13],[11,14],[9,[[14,[2,[16,[[21,[2]]]]]]]],[[4,52],54],0,0,0,0,0,0,[[63,63]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[64,[[66,[2,[16,[65]]]]]],[67,67],[63,63],[[]],[[]],[[67,67],68],[[],68],[[],69],[[],63],[[],64],[[67,67],10],[[],10],[[],10],[[69,23],[[13,[2]]]],[[69,70],[[13,[2]]]],[[67,39],40],[[69,39],40],[[63,39],40],[[64,39],40],[[]],[[]],[[]],[[]],[[],6],[67],[[]],[67,2],[[]],[[]],[[]],0,[5,64],[[67,67],[[13,[68]]]],0,[[]],[[]],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],0,0,0,0,0,[[71,60,[16,[60]]],72],[[]],[[]],[71,60],[[],71],[[],[[72,[71]]]],[[71,47,10],72],[[]],[[]],[71,72],[71,72],[[71,73],[[13,[60]]]],[[],61],[[],61],[[],62],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[74],[75],[76],[77],[78],[79],[80],[81],[82],[83],[84],[85],[86],[87],[88],[89],[90],[91],[[],92],[[],93],[[],94],[[],95],[[],96],[[],97],[[],98],[[],99],[[],100],[[],101],[[],102],[[],103],[[],104],[[],105],[[],106],[[],107],[[],108],[[],109],[[],110],[[],111],[[],112],[[],113],[[],114],[[],115],[[],116],[[],117],[[],118],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[89,119],[90,119],[91,119],[[81,22,37,120],121],[[85,22,37,120],121],[[89,22,37,120],121],[[98,22,37,120],121],[[100,22,37,120],121],[[77,37,120],121],[[84,37,120],121],[[85,37,120],121],[[88,37,120],121],[[89,37,120],121],[[95,37,120],121],[[97,37,120],121],[[98,37,120],121],[[113,37,120],121],[[115,37,120],121],[[85,33,37,120],121],[[88,33,37,120],121],[[89,33,37,120],121],[[98,33,37,120],121],[[113,33,37,120],121],[[115,33,37,120],121],[[85,34,37,120],121],[[88,34,37,120],121],[[93,34,37,120],121],[[104,34,37,120],121],[[110,34,37,120],121],[[111,34,37,120],121],[[85,35,37,120],121],[[93,35,37,120],121],[[94,35,37,120],121],[[85,36,37,120],121],[[88,36,37,120],121],[[93,36,37,120],121],[[93,122,37,120],121],[[93,123,37,120],121],[[93,124,37,120],121],[[85,38,37,120],121],[[88,38,37,120],121],[[89,38,37,120],121],[[98,38,37,120],121],[[113,38,37,120],121],[[115,38,37,120],121],[[89,39],40],[[90,39],40],[[114,39],40],[[91,39],40],[47,[[17,[74]]]],[[]],[[]],[47,[[17,[75]]]],[[]],[47,[[17,[76]]]],[47,[[17,[77]]]],[[]],[[]],[47,[[17,[78]]]],[[]],[47,[[17,[79]]]],[47,[[17,[80]]]],[[]],[[]],[47,[[17,[81]]]],[[]],[47,[[17,[82]]]],[47,[[17,[83]]]],[[]],[[]],[47,[[17,[84]]]],[47,[[17,[85]]]],[[]],[[]],[47,[[17,[86]]]],[[]],[47,[[17,[87]]]],[[]],[47,[[17,[88]]]],[[]],[47,[[17,[89]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[47,[[17,[90]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[47,[[17,[91]]]],[[]],[[]],[[]],[[]],0,[[16,5],[[14,[2,2]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[77,23,37,120],121],[[78,23,37,120],121],[[85,23,37,120],121],[[89,23,37,120],121],[[97,23,37,120],121],[[98,23,37,120],121],[[105,23,37,120],121],[[],125],[[],125],[[],125],[[],125],[[],125],0,[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],114],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[47,[[13,[60]]]],[[[26,[127]],16],[[13,[[26,[127]]]]]],[[74,37,120],121],[[75,37,120],121],[[76,37,120],121],[[77,37,120],121],[[78,37,120],121],[[79,37,120],121],[[80,37,120],121],[[81,37,120],121],[[82,37,120],121],[[83,37,120],121],[[84,37,120],121],[[85,37,120],121],[[86,37,120],121],[[87,37,120],121],[[88,37,120],121],[[89,37,120],121],[[92,37,120],121],[[95,37,120],121],[[96,37,120],121],[[99,37,120],121],[[100,37,120],121],[[101,37,120],121],[[102,37,120],121],[[103,37,120],121],[[90,37,120],121],[[105,37,120],121],[[106,37,120],121],[[107,37,120],121],[[108,37,120],121],[[115,37,120],121],[[91,37,120],121],[[117,37,120],121],[[114,47],121],[[118,47],121],[[78,33,37,120],121],[[89,33,37,120],121],[[97,33,37,120],121],[[90,33,37,120],121],[[95,7,37,120],121],[[109,7,37,120],121],[[112,7,37,120],121],[[89,128,37,120],121],[[97,128,37,120],121],[[78,38,37,120],121],[[89,38,37,120],121],[[95,38,37,120],121],[[97,38,37,120],121],[[90,38,37,120],121],[[116,38,37,120],121],[[89,50,37,120],121],[[98,50,37,120],121],[[77,70,37,120],121],[[89,70,37,120],121],[[97,70,37,120],121],[[105,70,37,120],121],[[],60],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[6,6],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[119],[[121,119],121],[129,17],[130,10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5,131],[[]],[130,130],[[]],[126,130],[[],119],[[],125],[[],73],[126,73],[[],119],[47,17],[47,17],[47,17],[47,17],[[119,132],121],[[133,37,120],121],[[133,37,120],121],[[22,37,120],121],[[22,37,120],121],[[125,125],10],[[],10],[[],10],[[119,132]],[119,9],[[37,120],121],[[37,120],121],[47,121],[47,121],[[33,37,120],121],[[33,37,120],121],[[34,37,120],121],[[34,37,120],121],[[35,37,120],121],[[35,37,120],121],[[36,37,120],121],[[36,37,120],121],[[7,37,120],121],[[7,37,120],121],[[128,37,120],121],[[128,37,120],121],[[122,37,120],121],[[122,37,120],121],[[123,37,120],121],[[123,37,120],121],[[124,37,120],121],[[124,37,120],121],[[38,37,120],121],[[38,37,120],121],[[130,39],40],[[119,39],40],[47,17],[[]],[[]],[[]],[[]],[[]],[[]],[47,[[134,[73,130]]]],[47,[[134,[73,130]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[23,37,120],121],[[23,37,120],121],[[],125],[[],125],[[],73],[126,73],[[73,73,130],126],[[[16,[37]],125],129],[130,[[13,[135]]]],[130,12],[130,[[16,[12]]]],[130],[[],[[16,[126]]]],[[],[[16,[126]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[130,[[13,[6]]]],[47,[[13,[60]]]],[47,[[13,[60]]]],[[37,120],121],[[37,120],121],[47,121],[47,121],[[33,37,120],121],[[33,37,120],121],[[34,37,120],121],[[34,37,120],121],[[35,37,120],121],[[35,37,120],121],[[36,37,120],121],[[36,37,120],121],[[7,37,120],121],[[7,37,120],121],[[128,37,120],121],[[128,37,120],121],[[122,37,120],121],[[122,37,120],121],[[123,37,120],121],[[123,37,120],121],[[124,37,120],121],[[124,37,120],121],[[38,37,120],121],[[38,37,120],121],[7,131],[[50,37,120],121],[[50,37,120],121],[[70,37,120],121],[[70,37,120],121],[130,60],[129,[[16,[37]]]],[[]],[[],60],[[37,120],17],[[37,120],17],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[136,37,120],121],[[119,132]],[119,9],0,0,0,0,0,0,0],"p":[[3,"ShareSet"],[3,"Id"],[3,"InferenceAnalysis"],[3,"GraphAnalysis"],[4,"Control"],[15,"u64"],[4,"StaticControl"],[3,"ScheduleConflicts"],[8,"Iterator"],[15,"bool"],[3,"GraphColoring"],[15,"i64"],[4,"Option"],[3,"HashMap"],[3,"Primitive"],[3,"Vec"],[6,"CalyxResult"],[3,"CompactionAnalysis"],[3,"PromotionAnalysis"],[3,"Builder"],[3,"HashSet"],[3,"Enable"],[3,"Invoke"],[3,"StaticFSM"],[3,"Nothing"],[4,"Guard"],[3,"Assignment"],[3,"DataflowOrder"],[3,"DominatorMap"],[3,"LiveRangeAnalysis"],[3,"StaticParTiming"],[3,"StaticSchedule"],[3,"If"],[3,"Par"],[3,"Repeat"],[3,"Seq"],[3,"Component"],[3,"While"],[3,"Formatter"],[6,"Result"],[3,"GoDone"],[3,"ControlPorts"],[3,"Group"],[3,"Cell"],[3,"StaticGroup"],[6,"RRC"],[3,"Context"],[4,"GenericControl"],[6,"DiGraph"],[3,"StaticEnable"],[15,"usize"],[3,"Port"],[3,"Box"],[3,"PortIterator"],[8,"Eq"],[8,"Hash"],[8,"ToString"],[8,"Clone"],[8,"Ord"],[3,"String"],[4,"Result"],[3,"TypeId"],[3,"DefSet"],[3,"ReachingDefinitionAnalysis"],[3,"BTreeSet"],[3,"BTreeMap"],[4,"GroupOrInvoke"],[4,"Ordering"],[3,"MetadataMap"],[3,"StaticInvoke"],[3,"PassManager"],[6,"PassResult"],[15,"str"],[3,"Canonicalize"],[3,"CellShare"],[3,"CombProp"],[3,"CompileInvoke"],[3,"ComponentInliner"],[3,"ExternalToRef"],[3,"Externalize"],[3,"GroupToInvoke"],[3,"InferShare"],[3,"StaticFSMOpts"],[3,"StaticInference"],[3,"StaticPromotion"],[3,"DefaultAssigns"],[3,"DiscoverExternal"],[3,"TopDownCompileControl"],[3,"WellFormed"],[3,"Papercut"],[3,"SynthesisPapercut"],[3,"ClkInsertion"],[3,"CollapseControl"],[3,"CompileRepeat"],[3,"CompileStatic"],[3,"DeadAssignmentRemoval"],[3,"DeadCellRemoval"],[3,"DeadGroupRemoval"],[3,"GoInsertion"],[3,"GroupToSeq"],[3,"HoleInliner"],[3,"LowerGuards"],[3,"MergeAssign"],[3,"ParToSeq"],[3,"RegisterUnsharing"],[3,"RemoveIds"],[3,"ResetInsertion"],[3,"SimplifyStaticGuards"],[3,"StaticInliner"],[3,"CompileSync"],[3,"CompileSyncWithoutSyncReg"],[3,"AddGuard"],[3,"DataPathInfer"],[3,"Metadata"],[3,"SimplifyWithControl"],[3,"UnrollBounded"],[3,"WireInliner"],[3,"WrapMain"],[3,"DiagnosticContext"],[3,"LibrarySignatures"],[6,"VisResult"],[3,"StaticPar"],[3,"StaticRepeat"],[3,"StaticSeq"],[4,"Order"],[3,"PassOpt"],[3,"StaticTiming"],[3,"StaticIf"],[3,"CompTraversal"],[4,"ParseVal"],[4,"Action"],[3,"Error"],[3,"Empty"],[3,"LinkedHashMap"],[4,"OutputFile"],[8,"Visitor"],[8,"WithStatic"],[8,"IntoStatic"],[3,"ControlId"],[8,"AssignmentAnalysis"],[3,"ControlOrder"],[3,"PortInterface"],[3,"ReadWriteSet"],[3,"VariableDetection"],[13,"Group"],[13,"Invoke"],[8,"DiagnosticResult"],[8,"ConstructVisitor"],[8,"Named"],[8,"DiagnosticPass"],[8,"Visitable"],[13,"Change"],[13,"StaticChange"],[13,"Bool"],[13,"Num"],[13,"String"],[13,"List"],[13,"OutStream"]]},\
+"calyx_frontend":{"doc":"Frontend parsing and AST representation.","t":[4,3,13,13,4,13,13,13,13,13,13,17,13,4,13,13,13,13,13,13,13,8,13,13,13,13,13,13,4,13,13,3,13,2,13,13,13,4,13,13,13,3,13,3,4,13,13,13,13,13,13,13,13,13,13,13,13,4,3,13,11,11,11,11,11,11,0,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,12,11,11,12,11,12,12,0,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,4,13,13,13,3,3,13,6,13,13,3,4,13,13,13,13,13,3,13,3,4,4,13,13,13,13,13,13,3,13,13,13,13,4,13,13,13,13,4,13,3,13,13,3,3,4,13,13,13,13,13,13,3,13,13,3,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,12,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,13,3,13,13,13,13,4,13,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,11,11,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,13,13,13,13],"n":["Attribute","Attributes","BEGIN_ID","Bool","BoolAttr","Bound","Clk","Compactable","Const","Control","DEAD","DEPRECATED_ATTRIBUTES","Data","Direction","Done","END","END_ID","Extern","External","Fast","Generated","GetAttributes","Go","Inline","Inline","Inout","Input","Internal","InternalAttr","Interval","LOOP","LibrarySignatures","NODE_ID","NamespaceDef","NewFSM","NoInterface","Num","NumAttr","OneHot","Output","Param","PortDef","Pos","Primitive","PrimitiveInfo","Promotable","Promoted","ReadTogether","Reset","START","ST_ID","Share","Stable","StateShare","Sync","TopLevel","Unknown","Width","Workspace","WriteTogether","add_extern_primitive","add_inline_primitive","add_span","as_ref","as_ref","as_ref","ast","attributes","attributes","body","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","components","construct","construct_shallow","construct_with_all_deps","copy_from","copy_span","declarations","default","default","default","direction","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","ext","extern_paths","find_all_with_attr","find_primitive","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_compile_lib","from_repr","from_str","from_str","from_str","get","get_attributes","get_hash","get_hash","get_hash","get_hash","get_hash","get_mut_attributes","get_primitive","has","hash","hash","hash","hash","hash","inline","insert","into","into","into","into","into","into","into","into","into","into","into","into","is_comb","is_empty","is_source","latency","lib","mark_extern_source","mark_inline_source","merge_namespace","metadata","name","name","name","new","original_imports","params","parser","prim_infos","prim_inlines","remove","resolve","resolve","reverse","set_source","signature","signatures","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string_with","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","width","0","0","0","0","is_source","is_source","path","primitive","primitives","value","value","And","And","Atom","Atom","Atom","Binary","BitNum","Cell","Comp","CompGuard","CompOp","CompOp","ComponentDef","Control","Decimal","Empty","Enable","Eq","Geq","Group","Gt","Guard","GuardComp","GuardExpr","Hex","Hole","If","Invoke","Leq","Lt","NamespaceDef","Neq","Not","Not","Num","NumType","Octal","Or","Or","Par","Port","Port","Proto","Repeat","Seq","StaticGroup","StaticGuard","StaticGuardExpr","StaticIf","StaticInfo","StaticInvoke","StaticPar","StaticRepeat","StaticSeq","StaticWire","This","While","Wire","attributes","attributes","attributes","attributes","attributes","attributes","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cells","components","construct","construct_from_str","continuous_assignments","control","dest","dest","empty","expr","expr","externs","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_attributes","groups","guard","guard","imports","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_comb","is_comb","latency","latency","metadata","name","name","name","name","name","new","num_type","params","prototype","reference","signature","span","src","src","static_groups","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","val","width","wires","wires","0","0","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","body","body","body","comb_group","comb_group","comp","comp","comp","cond","cond","fbranch","fbranch","inputs","inputs","latency","latency","latency","latency","num_repeats","num_repeats","outputs","outputs","port","port","port","ref_cells","ref_cells","stmts","stmts","stmts","stmts","tbranch","tbranch","0","0","0","0","0","1","1","component","group","name","port","port","0","0","0","0","0","0","1","1","AliasedRule","COMMENT","CalyxParser","EOI","EOI","LHS","LHS","Rule","WHITESPACE","all_rules","any_char","any_char","args","args","at_attribute","at_attribute","at_attributes","at_attributes","attr_val","attr_val","attribute","attribute","attributes","attributes","bad_num","bad_num","binary","binary","bitwidth","bitwidth","block","block","block_char","block_char","block_string","block_string","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","both_comb_static","both_comb_static","cell","cell","cell_without_semi","cell_without_semi","cells","cells","char","char","clone","clone","clone_into","clone_into","cmp","cmp","cmp_expr","cmp_expr","comb","comb","comb_or_static","comb_or_static","comma","comma","comma_req","comma_req","compare","compare","component","component","connections","connections","control","control","decimal","decimal","empty","empty","enable","enable","eq","eq","equivalent","equivalent","equivalent","equivalent","expr","expr","ext","ext","extern_or_component","extern_or_component","externs_and_comps","externs_and_comps","file","file","fmt","fmt","from","from","from","get_hash","get_hash","group","group","guard_and","guard_eq","guard_eq","guard_expr","guard_expr","guard_geq","guard_geq","guard_gt","guard_gt","guard_leq","guard_leq","guard_lt","guard_lt","guard_neq","guard_neq","guard_not","guard_not","guard_or","hash","hash","hex","hex","hole","hole","ident_syms","identifier","identifier","if_stmt","if_stmt","import","imports","imports","inputs","inputs","into","into","into","invoke","invoke","invoke_arg","invoke_arg","invoke_args","invoke_args","invoke_ref_arg","invoke_ref_arg","invoke_ref_args","invoke_ref_args","io_port","io_port","latency_annotation","latency_annotation","metadata","metadata","metadata_char","metadata_char","name_with_attribute","name_with_attribute","num_lit","num_lit","octal","octal","operator","outputs","outputs","par","par","params","params","parse","parse","parse_file","partial_cmp","partial_cmp","port","port","port_with","port_with","prim_inline","prim_inline","primitive","primitive","reference","reference","repeat_stmt","repeat_stmt","semi","semi","seq","seq","sig_with_params","sig_with_params","signature","signature","static_annotation","static_annotation","static_group","static_group","static_guard_expr","static_guard_expr","static_if_stmt","static_if_stmt","static_invoke","static_invoke","static_optional_latency","static_optional_latency","static_par","static_par","static_seq","static_seq","static_switch_stmt","static_switch_stmt","static_term","static_term","static_timing_expr","static_timing_expr","static_wire","static_wire","static_word","static_word","stmt","stmt","stmts_without_block","stmts_without_block","string_lit","string_lit","switch_stmt","switch_stmt","term","term","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","while_stmt","while_stmt","wire","wire"],"q":["calyx_frontend","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_frontend::Attribute","","","","calyx_frontend::PrimitiveInfo","","","","","calyx_frontend::Width","","calyx_frontend::ast","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_frontend::ast::Atom","","calyx_frontend::ast::Control","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_frontend::ast::GuardExpr","","","","","","","calyx_frontend::ast::Port","","","","","calyx_frontend::ast::StaticGuardExpr","","","","","","","","calyx_frontend::parser","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Defines the known attributes that can be attached to IR …","Attributes associated with a specific IR structure.","","","Attributes that are only allowed to take boolean values.","The bound of a while loop","Clk for the signal","suggest that the current static seq block is compactable","The width is a constant.","This is a control path instance","","Attributes that have been deprecated.","This is a data path instance","Direction of a port on a cell.","","","","An extern block that defines multiple primitives","Cell should be externalized","https://github.com/calyxir/calyx/issues/1828","IR Node was generated by the compiler","Structs that can return an Attributes
instance.","","Inline this subcomponent","An inline primitive","Input-Output “port”. Should only be used by holes.","Input port.","","Internal attributes that cannot be parsed back from the IL.","Placed on @go ports of components to denote the II of a …","","A representation of all the primitive definitions found …","","","Generate a new FSM for this control node","The component doesn’t have a standard interface","","Attributes that can take numeric values","Generate a one-hot FSM for this control node. (Not …","Output port.","The width is a parameter.","Definition of a port parameterized by a width type. Ports …","Source location position for this node","Representation of a external primitive definition.","Tracks the information for Primitives defined in the …","Can promote the group, control, or @go port of the …","denotes a static component or control promoted from dynamic","","Reset signal for the component","","","Is this component shareable","Is the port connected to a state element","Is the component state shareable","Synchronize this thread with others in the current par …","This is the top-level component","Unknown attribute. Should not appear in the Calyx codebase.","Represents an abstract width of a primitive signature.","A Workspace represents all Calyx files transitively …","","Add a new, non-inline primitive to the context. Panics if …","Add a new inline primitive to the context. Panics if a …","Set the span information","","","","Abstract Syntax Tree for Calyx","Key-value attributes for this primitive.","Attributes attached to this port definition","body of the string, if it is an inlined primitive","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","List of component definitions that need to be compiled.","Construct a new workspace from an input stream …","Construct the Workspace using the given NamespaceDef and …","Construct the Workspace using the given files and all …","self
copys (i.e., assigns the same values) the attributes …","","List of component definitions that should be used as …","","","","The direction of the port. Only allowed to be …","","","","","","","","","","","","","","","","","","","","","Return the paths for the extern defining files along with …","Return all ports that have the attribute attr
.","Return the Primitive associated with the given name if …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a new workspace using the compile.futil
library …","Try to create Self from the raw representation","","","","Get the value associated with an attribute key","Returns an Attributes
instance","","","","","","Returns a mutable Attributes
instance","Return the Primitive associated to this Id.","Check if an attribute key has been set","","","","","","","Add a new attribute","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","True iff this is a combinational primitive","Returns true if there are no attributes","Check if this primitive is a source primitive","(Optional) latency; for static primitives","Absolute path to extern definitions and primitives defined …","Marks an import
ed extern block as a part of the source. …","Mark an inlined primitive as a part of the source. This is …","Merge the contents of a namespace into this workspace. …","Optional opaque metadata attached to the top-level file","","Return the name of the port definition","Name of this primitive.","","Original import statements present in the top-level file.","Paramters for this primitive.","Parser for Calyx programs.","Returns all the underlying primitive information. If you …","Return the underyling inlined primitives and whether they …","Remove attribute with the name key
","Retuns the bindings for all the paramters, the input ports …","Given a map from names of parameters to their values, …","Return the direction opposite to the current direction","Mark this primitive as a source primitive","The input/output signature for this primitive.","Return an iterator over all defined primitives.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The width of the port. .","","","","","","","","","","","","","","Atomic operations used in guard conditions and RHS of the …","","","","Custom bitwidth numbers","The Cell AST nodes.","Refers to the port named port
on the subcomponent component
…","Guard Comparison Type","","","AST statement for defining components.","Control AST nodes. Since enables and static enables are …","","Control statement that does nothing.","Runs the control for a list of subcomponents.","","","","","Guards expr
using the optional guard condition guard
.","Possible comparison operators for guards.","The AST for GuardExprs","","group[name]
parses into Hole { group, name }
and is a hole …","Standard imperative if statement","Invoke component with input/output assignments.","","","Corresponds to an individual Calyx file.","","","","A constant.","","","","","Represents parallel composition of control statements.","Statement that refers to a port on a subcomponent. This is …","Accessing a particular port on a component.","Prototype of the cell definition","Static Repeat (essentially a bounded while loop w/o a …","Represents sequential composition of control statements.","","Guards expr
using the optional guard condition guard
.","The AST for StaticGuardExprs","Static if statement.","","Invoke component with input/output assignments.","Represents parallel composition of static control …","Static Repeat (essentially a bounded while loop w/o a …","Represents sequential composition of static control …","Data for the ->
structure statement.","Refers to the port named port
on the component currently …","Standard imperative while statement","Data for the ->
structure statement.","Attributes attached to this component","Attributes attached to this cell definition","","","Attributes for this assignment","Attributes for this assignment","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","List of instantiated sub-components","List of component definitions.","Construct a namespace from a file or the input stream. If …","Construct a namespace from a definition using a string.","List of continuous assignments","Single control statement for this component.","Guarded destinations of the wire.","Guarded destinations of the wire.","","","","Extern statements and any primitive declarations in them.","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a primitive cell instantiation.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","List of groups","","","Path to extern files.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","True iff this is a combinational component","","(Optional) latency of component, if it is static","","Optional opaque metadata","Name of the component.","Name of the primitive.","Name of the cell.","","","","","Parameter binding for primitives","Name of the prototype this cell was built from.","Whether this cell is external","Defines input and output ports along with their attributes.","","Source of the wire.","Source of the wire.","List of StaticGroups","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Attributes","Control for the loop body.","Control for the true branch.","Control for the true branch.","Combinational group that may execute with this invoke.","Combinational group that may execute with this invoke.","Group to be enabled","Name of the component to be invoked.","Name of the component to be invoked.","Modules that need to be enabled to send signal on port
.","Modules that need to be enabled to send signal on port
.","Control for the true branch.","Control for the true branch.","Input assignments","Input assignments","(optional) latency. Latency can be inferred if not given.","Optional latency for the seq","Optional latency for the par","Optional latency; should be the longer of the two branches","Control for the true branch.","Control for the true branch.","Output assignments","Output assignments","Port that connects the conditional check.","Port that connects the conditional check.","Port that connects the conditional check.","External cells that may execute with this invoke.","External cells that may execute with this invoke.","List of Control
statements to run in sequence.","List of Control
statements to run in sequence.","List of Control
statements to run in sequence. If not all …","List of Control
statements to run in sequence. If not all …","Control for the true branch.","Control for the true branch.","","","","","","","","","","","","","","","","","","","","","","","","End-of-input","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Parse a Calyx program into an AST representation.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,10,11,0,9,7,9,14,7,10,0,7,0,9,10,10,4,7,7,7,0,9,7,4,15,15,11,0,9,10,0,10,0,7,7,11,0,7,15,14,0,9,0,0,9,7,9,7,10,10,7,7,7,9,7,11,0,0,9,1,1,5,7,9,10,0,3,13,3,7,9,10,11,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,7,9,10,11,5,3,13,14,15,18,18,18,18,5,5,18,5,1,18,13,7,9,10,11,5,14,15,7,7,9,9,10,10,11,11,5,5,15,15,4,1,3,1,7,7,9,9,10,11,11,5,3,13,14,14,15,4,1,7,9,10,11,11,11,11,5,3,13,14,14,14,15,4,1,18,18,7,7,9,11,5,59,7,9,10,11,15,59,1,5,7,9,10,11,15,4,5,7,9,10,11,5,3,13,14,15,4,1,18,3,5,4,3,18,1,1,18,18,3,13,3,13,18,3,0,1,1,5,3,13,15,4,3,1,7,9,10,11,5,3,13,14,15,7,9,11,14,5,7,7,9,9,10,11,5,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,4,1,18,7,9,10,11,5,3,13,14,15,4,1,18,13,60,61,62,63,64,65,64,65,64,66,67,41,42,0,41,42,38,0,0,37,0,41,42,0,0,38,35,35,43,43,0,43,0,0,0,38,37,35,35,43,43,0,43,41,42,40,0,38,41,42,35,0,40,0,35,35,0,0,0,35,42,35,35,35,35,0,37,35,0,36,47,48,49,50,51,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,36,31,31,31,36,36,50,51,35,44,45,31,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,47,48,49,50,51,35,35,36,44,45,31,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,36,48,36,49,31,36,46,47,48,49,36,39,46,47,47,36,39,50,51,36,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,35,39,39,48,49,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,73,74,82,76,77,75,76,77,72,73,72,81,76,77,77,79,80,81,74,82,76,77,72,73,81,76,77,70,71,79,80,72,81,83,84,85,86,87,83,84,88,89,89,88,90,91,92,93,94,95,96,91,92,0,53,0,53,54,53,54,0,53,53,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,97,54,53,97,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,53,54,54,53,54,53,54,53,54,53,54,53,54,53,54,53,97,54,53,54,53,54,53,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,53,54,53,54,53,54,53,53,54,53,54,53,53,54,53,54,53,97,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,53,54,53,54,53,54,97,97,97,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,97,54,53,97,54,53,97,54,53,54,53,54],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,2,3]],[[1,3],4],[[5,6],5],[7,8],[9,8],[10,8],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[7,7],[9,9],[10,10],[11,11],[5,5],[3,3],[[[13,[12]]],[[13,[12]]]],[14,14],[15,15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[16,17],[[19,[18]]]],[[16,17],[[19,[18]]]],[[[20,[2]],17],[[19,[18]]]],[[5,5,20]],[5,6],0,[[],5],[[],1],[[],18],0,[[7,7],21],[[9,9],21],[[10,10],21],[[11,11],21],[[5,5],21],[[14,14],21],[[15,15],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[2,[23,[22,3]]],4],[1,[[20,[2]]]],[3,24],[1,[[16,[3]]]],[[7,25],26],[[7,25],26],[[9,25],26],[[9,25],26],[[10,25],26],[[11,25],26],[[11,25],26],[[5,25],26],[[3,25],26],[[[13,[27]],25],26],[[14,25],26],[[14,25],26],[[15,25],26],[[4,25],26],[[1,25],26],[[]],[[]],[[]],[10,11],[[]],[9,11],[7,11],[[]],[[]],[[]],[28,14],[[]],[22,14],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[29,[[16,[7]]]],[8,[[30,[7]]]],[8,[[30,[9]]]],[8,[[19,[11]]]],[5,[[16,[28]]]],[[],5],[[],28],[[],28],[[],28],[[],28],[[],28],[[],5],[1,3],[5,21],[7],[9],[10],[11],[15],[3,4],[[5,28]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[5,21],[4,21],0,0,[[1,2]],[[1,22]],[[18,31,21,17,21,17],[[19,[20]]]],0,[3,22],[13,22],0,[[[32,[22]],15,5],13],0,0,0,[1,20],[1,24],[5],[3,19],[[[13,[14]],23],[[19,[[13,[28]]]]]],[15,15],[4],0,[1,24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],33],[[],33],[[],33],[[],33],[[5,8],33],[[],30],[8,[[30,[7]]]],[[],30],[8,[[30,[9]]]],[[],30],[[],30],[[],30],[20,[[19,[5]]]],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[16,[[19,[31]]]],[8,[[19,[31]]]],0,0,0,0,[[],35],0,0,0,[[31,25],26],[[36,25],26],[[37,25],26],[[38,25],26],[[39,25],26],[[40,25],26],[[41,25],26],[[42,25],26],[[43,25],26],[[44,25],26],[[45,25],26],[[46,25],26],[[47,25],26],[[48,25],26],[[49,25],26],[[50,25],26],[[51,25],26],[[35,25],26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[22,22,[20,[28]],5,21],47],[[]],[[]],[[]],[[]],[[]],[35,5],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[[21,[16,[52]],[20,[[13,[28]]]]],36],0,0,0,0,0,0,0,0,0,[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[53,53],[54,54],[[]],[[]],[[53,53],55],[[54,54],55],0,0,0,0,0,0,0,0,0,0,[[],55],[[],55],0,0,0,0,0,0,0,0,0,0,0,0,[[53,53],21],[[54,54],21],[[],21],[[],21],[[],21],[[],21],0,0,0,0,0,0,0,0,0,0,[[53,25],26],[[54,25],26],[[]],[[]],[[]],[[],28],[[],28],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[53],[54],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[56,[[19,[31]]]],[[53,8],[[30,[[57,[53]],[58,[53]]]]]],[17,[[19,[31]]]],[[53,53],[[16,[55]]]],[[54,54],[[16,[55]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],34],[[],34],[[],34],0,0,0,0],"p":[[3,"LibrarySignatures"],[3,"PathBuf"],[3,"Primitive"],[4,"PrimitiveInfo"],[3,"Attributes"],[3,"GPosIdx"],[4,"BoolAttr"],[15,"str"],[4,"NumAttr"],[4,"InternalAttr"],[4,"Attribute"],[8,"Clone"],[3,"PortDef"],[4,"Width"],[4,"Direction"],[4,"Option"],[3,"Path"],[3,"Workspace"],[6,"CalyxResult"],[3,"Vec"],[15,"bool"],[3,"Id"],[3,"LinkedHashMap"],[8,"Iterator"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[15,"u64"],[15,"u8"],[4,"Result"],[3,"NamespaceDef"],[8,"Into"],[3,"String"],[3,"TypeId"],[4,"Control"],[3,"ComponentDef"],[4,"Port"],[4,"NumType"],[3,"BitNum"],[4,"Atom"],[4,"GuardExpr"],[4,"StaticGuardExpr"],[4,"GuardComp"],[3,"Guard"],[3,"StaticGuard"],[3,"Proto"],[3,"Cell"],[3,"Group"],[3,"StaticGroup"],[3,"Wire"],[3,"StaticWire"],[3,"NonZeroU64"],[4,"Rule"],[4,"AliasedRule"],[4,"Ordering"],[8,"Read"],[3,"Pairs"],[3,"Error"],[8,"GetAttributes"],[13,"Bool"],[13,"Num"],[13,"Internal"],[13,"Unknown"],[13,"Extern"],[13,"Inline"],[13,"Const"],[13,"Param"],[13,"Port"],[13,"Num"],[13,"Seq"],[13,"Par"],[13,"If"],[13,"While"],[13,"Repeat"],[13,"Enable"],[13,"Invoke"],[13,"StaticInvoke"],[13,"Empty"],[13,"StaticSeq"],[13,"StaticPar"],[13,"StaticIf"],[13,"StaticRepeat"],[13,"And"],[13,"Or"],[13,"Not"],[13,"CompOp"],[13,"Atom"],[13,"Comp"],[13,"Hole"],[13,"This"],[13,"And"],[13,"Or"],[13,"Not"],[13,"CompOp"],[13,"Atom"],[13,"StaticInfo"],[3,"CalyxParser"]]},\
+"calyx_ir":{"doc":"Internal representation for the Calyx compiler.","t":[13,13,3,4,3,13,3,6,13,4,13,3,3,3,13,4,13,3,3,13,13,13,3,13,13,13,3,4,13,13,17,13,4,13,13,13,13,3,13,13,3,13,13,13,13,13,13,4,13,4,13,8,8,13,3,13,13,4,3,3,3,3,3,13,13,13,13,13,13,13,13,4,13,3,13,13,13,13,3,13,13,13,13,13,13,13,3,13,4,13,13,13,13,3,13,13,13,3,13,13,4,3,3,4,13,3,13,4,3,13,13,17,6,13,3,13,13,13,2,13,13,3,13,13,13,13,13,13,13,4,3,3,13,3,3,3,3,3,3,13,13,13,13,13,13,3,3,13,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,14,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,12,12,12,12,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,12,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,14,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,11,11,12,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,11,11,11,12,12,11,11,11,11,11,12,12,12,12,11,11,12,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,0,5,11,11,11,0,11,11,11,11,11,12,12,11,12,11,11,11,12,11,11,11,11,11,11,12,12,12,12,14,11,12,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,5,6,6,3,11,11,12,12,11,11,11,11,12,11,12,11,11,11,11,11,11,11,12,11,11,11,13,13,8,3,4,13,11,11,11,11,11,11,12,12,12,5,5,11,11,10,12,11,11,12,11,12,11,11,11,11,11,11],"n":["And","And","Assignment","Attribute","Attributes","BEGIN_ID","BackendConf","Binding","Bool","BoolAttr","Bound","Builder","Canonical","Cell","Cell","CellType","Clk","Cloner","CombGroup","CompOp","CompOp","Compactable","Component","Component","Const","Constant","Context","Control","Control","DEAD","DEPRECATED_ATTRIBUTES","Data","Direction","Done","Dynamic","END","END_ID","Empty","Empty","Empty","Enable","Enable","Enable","Eq","Extern","External","Fast","FlatGuard","Generated","GenericControl","Geq","GetAttributes","GetName","Go","Group","Group","Gt","Guard","GuardPool","GuardRef","Id","IdList","If","If","If","Info","Inline","Inline","Inout","Input","Internal","InternalAttr","Interval","Invoke","Invoke","Invoke","LOOP","Leq","LibrarySignatures","Lt","NODE_ID","Neq","NewFSM","NoInterface","Not","Not","Nothing","Num","NumAttr","OneHot","Or","Or","Output","Par","Par","Par","Param","Port","Port","Port","PortComp","PortDef","PortIterator","PortParent","Pos","Primitive","Primitive","PrimitiveInfo","Printer","Promotable","Promoted","RESERVED_NAMES","RRC","ReadTogether","Repeat","Repeat","Repeat","Reset","Rewriter","START","ST_ID","Seq","Seq","Seq","Share","Stable","StateShare","Static","Static","StaticControl","StaticEnable","StaticGroup","StaticGroup","StaticIf","StaticInvoke","StaticPar","StaticRepeat","StaticSeq","StaticTiming","Sync","ThisComponent","TopLevel","True","True","Unknown","WRC","While","While","Width","WriteTogether","add","add_attribute","add_comb_group","add_component","add_constant","add_continuous_assignments","add_extern_primitive","add_group","add_inline_primitive","add_interval","add_primitive","add_span","add_static_group","all_ports","and","append","as_ref","as_ref","as_ref","as_ref","assignment_to_str","assignments","assignments","assignments","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","attributes","bc","bitand","bitand_assign","bitor","bitor_assign","body","body","body","body","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_assignment","build_assignments","canonical","cell","cell_parent","cells","check_for_each_info","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","comb_group","comb_group","comb_groups","comp","comp","compare","compare","compare","component","components","cond","cond","constant_name","continuous_assignments","control","control","control_to_str","copy_from","copy_span","copy_span","default","default","default","default","default","default","default","default","default","default","direction","direction","display","done_cond","done_cond_mut","drain","dst","emit_primitive_extmodules","empty","empty","empty","empty","enable","enable","enable_verification","entrypoint","entrypoint","entrypoint_mut","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","ext","extern_paths","extra_opts","fbranch","fbranch","find","find","find","find","find_all_with_attr","find_all_with_attr","find_cell","find_comb_group","find_group","find_guaranteed_cell","find_primitive","find_static_group","find_unique_with_attr","flat_assign","flatten","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_each","for_each_assignment","for_each_info","for_each_interval","for_each_port","for_each_static_assignment","format_at_attributes","format_attributes","format_metadata","format_port_def","format_ports","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ast","from_repr","from_str","from_str","from_str","ge","generate_name","get","get","get","get","get","get_attribute","get_attribute","get_attribute","get_attribute","get_attribute","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_attributes","get_groups","get_groups_mut","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_interval","get_latency","get_latency","get_latency","get_mem_info","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_mut_attributes","get_name","get_parameter","get_parent_name","get_primitive","get_signature","get_static_groups","get_static_groups_mut","get_unique_with_attr","group","group","groups","gt","guard","guard","guard_str","has","has_attribute","has_attribute","hash","hash","hash","hash","hash","hash","hash","hash","hash","holes","holes","id","if_","if_","index","inline","inputs","inputs","insert","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","invoke","invoke","is_comb","is_comb","is_comb_cell","is_component","is_constant","is_empty","is_empty","is_empty","is_false","is_hole","is_not_done","is_primitive","is_reference","is_source","is_static","is_static","is_structural","is_this","is_true","is_true","is_true","iter","iter","iter_assignments","iter_mut","iter_static_assignments","latency","latency","latency","latency","latency","latency","latency","latency","le","len","lib","lt","mark_extern_source","mark_inline_source","metadata","name","name","name","name","name","name","name","name","name","name","name","name","name","name","neq","new","new","new","new","new","new","new","new","new","new","new","new","next","not","not_generated","num_repeats","num_repeats","op_str","or","outputs","outputs","par","par","par","params","parent","parent_is_comb","partial_cmp","partial_cmp","partial_cmp","port","port","port","port","port","port_to_str","ports","ports","prim_infos","prim_inlines","prototype","ref_cells","ref_cells","remove","remove","remove_attribute","remove_attribute","repeat","repeat","repeat","resolve","resolve","retain","reverse","rewriter","rrc","seq","seq","seq","serializers","set_groups","set_interval","set_reference","set_source","set_static_groups","signature","signature","signatures","src","static_control","static_enable","static_enable","static_groups","static_if","static_if","static_invoke","static_par","static_repeat","static_seq","stmts","stmts","stmts","stmts","structure","surface_name","synthesis_mode","take_control","take_static_control","take_static_control","tbranch","tbranch","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string_with","try_add_primitive","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_equivalent","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_name","update","upgrade","utils","validate","while_","while_","width","width","write_assignment","write_cell","write_comb_group","write_component","write_context","write_control","write_externs","write_group","write_primitive","write_static_control","write_static_group","0","0","0","0","is_comb","latency","name","name","param_binding","val","width","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","1","1","2","0","0","0","0","0","0","0","0","1","1","1","2","0","0","0","is_source","is_source","path","primitive","primitives","0","0","0","0","0","0","0","value","value","ast_to_ir","PortRewriteMap","RewriteMap","Rewriter","borrow","borrow_mut","cell_map","comb_group_map","default","from","get","get_cell_rewrite","group_map","into","port_map","rewrite","rewrite_assign","rewrite_control","rewrite_guard","rewrite_invoke","rewrite_static_control","rewrite_static_invoke","static_group_map","try_from","try_into","type_id","Combinational","Dynamic","GetMemInfo","MemInfo","MemoryType","Sequential","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","data_width","dimension_sizes","dimensions","external_and_ref_memories_cells","external_and_ref_memories_names","from","from","get_mem_info","idx_sizes","into","into","memory_type","to_owned","total_size","try_from","try_from","try_into","try_into","type_id","type_id"],"q":["calyx_ir","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_ir::Attribute","","","","calyx_ir::CellType","","","","","","","calyx_ir::Control","","","","","","","","","calyx_ir::FlatGuard","","","","","","","","","calyx_ir::GenericControl","","calyx_ir::Guard","","","","","","","","","","calyx_ir::PortParent","","","calyx_ir::PrimitiveInfo","","","","","calyx_ir::StaticControl","","","","","","","calyx_ir::Width","","calyx_ir::from_ast","calyx_ir::rewriter","","","","","","","","","","","","","","","","","","","","","","","","","calyx_ir::utils","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","Represents c1 && c2
.","Represents a guarded assignment in the program","Defines the known attributes that can be attached to IR …","Attributes associated with a specific IR structure.","","Configuration information for the backends.","Alias for bindings","","Attributes that are only allowed to take boolean values.","The bound of a while loop","IR builder. Uses internal references to the component to …","Canonical name of a Port","Represents an instantiated cell.","","The type for a Cell","Clk for the signal","Implement cloning operations on control statements. We …","A combinational group. A combinational group does not have …","","Comparison operator.","suggest that the current static seq block is compactable","In memory representation of a Component.","Cell constructed using a Calyx component","The width is a constant.","Cell representing a Constant","The IR Context that represents an entire Calyx program …","Control AST nodes.","This is a control path instance","","Attributes that have been deprecated.","This is a data path instance","Direction of a port on a cell.","","","","","Data for the empty
control statement.","Control statement that does nothing.","","Data for the enable
control statement.","Runs the control for a list of subcomponents.","","p1 == p2","An extern block that defines multiple primitives","Cell should be externalized","https://github.com/calyxir/calyx/issues/1828","","IR Node was generated by the compiler","Either holds a reference to a StaticControl, reference to …","p1 >= p2","Structs that can return an Attributes
instance.","A trait representing something in the IR that has a name.","","A Group of assignments that perform a logical action.","","p1 > p2","An assignment guard which has pointers to the various …","A GuardPool
is an “arena”-style storage area for …","","Represents an identifier in a Calyx program","A wrapper struct exposing an ordered collection of named …","Data for the if
control statement.","Standard imperative if statement","","Other types of information.","Inline this subcomponent","An inline primitive","Input-Output “port”. Should only be used by holes.","Input port.","","Internal attributes that cannot be parsed back from the IL.","Placed on @go ports of components to denote the II of a …","Data for an invoke
control statement.","Invoke a sub-component with the given port assignments","","","p1 <= p2","A representation of all the primitive definitions found …","p1 < p2","","p1 != p2","Generate a new FSM for this control node","The component doesn’t have a standard interface","","Represents !c1
","","","Attributes that can take numeric values","Generate a one-hot FSM for this control node. (Not …","","Represents c1 || c2
.","Output port.","Data for the par
control statement.","Represents parallel composition of control statements.","","The width is a parameter.","Represents a port on a cell.","","Uses the value on a port as the condition. Same as …","Comparison operations that can be performed between ports …","Definition of a port parameterized by a width type. Ports …","Wraps generic iterators over ports to allow functions to …","Ports can come from Cells or Groups","Source location position for this node","Representation of a external primitive definition.","Cell constructed using a primitive definition","Tracks the information for Primitives defined in the …","Printer for the IR.","Can promote the group, control, or @go port of the …","denotes a static component or control promoted from dynamic","Names that are reserved in Calyx and Verilog.","Alias for a RefCell contained in an Rc reference.","","Data for the Dynamic Repeat
control statement. Repeats the …","Standard repeat control statement","","Reset signal for the component","","","","Data for the seq
control statement.","Represents sequential composition of control statements.","","Is this component shareable","Is the port connected to a state element","Is the component state shareable","Static Control","","Control AST nodes.","Data for the enable
control for a static group.","A Group of assignments that perform a logical action.","","Data for the static if
control statement.","Data for a StaticInvoke
control statement","","Data for the StaticRepeat
control statement. Essentially a …","Data for the static seq
control statement.","","Synchronize this thread with others in the current par …","This cell represents the current component","This is the top-level component","","The constant true","Unknown attribute. Should not appear in the Calyx codebase.","A Wrapper for a weak RefCell pointer. Used by parent …","Data for the while
control statement.","Standard imperative while statement","Represents an abstract width of a primitive signature.","","Add a new element to the colleciton","Add a new attribute to the group.","Construct a combinational group","Add a component instance to this component using its name …","Return reference for a constant cell associated with the …","","Add a new, non-inline primitive to the context. Panics if …","Construct a new group and add it to the Component. The …","Add a new inline primitive to the context. Panics if a …","updates self -> self & interval","Consturcts a primitive cell of type primitive
. The name of …","Set the span information","Construct a new static group and add it to the Component. …","Returns all the ports used by this guard.","","Add all elements to the collection","","","","","Convinience method to get string representation of …","The assignments used in this group","The assignments used in this group","The assignments used in this group","Attributes for this component","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes","Attributes","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","Attributes attached to this control statement.","","Attributes associated with this port.","Attributes for this group.","Attributes for this assignment.","Attributes for this group.","Attributes for this group.","Attributes for this group.","Key-value attributes for this primitive.","Attributes attached to this port definition","Configuration flags for backends.","","","","","Control for the loop body.","Body to repeat","Body to repeat","body of the string, if it is an inlined primitive","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct an assignment.","Build guarded assignment statements and return a vector …","Get the canonical representation for this Port.","","Returns the parent of the Port which must be Cell. Throws …","The cells instantiated for this component.","runs f(info) on each info in guard
. f should return Result<…","Removes all elements from the collection","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Optional combinational group that is active when the …","Optional combinational group that is active when the …","Groups of assignment wires.","Cell that is being invoked.","Cell that is being invoked.","","","","Component for which this builder is constructing.","The components for this program.","Optional combinational group attached using with
.","Group that makes the signal on the conditional port valid.","Return the canonical name for the cell generated to …","The set of “continuous assignments”, i.e., assignments …","","The control program for this component.","Convinience method to get string representation of …","self
copys (i.e., assigns the same values) the attributes …","","","","","","","","","","","","","Direction of the port","The direction of the port. Only allowed to be …","","Returns a reference to the assignment in the group that …","Returns a mutable reference to the assignment in the group …","Removes all elements from the collection and returns an …","The destination for the assignment.","[FIRRTL backend only] Emit extmodule declarations for …","","Returns an empty iterator over ports.","Convience constructor for empty.","Convience constructor for empty.","","Convience constructor for enable.","Enables verification checks.","Return the entrypoint component.","Entrypoint for the program","Return the entrypoint component with mutable access.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return the paths for the extern defining files along with …","Extra options provided to the command line. Interpreted by …","Control for the false branch.","Control for the false branch.","Returns the element indicated by the name, if present, …","Get a reference to the named port if it exists.","Get a reference to the named hole if it exists.","Get a reference to the named hole if it exists.","Return all ports that have the attribute attr
.","Return all ports that have the attribute attr
.","Return a reference to the cell with name
if present.","Return a refernece to a combination group with name
if …","Return a reference to the group with name
if present.","Return a reference to the cell with name
if present.","Return the Primitive associated with the given name if …","Return a reference to the group with name
if present.","Return the unique port with the given attribute. If …","Use flat (ANF) assignments for guards instead of deep …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Mutates a guard by calling f
on every leaf in the guard …","Apply function on all non-static assignments contained …","runs f(info) on each Guard::Info in guard
. if f(info)
= …","Apply function f
to each port contained within the …","Apply function f
to each port contained within the …","Apply function to all assignments within static groups.","Format attributes of the form @static(1)
. Returns the …","Format attributes of the form <"static"=1>
. Returns the …","Formats the top-level metadata if present","","Formats port definitions in signatures","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Turns a normal guard into a static guard","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Turns a normal assignment into a static assignment","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Module to transform AST programs into IR.","Try to create Self from the raw representation","","","","","Construct a non-conflicting name using the Component’s …","","Get a reference to the named port and throw an error if it …","Get a reference to the named hole or panic.","Get a reference to the named hole or panic.","Get the value associated with an attribute key","Returns the value of an attribute if present","Returns the value of an attribute if present","Returns the value of an attribute if present","Returns the value of an attribute if present","Return the value associated with this attribute key.","Returns an Attributes
instance","","","","","","","","","","","","","","","","","","The attributes of this group.","The attributes of this group.","The attributes of this group.","gets the component’s groups","gets the component’s groups","","","","","","","","","","returns the (u64, u64) interval for struct
","","Returns the value of an attribute if present","","","Returns a mutable Attributes
instance","","","","","","","","","","","","","","","","","","Return the name associated with this CellType if present","Get parameter binding from the prototype used to build …","Gets name of parent object.","Return the Primitive associated to this Id.","","gets the component’s static groups","gets the component’s groups","Get the unique port with the given attribute. Panic if no …","List of components to run.","List of components to run.","Groups of assignment wires.","","The guard for this assignment.","Parse guard expression into ir::Guard
.","Generate a String-based representation for a guard.","Check if an attribute key has been set","Returns true if the node has a specific attribute","Returns true if the node has a specific attribute","","","","","","","","","","Holes for this group","Holes for this group","","","Convience constructor for if","Get the underlying number for this reference. Clients …","","Mapping from name of input ports in comp
to the port …","Mapping from name of input ports in comp
to the port …","Add a new attribute","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","Convience constructor for invoke.","True iff component is combinational","True iff this is a combinational primitive","","Returns true iff this cell is an instance of a …","Checks if this port is a constant of value: val
.","Returns true if there are no elements in the list.","","Returns true if there are no attributes","Checks if the guard is always false. Returning false does …","Checks if this port is a hole","returns true if the self is !cell_name, false otherwise.","Returns true if this is an instance of a primitive. If the …","Get a boolean describing whether the cell is external.","Check if this primitive is a source primitive","Check whether this is a static component. A static …","","Check whether this component is purely structural, i.e. …","Returns true iff this cell is the signature of the current …","Check whether this refers to a FlatGuard::True
. (We can do …","","Returns true definitely Guard::True
. Returning false does …","Iterate over all the guards in the pool.","Returns an iterator over immutable references","Iterate over all non-static assignments contained within …","Returns an iterator over mutable references. Likely a …","Iterate over all static assignments contained within the …","(Optional) latency of component, if it is static","Latency, in cycles","Latency, in cycles","latency field currrently, if two if branches take …","latency = num_repeats * (body latency)","StaticLatency","Latency of static group","(Optional) latency; for static primitives","","","Library definitions imported by the program.","","Marks an import
ed extern block as a part of the source. …","Mark an inlined primitive as a part of the source. This is …","An optional opaque metadata string which is used by Cider","Return a reference to the object’s name","Grants immutable access to the name of this cell.","","The name of this group.","","The name of this group.","","","The name of this group.","","Return the name of the port definition","Name of the component.","Name of the port","Name of this primitive.","","Instantiate a new builder using for a component.","","","Construct a new PortIterator from an iterator over ports.","Construct a new Component with the given name
and ports.","creates a new StaticTiming
struct","","Construct a cell","Build a new unguarded assignment","","","","","","Disable the generated flag on the builder","Number of times to repeat the body","Number of times to repeat the body","Return the string corresponding to the guard operation.","","Mapping from name of output ports in comp
to the port …","Mapping from name of output ports in comp
to the port …","","Convience constructor for par.","Convience constructor for static enable.","Paramters for this primitive.","Weak pointer to this port’s parent","Checks if parent is combinational component","","","","","Port that connects the conditional check.","Port that connects the conditional check.","Port that connects the conditional check.","","Get the port access expression.","Returns a reference to all super::Port attached to this …","Ports on this cell","Returns all the underlying primitive information. If you …","Return the underyling inlined primitives and whether they …","Underlying type for this cell","Mapping from name of external cell in ‘comp’ to the …","Mapping from name of external cell in ‘comp’ to the …","","Remove attribute with the name key
","","","","Convience constructor for dynamic repeat","Convience constructor for static if","Retuns the bindings for all the paramters, the input ports …","Given a map from names of parameters to their values, …","Keep only the elements in the collection which satisfy the …","Return the direction opposite to the current direction","Modules to rewrite the IR","Construct a new RRC.","","Convience constructor for seq.","Convience constructor for static enable.","Serializer methods for IR nodes.","gets the component’s groups","overwrites the current interval
to be new_interval
","Set the external field","Mark this primitive as a source primitive","gets the component’s groups","The input/output signature of this component.","The input/output signature for this primitive.","Return an iterator over all defined primitives.","The source for the assignment.","","","Convience constructor for enable.","Groups of assignment wires","","Convience constructor for static if","","","","","List of Control
statements to run in sequence.","List of StaticControl
statements to run in sequence.","List of Control
statements to run in parallel.","List of StaticControl
statements to run in parallel.","Add primitives and constants to the component and let
-bind …","Generate string representation of CellType appropriate for …","Enables synthesis mode.","Replaces &mut self with an empty control statement, and …","Replaces &mut self with an empty control statement, and …","Replaces &mut self with an empty static control statement, …","Control for the true branch.","Control for the true branch.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Result variant of [ir::Builder::add_primitive()].","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if the widths, name, direction, and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the name of the component that is this cells type.","Update the guard in place. Replaces this guard with …","Convinience method to upgrade and extract the underlying …","Helpers used to examine calyx programs. Used in Xilinx and …","Enable the validation flag on a builder.","","Convience constructor for while","Width of the port","The width of the port. .","Format and write an assignment.","Format and write a cell.","Format and write a combinational group.","Formats and writes the Component to the formatter.","Prints out the program context. If skip_primitives
is …","Format and write a control program","Formats and writes extern statements.","Format and write a group.","","Format and write a static control program","Format and write a static group.","","","","","True iff this is a combinational primitive","(Optional) latency of the primitive","Name of the primitive cell used to instantiate this cell.","Name of the component used to instantiate this cell.","Bindings for the parameters. Uses Vec to retain the input …","Value of this constant","Width of this constant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct an IR representation using a parsed AST and …","Map to rewrite port uses. Maps the canonical name of an …","A rewrite map from ir::Id to [T].","A structure to track rewrite maps for ports. Stores both …","","","Mapping from names of cells to cell instance.","Mapping from names of combinational groups to …","","Returns the argument unchanged.","Get any port rewrite defined for the given port.","Return the rewrite for a cell","Mapping from names of groups to group instance.","Calls U::from(self)
.","Mapping from canonical names of ports to port instances","Rewrite the component using the given maps","Rewrite an assignment","Given a control program, rewrite all uses of cells, …","Rewrite assignments in a guard","Rewrite a invoke
node using a RewriteMapir::Cell and a …","Given a control program, rewrite all uses of cells, …","Rewrite a static invoke
node using a RewriteMapir::Cell …","Mapping from names of static groups to static group …","","","","","","","Parameters for std memories","","","","","","","","","","","","Gets all memory cells in top level marked @external
or ref
.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","",""],"i":[37,20,0,0,0,30,0,0,5,0,29,0,0,0,40,0,28,0,0,37,20,29,0,41,42,41,0,0,28,30,0,28,0,29,77,30,30,0,45,51,0,45,51,38,18,28,28,0,28,0,38,0,0,29,0,40,38,0,0,0,0,0,0,45,51,20,28,18,43,43,5,0,29,0,45,51,30,38,0,38,30,38,28,28,37,20,0,5,0,28,37,20,43,0,45,51,42,0,37,20,0,0,0,0,29,0,41,0,0,29,28,0,0,29,0,45,51,28,0,30,30,0,45,51,28,28,28,45,77,0,0,0,40,0,0,0,0,0,0,29,41,28,37,20,5,0,0,45,0,29,2,4,8,8,8,8,14,8,14,20,8,21,8,20,20,2,26,28,29,30,90,17,23,9,54,65,66,67,68,69,70,71,72,73,52,74,75,76,49,24,4,13,17,23,9,16,10,53,20,20,20,20,71,72,73,16,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,8,0,24,32,24,54,20,2,26,35,36,37,12,38,20,19,40,24,32,41,4,13,28,29,30,5,21,16,10,42,43,26,35,36,37,12,38,20,19,40,24,32,41,4,13,28,29,30,5,21,16,10,42,43,26,20,32,75,76,54,75,76,26,20,32,8,53,69,71,4,54,91,54,90,21,45,21,26,47,2,48,49,12,20,19,21,14,24,10,47,17,17,2,13,48,91,50,45,51,91,45,48,53,53,53,26,26,26,26,26,26,12,38,20,20,19,24,32,41,28,29,30,5,21,42,43,26,26,12,12,38,38,20,20,19,19,24,24,32,32,41,41,28,28,29,29,30,30,5,5,21,21,43,43,18,14,53,69,70,2,4,17,23,4,16,54,54,54,54,14,54,4,48,47,26,26,35,54,2,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,32,41,4,13,17,23,9,28,28,29,29,30,5,5,21,16,10,42,42,43,18,14,20,54,20,13,13,54,90,90,90,90,90,8,53,91,26,26,26,47,90,50,35,35,54,2,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,45,45,45,51,51,51,77,77,77,36,37,12,38,20,20,20,19,40,24,32,41,4,13,13,17,23,9,28,29,30,5,5,5,5,21,16,10,42,42,42,43,18,14,0,28,28,29,5,20,54,47,4,17,23,21,74,45,51,24,4,92,65,66,67,68,69,70,71,72,73,52,74,75,76,45,51,24,4,17,23,9,54,54,26,20,32,41,28,29,30,5,43,19,45,51,23,54,92,65,66,67,68,69,70,71,72,73,52,74,75,76,45,51,24,4,41,4,24,14,4,54,54,4,52,74,54,20,13,0,90,21,45,24,26,20,32,41,28,29,30,5,43,17,23,26,91,45,36,18,75,76,21,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,50,2,91,45,54,16,4,4,24,2,45,21,20,24,20,4,4,18,54,45,54,4,36,37,20,47,2,54,2,54,54,66,68,70,73,76,23,16,20,2,53,20,14,14,53,1,4,4,17,17,23,23,9,9,16,10,54,24,16,20,8,26,47,50,54,19,32,4,13,17,23,10,50,20,8,72,73,20,20,75,76,91,45,51,16,24,24,26,20,32,20,69,70,71,32,90,4,4,14,14,4,75,76,2,21,17,23,91,45,51,16,10,2,43,0,0,91,45,51,0,54,19,4,18,54,54,16,14,13,91,91,45,54,91,51,91,91,91,91,65,66,67,68,0,41,48,45,45,51,69,70,26,35,36,37,12,38,20,19,40,24,32,41,4,13,28,29,30,5,21,16,10,42,43,26,12,19,32,28,29,5,42,21,8,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,28,29,29,30,5,21,21,16,10,42,43,18,14,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,24,8,53,91,26,47,90,50,35,54,2,48,65,66,67,68,69,70,71,72,73,52,74,75,76,49,45,51,77,36,37,12,38,20,19,40,24,32,41,4,13,17,23,9,28,29,30,5,21,16,10,42,43,18,14,4,20,35,0,8,91,45,24,10,90,90,90,90,90,90,90,90,90,90,90,93,94,95,96,97,97,97,98,97,99,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,109,110,112,112,114,115,116,117,118,119,120,121,116,117,119,119,122,123,124,125,126,125,126,125,127,128,129,130,131,132,133,134,135,0,0,0,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,89,89,0,0,0,89,79,89,79,89,89,89,79,79,79,0,0,79,89,136,79,79,89,79,89,79,79,89,79,89,79,89],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[2,[1]],[3,[1]]]],[[4,[6,[5]],7]],[8,[[3,[9]]]],[[8,[11,[[10,[7]]]]],[[3,[4]]]],[[8,7,7],[[3,[4]]]],[[8,[11,[[13,[12]]]]]],[[14,15,16]],[8,[[3,[17]]]],[[14,16],18],[[[20,[19]],19]],[8,[[3,[4]]]],[[21,22],21],[[8,7],[[3,[23]]]],[20,[[11,[[3,[24]]]]]],[[20,20],20],[[[2,[1]],25]],[26,27],[28,27],[29,27],[30,27],[13,31],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[20,20]],[[20,20]],[[20,20]],[[20,20]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[8,[3,[24]],[3,[24]],20],13],0,[24,32],0,[24,[[3,[4]]]],0,[20,[[34,[33]]]],[[[2,[1]]]],[26,26],[[[35,[1]]],[[35,[1]]]],[36,36],[37,37],[12,12],[38,38],[[[20,[39]]],[[20,[39]]]],[19,19],[40,40],[24,24],[32,32],[41,41],[4,4],[[[13,[39]]],[[13,[39]]]],[28,28],[29,29],[30,30],[5,5],[21,21],[16,16],[10,10],[42,42],[43,43],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[26,26],44],[[20,20],44],[[32,32],44],0,0,0,0,0,[[],44],[[],44],[[],44],0,0,0,0,[[7,7],26],0,[45,45],0,[45,31],[[21,21,[11,[46]]]],[45,22],[21,22],[[],26],[[],47],[[],[[2,[1]]]],[[],48],[[],49],[[],12],[[],20],[[],19],[[],21],[[],14],0,0,[[47,37],31],[17,13],[17,13],[[[2,[1]]],25],0,0,[49,49],[[],50],[[],45],[[],51],[52,52],[[[3,[17]]],45],0,[53,54],0,[53,54],[[26,55],56],[[26,31],56],[[26,26],56],[[26,27],56],[[26,26],56],[[26,27],56],[[12,12],56],[[38,38],56],[[20,20],20],[[20,20],56],[[19,19],56],[[24,24],56],[[32,32],56],[[41,41],56],[[28,28],56],[[29,29],56],[[30,30],56],[[5,5],56],[[21,21],56],[[42,42],56],[[43,43],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[],56],[[15,[58,[26,16,57]]],18],[14,[[11,[15,46]]]],0,0,0,[[[2,[1]]],[[59,[[3,[1]]]]]],[4,[[59,[[3,[24]]]]]],[17,[[59,[[3,[24]]]]]],[23,[[59,[[3,[24]]]]]],[4,25],[16,25],[54,[[59,[[3,[4]]]]]],[54,[[59,[[3,[9]]]]]],[54,[[59,[[3,[17]]]]]],[54,[[3,[4]]]],[14,[[59,[16]]]],[54,[[59,[[3,[23]]]]]],[4,[[60,[[59,[[3,[24]]]]]]]],0,[[47,20],36],[[26,61],[[34,[62]]]],[[26,61],[[34,[62]]]],[[[35,[63]],61],64],[[54,61],64],[[[2,[[0,[63,1]]]],61],64],[[65,61],64],[[66,61],64],[[67,61],64],[[68,61],64],[[69,61],64],[[70,61],64],[[71,61],64],[[72,61],64],[[73,61],64],[[52,61],64],[[74,61],64],[[75,61],64],[[76,61],64],[[49,61],64],[[45,61],64],[[51,61],64],[[77,61],64],[[36,61],64],[[37,61],64],[[12,61],64],[[38,61],64],[[[20,[63]],61],64],[[19,61],64],[[40,61],64],[[24,61],64],[[32,61],64],[[32,61],64],[[41,61],64],[[4,61],64],[[[13,[63]],61],64],[[17,61],64],[[23,61],64],[[9,61],64],[[28,61],[[34,[62]]]],[[28,61],[[34,[62]]]],[[29,61],[[34,[62]]]],[[29,61],[[34,[62]]]],[[30,61],[[34,[62]]]],[[5,61],[[34,[62]]]],[[5,61],[[34,[62]]]],[[21,61],[[34,[62]]]],[[16,61],[[34,[62]]]],[[10,61],[[34,[62]]]],[[42,61],[[34,[62]]]],[[42,61],[[34,[62]]]],[[43,61],[[34,[62]]]],[[18,61],[[34,[62]]]],[[14,61],[[34,[62]]]],[20],[54],[20],[13],[13],[54],[21,31],[21,31],[59,31],[[],31],[[],31],[[]],[[]],[[]],[27,26],[31,26],[[]],[[]],[[]],[[]],[3,[[35,[1]]]],[[]],[[]],[[],2],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[75,45],[51,45],[[]],[52,45],[[[3,[23]]],51],[[]],[74,51],[[]],[51,77],[45,77],[[]],[[]],[[]],[[]],[[]],[[[3,[24]]],20],[[[20,[12]]],[[20,[19]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[[13,[12]]],[[13,[19]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[28,5],[[]],[30,5],[29,5],[[]],[[]],[[]],[26,42],[7,42],[[]],[[]],[[]],[[]],0,[78,[[59,[28]]]],[27,[[34,[28]]]],[27,[[34,[29]]]],[27,[[34,[5,33]]]],[[20,20],20],[54,26],[[47,36],37],[4,[[3,[24]]]],[17,[[3,[24]]]],[23,[[3,[24]]]],[21,[[59,[7]]]],[[74,5],[[59,[7]]]],[45,[[59,[7]]]],[[51,5],[[59,[7]]]],[24,[[59,[7]]]],[[4,[6,[5]]],[[59,[7]]]],[[],21],[65,21],[66,21],[67,21],[68,21],[69,21],[70,21],[71,21],[72,21],[73,21],[52,21],[74,21],[75,21],[76,21],[45,21],[51,21],[24,21],[4,21],[17,[[59,[21]]]],[23,[[59,[21]]]],[9,[[59,[21]]]],[54,2],[54,2],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[[],7],[19],[45,[[59,[7]]]],[51,7],[23,7],[54,[[11,[79]]]],[[],21],[65,21],[66,21],[67,21],[68,21],[69,21],[70,21],[71,21],[72,21],[73,21],[52,21],[74,21],[75,21],[76,21],[45,21],[51,21],[24,21],[4,21],[41,[[59,[26]]]],[4,[[59,[7]]]],[24,26],[14,16],[4,[[11,[[10,[7]]]]]],[54,2],[54,2],[4,[[60,[[3,[24]]]]]],0,0,0,[[20,20],20],0,0,[20,31],[21,56],[45,56],[24,56],[26],[20],[32],[41],[28],[29],[30],[5],[43],0,0,0,[69,69],[[[3,[24]],[59,[[3,[9]]]],[80,[45]],[80,[45]]],45],[36,81],[16,18],0,0,[[21,7]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[2],[75,75],[[[3,[4]],11,11],45],0,0,[4,56],[4,56],[[24,7,7],56],[[[2,[1]]],56],[45,56],[21,56],[20,56],[24,56],[[20,26],56],[[4,59],56],[4,56],[18,56],[54,56],[45,56],[54,56],[4,56],[36,56],[37,56],[20,56],[47,25],[[[2,[1]]],[[0,[39,25]]]],[54],[[[2,[1]]],25],[54],0,0,0,0,0,0,0,0,[[20,20],20],[[[2,[1]]],82],0,[[20,20],20],[[14,15]],[[14,26]],0,[[],26],[4,26],[4,26],[17,26],[17,26],[23,26],[23,26],[9,26],[9,26],[16,26],[10,26],0,0,0,[[20,20],20],[[54,14],8],[[],26],[[],47],[[],50],[[[11,[[10,[7]]]],56,56,[59,[83]]],54],[[],19],[[26,26],32],[[26,41],4],[[[3,[24]],[3,[24]]],13],[26,17],[[26,7],23],[[[6,[26]],43,21],10],[50,59],[20,20],[8,8],0,0,[20,31],[[20,20],20],0,0,[67,67],[[[11,[45]]],45],[[[11,[51]],7],51],0,0,[24,56],[[26,26],[[59,[44]]]],[[20,20],[[59,[44]]]],[[32,32],[[59,[44]]]],[[[3,[24]]],20],0,0,0,0,[24,31],[4,84],0,[14,11],[14,25],0,0,0,[[[2,[1]]],[[59,[[3,[1]]]]]],[21],[[17,5]],[[23,5]],[72,72],[[7,[80,[45]]],45],[[7,7,[80,[51]]],51],[16,[[34,[33]]]],[[[10,[42]],58],[[34,[[10,[7]],33]]]],[[[2,[1]]],7],[43,43],0,[[],3],[65,65],[[[11,[45]]],45],[[[11,[51]],7],51],0,[[54,[2,[17]]]],[19],[[4,56],56],[18],[[54,[2,[23]]]],0,0,[14,25],0,[51,51],[74,74],[[[3,[23]]],45],0,[70,70],[[[3,[24]],[80,[51]],[80,[51]],7],51],[76,76],[68,68],[73,73],[66,66],0,0,0,0,0,[41,[[59,[31]]]],0,[45,45],[45,51],[51,51],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],31],[12,31],[19,31],[[],31],[[],31],[[],31],[[],31],[[],31],[[21,27],31],[8,[[60,[[3,[4]]]]]],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[27,[[34,[28]]]],[[],34],[27,[[34,[29]]]],[[],34],[[],34],[[[11,[46]]],[[34,[21,33]]]],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[],34],[[24,24],56],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[[],85],[4,[[59,[26]]]],[20],[[[35,[1]]],[[3,[1]]]],0,[8,8],[71,71],[[[3,[24]],[59,[[3,[9]]]],[80,[45]]],45],0,0,[[13,82],86],[[4,82],86],[[9,82],86],[54,86],[[53,56],86],[[45,82],86],[[],86],[[17,82],86],[[16,82],86],[[51,82],86],[[23,82],86],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[87,[[60,[53]]]],0,0,0,[[]],[[]],0,0,[[],88],[[]],[[88,3],[[59,[[3,[24]]]]]],[[88,26],[[59,[[3,[4]]]]]],0,[[]],0,[[88,54]],[[88,13]],[[88,45]],[[88,20]],[[88,75]],[[88,51]],[[88,76]],0,[[],34],[[],34],[[],85],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[89,89],[[]],0,0,0,[54,[[11,[[3,[4]]]]]],[54,[[11,[31]]]],[[]],[[]],[[],[[11,[79]]]],0,[[]],[[]],0,[[]],0,[[],34],[[],34],[[],34],[[],34],[[],85],[[],85]],"p":[[8,"GetName"],[3,"IdList"],[6,"RRC"],[3,"Cell"],[4,"Attribute"],[8,"Into"],[15,"u64"],[3,"Builder"],[3,"CombGroup"],[3,"PortDef"],[3,"Vec"],[3,"Nothing"],[3,"Assignment"],[3,"LibrarySignatures"],[3,"PathBuf"],[3,"Primitive"],[3,"Group"],[4,"PrimitiveInfo"],[3,"StaticTiming"],[4,"Guard"],[3,"Attributes"],[3,"GPosIdx"],[3,"StaticGroup"],[3,"Port"],[8,"Iterator"],[3,"Id"],[15,"str"],[4,"BoolAttr"],[4,"NumAttr"],[4,"InternalAttr"],[3,"String"],[3,"Canonical"],[3,"Error"],[4,"Result"],[3,"WRC"],[3,"GuardRef"],[4,"FlatGuard"],[4,"PortComp"],[8,"Clone"],[4,"PortParent"],[4,"CellType"],[4,"Width"],[4,"Direction"],[4,"Ordering"],[4,"Control"],[3,"Global"],[3,"GuardPool"],[3,"BackendConf"],[3,"Empty"],[3,"PortIterator"],[4,"StaticControl"],[3,"Enable"],[3,"Context"],[3,"Component"],[3,"GlobalSymbol"],[15,"bool"],[3,"RandomState"],[3,"LinkedHashMap"],[4,"Option"],[6,"CalyxResult"],[3,"Formatter"],[3,"Error"],[8,"Debug"],[6,"Result"],[3,"Seq"],[3,"StaticSeq"],[3,"Par"],[3,"StaticPar"],[3,"If"],[3,"StaticIf"],[3,"While"],[3,"Repeat"],[3,"StaticRepeat"],[3,"StaticEnable"],[3,"Invoke"],[3,"StaticInvoke"],[4,"GenericControl"],[15,"u8"],[3,"MemInfo"],[3,"Box"],[15,"u32"],[15,"usize"],[3,"NonZeroU64"],[3,"SmallVec"],[3,"TypeId"],[6,"Result"],[3,"Workspace"],[3,"Rewriter"],[4,"MemoryType"],[3,"Printer"],[3,"Cloner"],[8,"GetAttributes"],[13,"Bool"],[13,"Num"],[13,"Internal"],[13,"Unknown"],[13,"Primitive"],[13,"Component"],[13,"Constant"],[13,"Seq"],[13,"Par"],[13,"If"],[13,"While"],[13,"Repeat"],[13,"Invoke"],[13,"Enable"],[13,"Empty"],[13,"Static"],[13,"Or"],[13,"And"],[13,"Not"],[13,"CompOp"],[13,"Port"],[13,"Static"],[13,"Dynamic"],[13,"Or"],[13,"And"],[13,"Not"],[13,"CompOp"],[13,"Port"],[13,"Info"],[13,"Cell"],[13,"Group"],[13,"StaticGroup"],[13,"Extern"],[13,"Inline"],[13,"Repeat"],[13,"Enable"],[13,"Par"],[13,"Seq"],[13,"If"],[13,"Empty"],[13,"Invoke"],[13,"Const"],[13,"Param"],[8,"GetMemInfo"]]},\
+"calyx_opt":{"doc":"The Calyx Intermediate Language","t":[0,0,0,0,14,0,8,3,3,3,3,3,3,3,3,3,3,16,8,3,3,3,3,3,3,16,3,3,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,10,12,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,13,4,13,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,6,3,6,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,4,13,13,3,8,13,3,8,8,13,8,13,13,4,13,4,3,13,13,13,13,13,13,6,8,8,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,12,12,12,12,12,12],"n":["analysis","default_passes","pass_manager","passes","register_alias","traversal","AssignmentAnalysis","CompactionAnalysis","ControlId","ControlOrder","ControlPorts","DataflowOrder","DominatorMap","GoDone","GraphAnalysis","GraphColoring","InferenceAnalysis","Info","IntoStatic","LiveRangeAnalysis","PortInterface","PromotionAnalysis","ReadWriteSet","ScheduleConflicts","ShareSet","StaticCon","StaticFSM","StaticParTiming","StaticSchedule","VariableDetection","WithStatic","add","add_component","add_edges","add_static_enable_ids","add_static_enable_ids_static","adjust_component","all_conflicts","analysis","analysis","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_be_promoted","clone","clone","clone_into","clone_into","color_greedy","comb_path_spec","comb_path_specs","compact_control_vec","component_name","compute_static","compute_unique_ids","conflicts_with","contains","control_port_read_write_set","control_port_read_write_set_static","control_read_write_set","control_read_write_set_static","convert_enable_to_static","convert_invoke_to_static","convert_to_static","convert_vec_to_static","count_to_n","dataflow_sort","default","default","default","default","default","default","default","default","default","edge_induced_subgraph","exits_map","fixup_ctrl","fixup_if","fixup_par","fixup_repeat","fixup_seq","fixup_timing","fixup_while","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_context","from_ctx","get","get","get_all","get_all_bindings","get_bindings","get_bitwidth","get_control","get_control_nodes","get_dependency_graph_seq","get_guaranteed_attribute","get_guaranteed_attribute_static","get_guaranteed_enable_id","get_guaranteed_id","get_guaranteed_id_static","get_inferred_latency","get_latency","get_live_control_data","get_node_reads","get_ports","get_possible_latency","get_share_freqs","get_static_control","get_total_order","get_unique_id","has_cycles","has_nodes","insert_conflict","insert_conflicts","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_done","is_empty","is_go","is_shareable_component","is_state_share","iter","key_written_guaranteed","latency_data","len","liveness_overlaps","make_static","map","new","new","new","new","new","new","paths","port_reads","ports","query_between","reaching_defns","reads_from","realize_schedule","remove","remove_component","remove_isolated_vertices","remove_promotable_attribute","remove_promotable_from_seq","static_component_latencies","static_groups","static_par_domination","to_owned","to_owned","to_string","to_string","toposort","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_cont_read_writes","update_static","update_static","variable_like","welsh_powell_coloring","write_together_specs","writes_to","DefSet","Group","GroupOrInvoke","Invoke","MetadataMap","ReachingDefinitionAnalysis","bitor","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_overlap","clone","clone","clone_into","clone_into","cmp","compare","default","default","default","eq","equivalent","equivalent","fetch_label","fetch_label_static","fmt","fmt","fmt","fmt","from","from","from","from","get_hash","hash","into","into","into","into","into","meta","new","partial_cmp","reach","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","0","0","PassClosure","PassManager","PassResult","add_alias","borrow","borrow_mut","complete_help","default","default_passes","execute_plan","from","into","register_diagnostic","register_pass","specific_help","try_from","try_into","type_id","AddGuard","Canonicalize","CellShare","ClkInsertion","CollapseControl","CombProp","CompileInvoke","CompileRepeat","CompileStatic","CompileSync","CompileSyncWithoutSyncReg","ComponentInliner","DataPathInfer","DeadAssignmentRemoval","DeadCellRemoval","DeadGroupRemoval","DefaultAssigns","DiscoverExternal","ExternalToRef","Externalize","GoInsertion","GroupToInvoke","GroupToSeq","HoleInliner","InferShare","LowerGuards","MergeAssign","Metadata","Papercut","ParToSeq","RegisterUnsharing","RemoveIds","ResetInsertion","SimplifyStaticGuards","SimplifyWithControl","StaticFSMOpts","StaticInference","StaticInliner","StaticPromotion","SynthesisPapercut","TopDownCompileControl","UnrollBounded","WellFormed","WireInliner","WrapMain","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","clear_data","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","description","diagnostics","diagnostics","diagnostics","enable","enable","enable","enable","enable","finish","finish","finish","finish","finish","finish","finish","finish","finish","finish","finish_if","finish_if","finish_if","finish_if","finish_if","finish_if","finish_par","finish_par","finish_par","finish_par","finish_par","finish_par","finish_repeat","finish_repeat","finish_repeat","finish_seq","finish_seq","finish_seq","finish_static_par","finish_static_repeat","finish_static_seq","finish_while","finish_while","finish_while","finish_while","finish_while","finish_while","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bit_width_from","get_coloring","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","invoke","invoke","invoke","invoke","invoke","invoke","invoke","iteration_order","iteration_order","iteration_order","iteration_order","iteration_order","math_utilities","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","new","opts","opts","opts","opts","opts","opts","opts","opts","precondition","separate_anded_intervals","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start","start_context","start_context","start_if","start_if","start_if","start_if","start_seq","start_static_control","start_static_control","start_static_control","start_static_if","start_static_if","start_while","start_while","start_while","start_while","start_while","start_while","static_enable","static_enable","static_invoke","static_invoke","static_invoke","static_invoke","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","get_bit_width_from","Action","Bool","Change","CompTraversal","ConstructVisitor","Continue","DiagnosticContext","DiagnosticPass","DiagnosticResult","List","Named","No","Num","Order","OutStream","ParseVal","PassOpt","Post","Pre","SkipChildren","StaticChange","Stop","String","VisResult","Visitable","Visitor","accumulate_err","accumulate_err","apply_update","bool","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","change","clear_data","clone","clone_into","default","default","default","description","description","diagnostics","do_pass","do_pass","do_pass_default","do_pass_default","early_return_err","empty","empty","enable","enable","eq","equivalent","equivalent","err","errors_iter","finish","finish","finish_context","finish_context","finish_if","finish_if","finish_par","finish_par","finish_repeat","finish_repeat","finish_seq","finish_seq","finish_static_control","finish_static_control","finish_static_if","finish_static_if","finish_static_par","finish_static_par","finish_static_repeat","finish_static_repeat","finish_static_seq","finish_static_seq","finish_while","finish_while","fmt","fmt","from","from","from","from","from","from","from","get_opts","get_opts","into","into","into","into","into","into","invoke","invoke","iteration_order","iteration_order","name","name","new","new","not_null_outstream","num","num_list","num_list_exact","opts","opts","parse_bool","parse_num","parse_num_list","parse_outstream","parse_string","pos_num","precondition","precondition","start","start","start_context","start_context","start_if","start_if","start_par","start_par","start_repeat","start_repeat","start_seq","start_seq","start_static_control","start_static_control","start_static_if","start_static_if","start_static_par","start_static_par","start_static_repeat","start_static_repeat","start_static_seq","start_static_seq","start_while","start_while","static_change","static_enable","static_enable","static_invoke","static_invoke","string","take","to_owned","to_string","traverse_component","traverse_component","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","visit","warning","warning_iter","0","0","0","0","0","0","0"],"q":["calyx_opt","","","","","","calyx_opt::analysis","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::analysis::reaching_defns","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::analysis::reaching_defns::GroupOrInvoke","","calyx_opt::pass_manager","","","","","","","","","","","","","","","","","","calyx_opt::passes","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::passes::math_utilities","calyx_opt::traversal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_opt::traversal::Action","","calyx_opt::traversal::ParseVal","","","",""],"d":["Analysis for Calyx programs.","Defines the default passes available to PassManager.","Define the PassManager structure that is used to construct …","Passes for the Calyx compiler.","Simple macro to register an alias with a pass manager.","Helpers for traversing Control programs","Analyzes that can be performed on a set of assignments.","Struct to perform compaction on seqs
. It will only work if …","Adding “NODE_ID”, “BEGIN_ID”, and “END_ID” …","Extract the dependency order of a list of control programs.","Contains a mapping from name of ir::CombGroup to the ports …","Given a set of assignment, generates an ordering that …","Builds a Domination Map for the control program. It maps …","Struct to store information about the go-done interfaces …","Constructs a graph based representation of a component. …","Defines a greedy graph coloring algorithm over a generic …","Default implemnetation is almost certainly not helpful. …","Extra information needed to compute static information for …","","This analysis implements a parallel version of a classic …","Helper methods to parse @read_together
and @write_together
…","","Calcuate the reads-from and writes-to set for a given set …","A conflict graph that describes which nodes (i.e. …","Stores a Hashset that contains the type names of all …","","","Calculate live ranges across static par blocks. Assumes …","Represents a static schedule.","Detects if a group is solely being used to update a …","Trait to propagate and extra “static” attributes …","Adds id to self","Updates the component, given a component name and a new …","Add each edge in edges
to the graph.","","","Updates the component, given a component name and a new …","Returns an iterator containing all conflict edges, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if a control statement is already static, or …","","","","","Given an ordering
of T
s, find a mapping from nodes to T
s …","Construct @read_together
spec from the definition of a …","Construct @read_together specs from the primitive …","Takes a vec of ctrl stmts and turns it into a compacted …","","Compute the static information for the type if possible …","Adds the @NODE_ID attribute to all control stmts except …","Return a vector of all nodes that conflict with this nodes.","Checks if id contains self","Returns the ports that are read and written, respectively, …","Returns the ports that are read and written, respectively, …","Returns the cells that are read and written, respectively, …","Returns the cells that are read and written, respectively, …","","","Converts control to static control. Control must already …","Converts vec of control to vec of static control. All …","","","","","","","","","","","","Restricts the analysis graph to only include edges that …","Maps ids of control stmts, to the “last” nodes in …","","","","","","“Fixes Up” the component. In particular:","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Builds a StaticSchedule object from a vec of static groups.","Constructs a shareset from the context. Looks for “…","Builds FixUp struct from a ctx. Looks at all primitives …","Return a reference to the port reads associated with the …","Look up the set of things live at a node (i.e. group or …","Get a unique list of all live cells in component
.","Return the entire invoke binding map.","Get all bindings for an instance","","Given a control c and an id, finds the control statement …","","","","","","","","","Returns the latency associated with the provided @go port …","Updates live_once_map and par_thread_map. live_once_map …","","Iterate over the defined ports","Returns Some(latency) if a control statement has a …","provides a hashmap that gives the sharing frequencies","","Return a total order for the control programs. Returns an …","","Checks if there are cycles in the analysis graph.","","Add a conflict edge between a
and b
.","Add conflict edges between all given items.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Returns true if this is a @done port","Iterate over the defined ports","Returns true if this is @go port","Given a set of shareable and a cell, determines whether …","Returns whether or not this instance is state_share","Iterate over the defined ports","","component name -> vec<(go signal, done signal, latency)>","Iterate over the defined ports","par_id
is the id of a par thread. thread_a
and thread_b
…","","Map from node (either invokes, enables, or if/while ports) …","","Construct a domination map.","","Construct a live range analysis.","","Construct a live range analysis.","Return a Vec of paths from start
to finish
, each path a …","Returns ir::Port that are read from in the given …","Returns all the Port
associated with this instance.","","Calculate the reaching definitions in a control program.","Returns an iterator over all the reads from a port. …","Realizes a StaticSchedule (i.e., instantiates the FSMs) If …","Remove the port reads associated with the group.","Updates the component, given a component name and a new …","Remove all vertices that have no undirected neighbors from …","Removes the @promotable attribute from the control program.","","Maps static component names to their latencies, but there …","The static groups the FSM will schedule. It is a vec …","an analysis to help domination across static pars static …","","","","","Return a topological sort of this graph.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Updates self so that compaction will take continuous …","Compute the static information for the type if possible …","Compute the static information for the type if possible …","A group is variable like if it:","","Construct @write_together specs from the primitive …","Returns an iterator over all the writes to this port. …","A datastructure used to represent a set of …","","A wrapper enum to distinguish between Ids that come from …","","","A struct used to compute a reaching definition analysis. …","","","","","","","","","","Provides a map containing a vector of sets for each …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","Constructs a reaching definition analysis for registers …","","","","","","","","","","","","","","","","","","","Top-level type for all passes that transform an ir::Context","Structure that tracks all registered passes for the …","","Adds a new alias for groups of passes. An alias is a list …","","","Return a string representation to show all available …","","","Executes a given “plan” constructed using the incl and …","Returns the argument unchanged.","Calls U::from(self)
.","Registers a diagnostic pass as a normal pass. If there is …","Register a new Calyx pass and return an error if another …","Return the help string for a specific pass.","","","","","Perform serval canonicalizations on the program.","Given a LiveRangeAnalysis that specifies the “share” …","Adds assignments from a components clk
port to every …","Collapses and de-nests control constructs.","Propagate unconditional reads and writes from wires.","Compiles ir::Invoke
statements into an ir::Enable
that …","Compiles ir::Invoke
statements into an ir::Enable
that …","Compiles Static Islands","loop through all control statements under “par” block …","Compiles @sync without use of std_sync_reg Upon …","Inlines all sub-components marked with the @inline
…","Infers @control
and @data
annotations for cells. A cell …","Removes unused assigns from groups. Analyzes the writes to …","Removes unused cells from components.","Removes unused groups and combinational groups from …","Adds default assignments to all non-@data
ports of an …","A pass to detect cells that have been inlined into the …","Turns memory cell primitives with the @external(1)
…","Externalize input/output ports for cells marked with the …","Add the group’s go
signal into the guards of all …","Transform groups that are structurally invoking components …","Transforms a group into a seq of 2 smaller groups, if …","Removes all groups and inlines reads and writes from holes.","This pass checks if components are (state) shareable. Here …","Lowers guards into a purely structural representation. …","Merge assignments of the form with the same (dst_port, …","Metadata stores a Map between each group name and data …","Pass to check for common errors such as missing …","Transforms all par
into seq
. Uses analysis::ControlOrder …","Unsharing registers reduces the amount of multiplexers …","Removes NODE_ID, BEGIN_ID, and END_ID from each control …","Adds assignments from a components reset
port to every …","Simplifies Static Guards In particular if g = g1 & g2 & ……","Transforms combinational groups into normal groups by …","Adds assignments from a components clk
port to every …","Infer @promotable annotation for groups and control. …","","Promote control to static when (conservatively) possible, …","Pass to check common synthesis issues.","Core lowering pass. Compiles away the control programs in …","Fully unroll all while
loops with a given @bound
.","Pass to check if the program is well-formed.","Alternate hole inliner that removes groups and group holes …","If the top-level component is not named main
, adds a new …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Transforms a if-with
into a seq-if
which first runs the …","","Compile each child in par
block separately so each child …","Collapse par { par { A }; B } into par { A; B }.","Collapse par { par { A }; B } into par { A; B }.","","","","","","","","Collapse seq { seq { A }; B } into seq { A; B }.","Collapse static par {static par {A; B;}} into static par …","Collapse","Collase static seq {static seq {A; B; }} into static seq …","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create an empty metadata table","","","","","","","","","","takes in g, and separates the “anded intervals” from …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Executed after visiting the children of a [ir::Static] …","Executed after visiting the children of a [ir::Static] …","","","","","","If while body is static, then we want to make sure that …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the minimum bit width needed to represents n …","Action performed at the end of visiting a control …","A boolean option.","Replace the current ast node with a new node. If performed …","Define traversal order of components: pre-order, …","Trait defining method that can be used to construct a …","Continue traversal of control program.","A type for accumulating multiple errors","A pass that implements reporting Diagnostics","Accumuate the error in a Result
type into the …","A list of values.","Trait that describes named things. Calling do_pass
and …","Use an arbitrary order.","A number option.","The order in which the components are traversed.","An output stream (stdout, stderr, file name)","The value returned from parsing an option.","Option that can be passed to a pass.","Traverse components in post-order.","Traverse components in pre-order.","Skips the traversal of this node’s children but …","Replace the current StaticControl node with a new node If …","Globally abort traversal of control program.","A string option.","Result of performing a visit.","Describes types that can be visited by things implementing …","The visiting interface for a ir::Control
program. Contains …","","","Traverses components in post-order and applies upd
.","","","","","","","","","","","","","","","Clear the data stored in the visitor. Called before …","","","","","","A short description of the pass.","","Return an iterator of the diagnostics gathered by this …","Run the visitor on a given program ir::Context
. The …","Run the visitor on a given program ir::Context
. The …","Build a Default implementation of this pass and call …","Build a Default implementation of this pass and call …","Accumulates error
into the context, and returns …","Executed at an ir::Empty node.","Executed at an ir::Empty node.","Executed at an ir::Enable node.","Executed at an ir::Enable node.","","","","Report an error
","","Executed after the traversal ends. This method is always …","Executed after the traversal ends. This method is always …","Transform the ir::Context
after visiting the components.","Transform the ir::Context
after visiting the components.","Executed after visiting the children of a ir::If node.","Executed after visiting the children of a ir::If node.","Executed after visiting the children of a ir::Par node.","Executed after visiting the children of a ir::Par node.","Executed after visiting the children of a ir::Repeat node.","Executed after visiting the children of a ir::Repeat node.","Executed after visiting the children of a ir::Seq node.","Executed after visiting the children of a ir::Seq node.","Executed after visiting the conetnts of an …","Executed after visiting the conetnts of an …","Executed after visiting the children of a ir::StaticIf …","Executed after visiting the children of a ir::StaticIf …","","","Executed after visiting the children of a ir::StaticRepeat …","Executed after visiting the children of a ir::StaticRepeat …","","","Executed after visiting the children of a ir::While node.","Executed after visiting the children of a ir::While node.","","","Construct the visitor using information from the Context","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Executed at an ir::Invoke node.","Executed at an ir::Invoke node.","Define the iteration order in which components should be …","Define the iteration order in which components should be …","The name of a pass. Is used for identifying passes.","","","Returns a new instance the PostOrder iterator given a …","Returns an output stream if it is not the null stream","","","Parse a list that should have exactly N elements. If …","Set of options that can be passed to the pass. The options …","Set of options that can be passed to the pass. The options …","","Parse a number from a string.","Parse a list of numbers from a string.","","Parse a String from a string.","","Precondition for this pass to run on the program. If this …","Precondition for this pass to run on the program. If this …","Executed before the traversal begins.","Executed before the traversal begins.","Transform the ir::Context
before visiting the components.","Transform the ir::Context
before visiting the components.","Executed before visiting the children of a ir::If node.","Executed before visiting the children of a ir::If node.","Executed before visiting the children of a ir::Par node.","Executed before visiting the children of a ir::Par node.","Executed before visiting the children of a ir::Repeat node.","Executed before visiting the children of a ir::Repeat node.","Executed before visiting the children of a ir::Seq node.","Executed before visiting the children of a ir::Seq node.","Executed before visiting the contents of an …","Executed before visiting the contents of an …","Executed before visiting the children of a ir::StaticIf …","Executed before visiting the children of a ir::StaticIf …","","","Executed before visiting the children of a ir::StaticRepeat…","Executed before visiting the children of a ir::StaticRepeat…","","","Executed before visiting the children of a ir::While node.","Executed before visiting the children of a ir::While node.","","Executed at an ir::StaticEnable node.","Executed at an ir::StaticEnable node.","Executed at a ir::StaticInvoke node.","Executed at a ir::StaticInvoke node.","","Returns the underlying component vector in original order.","","","Define the traversal over a component. Calls Visitor::start…","Define the traversal over a component. Calls Visitor::start…","","","","","","","","","","","","","","","","","","","Perform the traversal.","Report a warning
","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0,0,0,0,0,0,138,0,0,0,0,0,1,3,4,139,139,3,8,140,140,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,19,4,1,4,1,11,142,142,18,29,137,139,8,1,143,143,143,143,19,19,19,19,24,28,18,29,4,30,19,8,1,31,32,4,29,3,3,3,3,3,3,3,18,29,4,41,30,19,31,24,32,139,141,42,42,28,11,11,3,142,143,144,18,29,4,4,4,41,41,41,30,19,8,8,1,31,24,32,32,1,3,42,30,30,42,42,24,29,29,141,139,139,139,139,139,19,41,30,29,41,3,11,29,141,24,4,11,11,11,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,41,41,41,1,1,41,29,3,41,31,138,29,28,29,41,30,1,31,4,143,4,24,0,4,32,42,3,4,3,3,3,32,29,4,1,11,4,4,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,139,141,42,28,11,3,142,143,144,18,29,4,41,30,19,8,1,31,24,32,18,137,137,144,11,142,4,0,67,0,67,0,0,63,67,69,63,64,67,69,63,64,64,67,63,67,63,67,67,69,63,64,67,67,67,69,69,67,69,63,64,67,69,63,64,67,67,67,67,69,63,64,64,64,67,64,67,63,67,69,63,64,67,69,63,64,67,69,63,64,145,146,0,0,0,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,89,90,91,81,85,89,98,100,77,84,85,88,89,95,97,98,113,115,85,88,89,98,113,115,85,88,93,104,110,111,85,93,94,85,88,93,93,93,93,85,88,89,98,113,115,89,90,114,91,74,74,75,75,76,76,77,77,78,78,79,79,80,80,81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88,89,89,92,93,94,95,96,97,98,99,100,101,102,103,90,90,104,105,106,107,108,109,110,111,112,113,114,115,91,91,116,117,118,0,95,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,77,78,85,89,97,98,105,77,78,82,84,85,0,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,114,75,76,78,82,83,85,88,95,118,108,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,95,96,99,100,101,102,103,90,105,106,107,108,115,91,117,114,118,78,89,97,90,89,95,109,112,89,97,78,89,95,97,90,116,89,98,77,89,97,105,114,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,92,93,94,95,96,97,98,99,100,101,102,103,90,104,105,106,107,108,109,110,111,112,113,114,115,91,116,117,118,0,0,130,131,0,0,131,0,0,0,130,0,125,130,0,130,0,0,125,125,131,131,131,130,0,0,0,147,121,129,130,131,126,129,130,119,125,131,126,129,130,119,125,131,148,130,130,126,119,125,149,126,150,136,136,136,136,119,136,136,136,136,125,125,125,119,119,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,130,119,148,131,126,129,130,119,125,148,148,131,126,129,130,119,125,136,136,136,136,149,126,126,129,130,130,130,130,149,149,126,126,126,126,126,130,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,131,136,136,136,136,130,129,130,130,136,136,131,126,129,130,119,125,131,126,129,130,119,125,131,126,129,130,119,125,151,119,119,152,153,154,155,156,157,158],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,2]],[3],[4,4],[[5,6],6],[[7,6],6],[3],[8,9],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5,10],[4,4],[1,1],[[]],[[]],[[11,[13,[12]],10],14],[15,[[17,[16]]]],[9,[[17,[[14,[2,16]]]]]],[[18,[16,[5]],19,20],[[16,[5]]]],0,[[],[[13,[6]]]],[[5,6,10],6],[[8,2],[[21,[2]]]],[[1,2],10],[5],[7],[5],[7],[[19,22,20],7],[[19,23],7],[[19,5,20],7],[[19,20,[16,[5]]],[[16,[7]]]],[[24,20,6,[13,[[26,[25]]]]],[[16,[[27,[25]]]]]],[[28,[16,[27]]],[[17,[[16,[27]]]]]],[[],18],[[],29],[[],4],[[],30],[[],19],[[],8],[[],1],[[],31],[[],32],[4,4],0,[[3,5]],[[3,33]],[[3,34]],[[3,35]],[[3,36]],[[3,37]],[[3,38]],[[18,39],40],[[29,39],40],[[4,39],40],[[41,39],40],[[30,39],40],[[19,39],40],[[31,39],40],[[24,39],40],[[32,39],40],[[]],[[]],[5,42],[[]],[[]],[[],11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[43,4],[37,4],[[]],[15,41],[44,41],[[]],[[]],[[]],[[]],[5,8],[[]],[[]],[[]],[[]],[[[16,[[46,[45]]]]],32],[47,1],[47,3],[[42,2],[[13,[16]]]],[[30,6],14],[30,9],[42,[[14,[2,16]]]],[[42,2],[[13,[16]]]],[24,6],[[6,5],[[13,[48]]]],[[21,5]],[[9,14,14],[[49,[[13,[5]]]]]],[5,6],[7,6],[50,6],[5,6],[7,6],[5,6],[[41,2],[[13,[6]]]],[[30,14,14,14,21,5]],[[6,37,1],[[21,[2]]]],[41,16],[5,[[13,[6]]]],[11,[[14,[12,12]]]],[[6,7],[[13,[48]]]],[9,[[17,[[16,[5]]]]]],[24,2],[4,10],[11,10],[11],[11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[41,2],10],[41,10],[[41,2],10],[[1,46],10],[1,10],[41,9],[[2,21,37],10],0,[41,51],[[31,6,6,6,2,2],10],[[],13],0,[9,[[17,[28]]]],[[5,2],29],[16,41],[[5,1,1,10],30],[[[21,[2]],10],1],[[5,2,30],31],[[4,52,52],[[16,[[16,[[46,[52]]]]]]]],[27,[[0,[9]]]],[4,[[16,[[46,[52]]]]]],[[24,20],[[53,[[26,[25]]]]]],0,[[4,52],54],[[32,20,10]],[[42,2],[[13,[[16,[[46,[52]]]]]]]],[[3,2]],[4,4],[5],[36],0,0,0,[[]],[[]],[[[11,[[0,[55,56,57,58,59]]]]],60],[4,60],[4,54],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[18,37]],[[],[[13,[6]]]],[[],[[13,[6]]]],[[46,1],13],[11,14],[9,[[14,[2,[16,[[21,[2]]]]]]]],[[4,52],54],0,0,0,0,0,0,[[63,63]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[64,[[66,[2,[16,[65]]]]]],[67,67],[63,63],[[]],[[]],[[67,67],68],[[],68],[[],69],[[],63],[[],64],[[67,67],10],[[],10],[[],10],[[69,23],[[13,[2]]]],[[69,70],[[13,[2]]]],[[67,39],40],[[69,39],40],[[63,39],40],[[64,39],40],[[]],[[]],[[]],[[]],[[],6],[67],[[]],[67,2],[[]],[[]],[[]],0,[5,64],[[67,67],[[13,[68]]]],0,[[]],[[]],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],0,0,0,0,0,[[71,60,[16,[60]]],72],[[]],[[]],[71,60],[[],71],[[],[[72,[71]]]],[[71,47,10],72],[[]],[[]],[71,72],[71,72],[[71,73],[[13,[60]]]],[[],61],[[],61],[[],62],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[74],[75],[76],[77],[78],[79],[80],[81],[82],[83],[84],[85],[86],[87],[88],[89],[90],[91],[[],92],[[],93],[[],94],[[],95],[[],96],[[],97],[[],98],[[],99],[[],100],[[],101],[[],102],[[],103],[[],104],[[],105],[[],106],[[],107],[[],108],[[],109],[[],110],[[],111],[[],112],[[],113],[[],114],[[],115],[[],116],[[],117],[[],118],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[89,119],[90,119],[91,119],[[81,22,37,120],121],[[85,22,37,120],121],[[89,22,37,120],121],[[98,22,37,120],121],[[100,22,37,120],121],[[77,37,120],121],[[84,37,120],121],[[85,37,120],121],[[88,37,120],121],[[89,37,120],121],[[95,37,120],121],[[97,37,120],121],[[98,37,120],121],[[113,37,120],121],[[115,37,120],121],[[85,33,37,120],121],[[88,33,37,120],121],[[89,33,37,120],121],[[98,33,37,120],121],[[113,33,37,120],121],[[115,33,37,120],121],[[85,34,37,120],121],[[88,34,37,120],121],[[93,34,37,120],121],[[104,34,37,120],121],[[110,34,37,120],121],[[111,34,37,120],121],[[85,35,37,120],121],[[93,35,37,120],121],[[94,35,37,120],121],[[85,36,37,120],121],[[88,36,37,120],121],[[93,36,37,120],121],[[93,122,37,120],121],[[93,123,37,120],121],[[93,124,37,120],121],[[85,38,37,120],121],[[88,38,37,120],121],[[89,38,37,120],121],[[98,38,37,120],121],[[113,38,37,120],121],[[115,38,37,120],121],[[89,39],40],[[90,39],40],[[114,39],40],[[91,39],40],[[]],[47,[[17,[74]]]],[47,[[17,[75]]]],[[]],[[]],[47,[[17,[76]]]],[[]],[47,[[17,[77]]]],[[]],[47,[[17,[78]]]],[[]],[47,[[17,[79]]]],[[]],[47,[[17,[80]]]],[47,[[17,[81]]]],[[]],[47,[[17,[82]]]],[[]],[47,[[17,[83]]]],[[]],[[]],[47,[[17,[84]]]],[[]],[47,[[17,[85]]]],[[]],[47,[[17,[86]]]],[[]],[47,[[17,[87]]]],[[]],[47,[[17,[88]]]],[47,[[17,[89]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[47,[[17,[90]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[47,[[17,[91]]]],[[]],[[]],[[]],0,[[16,5],[[14,[2,2]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[77,23,37,120],121],[[78,23,37,120],121],[[85,23,37,120],121],[[89,23,37,120],121],[[97,23,37,120],121],[[98,23,37,120],121],[[105,23,37,120],121],[[],125],[[],125],[[],125],[[],125],[[],125],0,[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],73],[[],114],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[[],[[16,[126]]]],[47,[[13,[60]]]],[[[26,[127]],16],[[13,[[26,[127]]]]]],[[74,37,120],121],[[75,37,120],121],[[76,37,120],121],[[77,37,120],121],[[78,37,120],121],[[79,37,120],121],[[80,37,120],121],[[81,37,120],121],[[82,37,120],121],[[83,37,120],121],[[84,37,120],121],[[85,37,120],121],[[86,37,120],121],[[87,37,120],121],[[88,37,120],121],[[89,37,120],121],[[92,37,120],121],[[95,37,120],121],[[96,37,120],121],[[99,37,120],121],[[100,37,120],121],[[101,37,120],121],[[102,37,120],121],[[103,37,120],121],[[90,37,120],121],[[105,37,120],121],[[106,37,120],121],[[107,37,120],121],[[108,37,120],121],[[115,37,120],121],[[91,37,120],121],[[117,37,120],121],[[114,47],121],[[118,47],121],[[78,33,37,120],121],[[89,33,37,120],121],[[97,33,37,120],121],[[90,33,37,120],121],[[89,36,37,120],121],[[95,7,37,120],121],[[109,7,37,120],121],[[112,7,37,120],121],[[89,128,37,120],121],[[97,128,37,120],121],[[78,38,37,120],121],[[89,38,37,120],121],[[95,38,37,120],121],[[97,38,37,120],121],[[90,38,37,120],121],[[116,38,37,120],121],[[89,50,37,120],121],[[98,50,37,120],121],[[77,70,37,120],121],[[89,70,37,120],121],[[97,70,37,120],121],[[105,70,37,120],121],[[],60],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[6,6],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[119],[[121,119],121],[129,17],[130,10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[5,131],[[]],[130,130],[[]],[126,130],[[],119],[[],125],[[],73],[126,73],[[],119],[47,17],[47,17],[47,17],[47,17],[[119,132],121],[[133,37,120],121],[[133,37,120],121],[[22,37,120],121],[[22,37,120],121],[[125,125],10],[[],10],[[],10],[[119,132]],[119,9],[[37,120],121],[[37,120],121],[47,121],[47,121],[[33,37,120],121],[[33,37,120],121],[[34,37,120],121],[[34,37,120],121],[[35,37,120],121],[[35,37,120],121],[[36,37,120],121],[[36,37,120],121],[[7,37,120],121],[[7,37,120],121],[[128,37,120],121],[[128,37,120],121],[[122,37,120],121],[[122,37,120],121],[[123,37,120],121],[[123,37,120],121],[[124,37,120],121],[[124,37,120],121],[[38,37,120],121],[[38,37,120],121],[[130,39],40],[[119,39],40],[47,17],[[]],[[]],[[]],[[]],[[]],[[]],[47,[[134,[73,130]]]],[47,[[134,[73,130]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[23,37,120],121],[[23,37,120],121],[[],125],[[],125],[[],73],[126,73],[[73,73,130],126],[[[16,[37]],125],129],[130,[[13,[135]]]],[130,12],[130,[[16,[12]]]],[130],[[],[[16,[126]]]],[[],[[16,[126]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[73,[[13,[130]]]],[130,[[13,[6]]]],[47,[[13,[60]]]],[47,[[13,[60]]]],[[37,120],121],[[37,120],121],[47,121],[47,121],[[33,37,120],121],[[33,37,120],121],[[34,37,120],121],[[34,37,120],121],[[35,37,120],121],[[35,37,120],121],[[36,37,120],121],[[36,37,120],121],[[7,37,120],121],[[7,37,120],121],[[128,37,120],121],[[128,37,120],121],[[122,37,120],121],[[122,37,120],121],[[123,37,120],121],[[123,37,120],121],[[124,37,120],121],[[124,37,120],121],[[38,37,120],121],[[38,37,120],121],[7,131],[[50,37,120],121],[[50,37,120],121],[[70,37,120],121],[[70,37,120],121],[130,60],[129,[[16,[37]]]],[[]],[[],60],[[37,120],17],[[37,120],17],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],61],[[],62],[[],62],[[],62],[[],62],[[],62],[[],62],[[136,37,120],121],[[119,132]],[119,9],0,0,0,0,0,0,0],"p":[[3,"ShareSet"],[3,"Id"],[3,"InferenceAnalysis"],[3,"GraphAnalysis"],[4,"Control"],[15,"u64"],[4,"StaticControl"],[3,"ScheduleConflicts"],[8,"Iterator"],[15,"bool"],[3,"GraphColoring"],[15,"i64"],[4,"Option"],[3,"HashMap"],[3,"Primitive"],[3,"Vec"],[6,"CalyxResult"],[3,"CompactionAnalysis"],[3,"PromotionAnalysis"],[3,"Builder"],[3,"HashSet"],[3,"Enable"],[3,"Invoke"],[3,"StaticFSM"],[3,"Nothing"],[4,"Guard"],[3,"Assignment"],[3,"DataflowOrder"],[3,"DominatorMap"],[3,"LiveRangeAnalysis"],[3,"StaticParTiming"],[3,"StaticSchedule"],[3,"If"],[3,"Par"],[3,"Repeat"],[3,"Seq"],[3,"Component"],[3,"While"],[3,"Formatter"],[6,"Result"],[3,"GoDone"],[3,"ControlPorts"],[3,"Group"],[3,"Cell"],[3,"StaticGroup"],[6,"RRC"],[3,"Context"],[4,"GenericControl"],[6,"DiGraph"],[3,"StaticEnable"],[15,"usize"],[3,"Port"],[3,"Box"],[3,"PortIterator"],[8,"Eq"],[8,"Hash"],[8,"ToString"],[8,"Clone"],[8,"Ord"],[3,"String"],[4,"Result"],[3,"TypeId"],[3,"DefSet"],[3,"ReachingDefinitionAnalysis"],[3,"BTreeSet"],[3,"BTreeMap"],[4,"GroupOrInvoke"],[4,"Ordering"],[3,"MetadataMap"],[3,"StaticInvoke"],[3,"PassManager"],[6,"PassResult"],[15,"str"],[3,"Canonicalize"],[3,"CellShare"],[3,"CombProp"],[3,"CompileInvoke"],[3,"ComponentInliner"],[3,"ExternalToRef"],[3,"Externalize"],[3,"GroupToInvoke"],[3,"InferShare"],[3,"StaticFSMOpts"],[3,"StaticInference"],[3,"StaticPromotion"],[3,"DefaultAssigns"],[3,"DiscoverExternal"],[3,"TopDownCompileControl"],[3,"WellFormed"],[3,"Papercut"],[3,"SynthesisPapercut"],[3,"ClkInsertion"],[3,"CollapseControl"],[3,"CompileRepeat"],[3,"CompileStatic"],[3,"DeadAssignmentRemoval"],[3,"DeadCellRemoval"],[3,"DeadGroupRemoval"],[3,"GoInsertion"],[3,"GroupToSeq"],[3,"HoleInliner"],[3,"LowerGuards"],[3,"MergeAssign"],[3,"ParToSeq"],[3,"RegisterUnsharing"],[3,"RemoveIds"],[3,"ResetInsertion"],[3,"SimplifyStaticGuards"],[3,"StaticInliner"],[3,"CompileSync"],[3,"CompileSyncWithoutSyncReg"],[3,"AddGuard"],[3,"DataPathInfer"],[3,"Metadata"],[3,"SimplifyWithControl"],[3,"UnrollBounded"],[3,"WireInliner"],[3,"WrapMain"],[3,"DiagnosticContext"],[3,"LibrarySignatures"],[6,"VisResult"],[3,"StaticPar"],[3,"StaticRepeat"],[3,"StaticSeq"],[4,"Order"],[3,"PassOpt"],[3,"StaticTiming"],[3,"StaticIf"],[3,"CompTraversal"],[4,"ParseVal"],[4,"Action"],[3,"Error"],[3,"Empty"],[3,"LinkedHashMap"],[4,"OutputFile"],[8,"Visitor"],[8,"WithStatic"],[8,"IntoStatic"],[3,"ControlId"],[8,"AssignmentAnalysis"],[3,"ControlOrder"],[3,"PortInterface"],[3,"ReadWriteSet"],[3,"VariableDetection"],[13,"Group"],[13,"Invoke"],[8,"DiagnosticResult"],[8,"ConstructVisitor"],[8,"Named"],[8,"DiagnosticPass"],[8,"Visitable"],[13,"Change"],[13,"StaticChange"],[13,"Bool"],[13,"Num"],[13,"String"],[13,"List"],[13,"OutStream"]]},\
"calyx_utils":{"doc":"Shared utilities for the Calyx compiler.","t":[12,3,6,3,13,3,3,6,8,3,3,6,3,3,13,4,3,3,3,13,13,18,18,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12],"n":["0","BoolIdx","CalyxResult","Error","File","FileIdx","GPosIdx","GSym","GetName","GlobalPositionTable","Id","Idx","MultiError","NameGenerator","Null","OutputFile","PosIdx","PosString","PositionTable","Stderr","Stdout","UNKNOWN","UNKNOWN","WeightGraph","WithPos","add_all_edges","add_edge","add_file","add_names","add_node","add_pos","already_bound","annotations","as_mut","as_path_string","as_ref","as_ref","as_ref","as_ref","bits_needed_for","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","contains_node","copy_span","copy_span","copy_span","default","default","default","default","default","degree","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","format_raw","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_str","gen_name","get_hash","get_line_num","get_location","get_source","get_write","graph","hash","id","index_map","into","into","into","into","into","into","into","into","into","into","into","into","into","into_option","invalid_file","is_zero","isatty","location","malformed_control","malformed_structure","message","misc","name","new","new","new","nodes","papercut","parse_error","partial_cmp","pass_assumption","reserved_name","reverse_index","show","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","undefined","unused","with_annotation","with_annotations","with_pos","with_post_msg","with_prev_defined_names","with_span","write_error","zero","0"],"q":["calyx_utils","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","calyx_utils::OutputFile"],"d":["","Edge weight used for the graph nodes","Convience wrapper to represent success or meaningul …","Errors generated by the compiler","","Handle to a file in a PositionTable The index refers to …","A position index backed by a global PositionTable","","A trait representing something in the IR that has a name.","The global position table","Represents an identifier in a Calyx program","Index into a WeightGraph","A collection of errors generated by the compiler","Simple HashMap-based name generator that generates new …","","Possible choices for output streams. Used by the -o
option …","Handle to a position in a PositionTable The index refers …","A positioned string.","Source position information for a Calyx program.","","","The unknown position","Symbol for the unknown position","Weight graph provides a wrapper over a Graph that allows …","An IR node that may contain position information.","Add edges between all given items.","Add an edge between a
and b
.","Add a new file to the position table","Add generated names","Add a new node to the graph. Client code should ensure …","Add a new position to the position table","","","Return reference to a global PositionTable","","Return an immutable reference to the global position table","","","","Number of bits needed to represent a number.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Checks if the node has already been added to the graph.","Copy the span associated with this node.","","","","","","","","Return the degree of a given node (number of edges …","","","","","","","","","","","","","","","","","","","","","","","","","","","Format this position with filename header and the error …","Format this position with the error message err_msg
","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns a new String that starts with prefix
. For example:","","returns:","","","","Graph representating using identifier.","","","Mapping from T to a unique identifier.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Calls U::from(self)
.","Convert the position into an optional. Returns None
if the …","","","","","","","","","Return a reference to the object’s name","Create a new position table where the first file and first …","","Construct a nw PosString from a String and a span.","Returns an iterator over references to nodes in the Graph.","","","","","","Returns a Map from NodeIndex
to T
(the reverse of the …","Visualizes the span without any message or marking","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a NameGenerator where names
are already defined so …","Add a span to an existing PosString.","","",""],"i":[18,0,0,0,13,0,0,0,0,0,0,0,0,0,13,0,0,0,0,13,13,2,18,0,0,1,1,2,5,1,2,11,11,43,13,43,6,15,15,0,26,2,43,35,1,11,6,5,13,15,9,4,18,26,2,43,35,1,11,6,5,13,15,9,4,18,11,6,5,13,15,9,4,18,11,6,5,13,15,9,4,18,6,6,1,44,15,18,2,1,6,15,18,1,6,6,6,6,6,6,9,4,18,6,6,9,9,4,4,18,18,26,11,6,6,5,13,15,9,18,18,18,26,26,26,26,26,26,25,25,2,43,35,35,1,1,11,11,11,11,6,6,6,5,13,15,15,9,4,18,13,5,6,18,18,2,13,1,6,6,1,26,2,43,35,1,11,6,5,13,15,9,4,18,18,11,35,13,11,11,11,11,11,45,2,6,15,1,11,11,6,11,11,1,18,11,6,5,13,15,9,4,18,1,6,13,15,26,2,43,35,1,11,6,5,13,15,9,4,18,26,2,43,35,1,11,6,5,13,15,9,4,18,26,2,43,35,1,11,6,5,13,15,9,4,18,11,11,11,11,11,11,5,15,11,35,46],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1],[1],[[2,3,3],4],[[5,[7,[6]]]],[1],[[2,4,8,8],9],[[6,10],11],[11,12],[[],2],[13,3],[[],2],[6,14],[15,16],[15,14],[17,17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[11,11],[6,6],[5,5],[13,13],[15,15],[9,9],[4,4],[18,18],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[6,6],19],[[],19],[1,20],[[],18],[15,18],[18,18],[[],2],[[],[[1,[[0,[21,22,23,24]]]]]],[[],6],[[],15],[[],18],[1,8],[[6,3],20],[[6,6],20],[[6,14],20],[[6,14],20],[[6,25],20],[[6,6],20],[[9,9],20],[[4,4],20],[[18,18],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[26,27],28],[[11,27],28],[[6,27],28],[[6,27],[[30,[29]]]],[[5,27],28],[[13,27],28],[[15,27],28],[[9,27],28],[[18,27],28],[[18,[31,[14]]],3],[[18,[31,[14]]],3],[11,26],[32,26],[33,26],[34,26],[[[12,[11]]],26],[[]],[6,25],[6,25],[[]],[[]],[20,35],[[]],[[]],[[],1],[32,11],[33,11],[34,11],[[]],[14,6],[[]],[3,6],[[]],[[]],[3,15],[[]],[[]],[[]],[[]],[14,[[30,[13]]]],[5,6],[[],17],[18],[18],[[2,4],14],[13,[[37,[36]]]],0,[6],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[38,[18]]]],[10,11],[35,20],[13,20],[11],[10,11],[10,11],[11,3],[10,11],[[],6],[[],2],[10,6],[[3,18],15],[1,39],[10,11],[10,11],[[6,6],[[38,[19]]]],[[10,10],11],[6,11],[1,[[41,[40]]]],[18,3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[1,[[0,[21,22,10,23,24]]]]],3],[[],3],[13,3],[15,3],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[],42],[[6,10],11],[[6,10],11],[[11,10],11],[[11,39],11],[11,11],[[11,[38,[3]]],11],[[[7,[6]]],5],[[15,18],15],[10,11],[[],35],0],"p":[[3,"WeightGraph"],[3,"PositionTable"],[3,"String"],[3,"FileIdx"],[3,"NameGenerator"],[3,"Id"],[3,"HashSet"],[15,"usize"],[3,"PosIdx"],[8,"ToString"],[3,"Error"],[3,"Vec"],[4,"OutputFile"],[15,"str"],[3,"PosString"],[3,"Path"],[15,"u64"],[3,"GPosIdx"],[4,"Ordering"],[15,"bool"],[8,"Eq"],[8,"Hash"],[8,"Clone"],[8,"Ord"],[6,"GSym"],[3,"MultiError"],[3,"Formatter"],[6,"Result"],[3,"Error"],[4,"Result"],[8,"AsRef"],[3,"Error"],[3,"Error"],[3,"Utf8Error"],[3,"BoolIdx"],[8,"Write"],[3,"Box"],[4,"Option"],[8,"Iterator"],[6,"NodeIndex"],[3,"HashMap"],[3,"TypeId"],[3,"GlobalPositionTable"],[8,"WithPos"],[8,"GetName"],[13,"File"]]}\
}');
if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
diff --git a/source/src/calyx_frontend/attribute.rs.html b/source/src/calyx_frontend/attribute.rs.html
index 8c81d6a2..52e6d093 100644
--- a/source/src/calyx_frontend/attribute.rs.html
+++ b/source/src/calyx_frontend/attribute.rs.html
@@ -244,6 +244,10 @@
244
245
246
+247
+248
+249
+250
use calyx_utils::{CalyxResult, Error, Id};
use std::str::FromStr;
use strum::EnumCount;
@@ -315,7 +319,11 @@
#[strum(serialize = "promoted")]
/// denotes a static component or control promoted from dynamic
Promoted,
+ #[strum(serialize = "fast")]
+ /// https://github.com/calyxir/calyx/issues/1828
+ Fast,
}
+
impl From<BoolAttr> for Attribute {
fn from(attr: BoolAttr) -> Self {
Attribute::Bool(attr)
diff --git a/source/src/calyx_opt/passes/static_promotion.rs.html b/source/src/calyx_opt/passes/static_promotion.rs.html
index 224add45..d399f037 100644
--- a/source/src/calyx_opt/passes/static_promotion.rs.html
+++ b/source/src/calyx_opt/passes/static_promotion.rs.html
@@ -681,6 +681,12 @@
681
682
683
+684
+685
+686
+687
+688
+689
use crate::analysis::{
CompactionAnalysis, InferenceAnalysis, PromotionAnalysis,
};
@@ -688,7 +694,7 @@
Action, ConstructVisitor, Named, Order, ParseVal, PassOpt, VisResult,
Visitor,
};
-use calyx_ir::{self as ir, LibrarySignatures};
+use calyx_ir::{self as ir, BoolAttr, LibrarySignatures};
use calyx_utils::CalyxResult;
use ir::GetAttributes;
use itertools::Itertools;
@@ -1173,6 +1179,12 @@
})
};
self.inference_analysis.fixup_ctrl(&mut new_ctrl);
+
+ // this might be part of a larger issue where passes remove some attributes they shouldn't
+ if s.get_attributes().has(BoolAttr::Fast) {
+ new_ctrl.get_mut_attributes().insert(BoolAttr::Fast, 1);
+ }
+
Ok(Action::change(new_ctrl))
}
diff --git a/source/src/calyx_opt/passes/top_down_compile_control.rs.html b/source/src/calyx_opt/passes/top_down_compile_control.rs.html
index cccbade7..cbeeb950 100644
--- a/source/src/calyx_opt/passes/top_down_compile_control.rs.html
+++ b/source/src/calyx_opt/passes/top_down_compile_control.rs.html
@@ -1458,6 +1458,16 @@
1458
1459
1460
+1461
+1462
+1463
+1464
+1465
+1466
+1467
+1468
+1469
+1470
use super::math_utilities::get_bit_width_from;
use crate::passes;
use crate::traversal::{
@@ -2171,6 +2181,8 @@
preds: Vec<PredEdge>,
// True if early_transitions are allowed
early_transitions: bool,
+ // True if the `@fast` attribute has successfully been applied to the parent of this control
+ has_fast_guarantee: bool,
) -> CalyxResult<Vec<PredEdge>> {
match con {
// See explanation of FSM states generated in [ir::TopDownCompileControl].
@@ -2206,7 +2218,7 @@
// NOTE: We explicilty do not add `not_done` to the guard.
// See explanation in [ir::TopDownCompileControl] to understand
// why.
- if early_transitions {
+ if early_transitions || has_fast_guarantee {
for (st, g) in &prev_states {
let early_go = build_assignments!(self.builder;
group["go"] = g ? signal_on["out"];
@@ -2253,9 +2265,13 @@
early_transitions: bool,
) -> CalyxResult<Vec<PredEdge>> {
let mut prev = preds;
- for stmt in &seq.stmts {
- prev =
- self.calculate_states_recur(stmt, prev, early_transitions)?;
+ for (i, stmt) in seq.stmts.iter().enumerate() {
+ prev = self.calculate_states_recur(
+ stmt,
+ prev,
+ early_transitions,
+ i > 0 && seq.get_attributes().has(BoolAttr::Fast),
+ )?;
}
Ok(prev)
}
@@ -2288,6 +2304,7 @@
&if_stmt.tbranch,
tru_transitions,
early_transitions,
+ false,
)?;
// Previous states transitioning into false branch need the conditional
// to be false.
@@ -2305,6 +2322,7 @@
&if_stmt.fbranch,
fal_transitions,
early_transitions,
+ false,
)?
};
@@ -2347,6 +2365,7 @@
&while_stmt.body,
transitions,
early_transitions,
+ false,
)?;
// Step 3: The final out edges from the while come from:
@@ -2451,6 +2470,7 @@
con,
vec![first_state],
early_transitions,
+ false,
)?;
self.add_nxt_transition(prev);
Ok(())
diff --git a/source/src/calyx_opt/passes/well_formed.rs.html b/source/src/calyx_opt/passes/well_formed.rs.html
index 61d253a9..f474eb1a 100644
--- a/source/src/calyx_opt/passes/well_formed.rs.html
+++ b/source/src/calyx_opt/passes/well_formed.rs.html
@@ -880,12 +880,52 @@
880
881
882
+883
+884
+885
+886
+887
+888
+889
+890
+891
+892
+893
+894
+895
+896
+897
+898
+899
+900
+901
+902
+903
+904
+905
+906
+907
+908
+909
+910
+911
+912
+913
+914
+915
+916
+917
+918
+919
+920
+921
use crate::traversal::{Action, ConstructVisitor, Named, VisResult, Visitor};
use crate::traversal::{DiagnosticContext, DiagnosticPass, DiagnosticResult};
use calyx_ir::{
self as ir, Cell, CellType, Component, GetAttributes, LibrarySignatures,
RESERVED_NAMES,
};
+use calyx_ir::{BoolAttr, Seq};
use calyx_utils::{CalyxResult, Error, WithPos};
use ir::Nothing;
use ir::StaticTiming;
@@ -1164,6 +1204,30 @@
true
}
+/// Confirms (in agreement with [this discussion](https://github.com/calyxir/calyx/issues/1828))
+/// that the `@fast` sequence `seq` is composed of alternating static-dynamic controls.
+fn check_fast_seq_invariant(seq: &Seq) -> CalyxResult<()> {
+ if seq.stmts.is_empty() {
+ return Ok(());
+ }
+ let mut last_is_static = seq
+ .stmts
+ .first()
+ .expect("non-empty already asserted")
+ .is_static();
+ for stmt in seq.stmts.iter().skip(1) {
+ if stmt.is_static() == last_is_static {
+ return Err(
+ Error::malformed_control(
+ "`seq` marked `@fast` does not contain alternating static-dynamic control children (see #1828)"
+ )
+ );
+ }
+ last_is_static = stmt.is_static();
+ }
+ Ok(())
+}
+
impl Visitor for WellFormed {
fn start(
&mut self,
@@ -1623,6 +1687,20 @@
Ok(Action::Continue)
}
+ fn start_seq(
+ &mut self,
+ s: &mut calyx_ir::Seq,
+ _comp: &mut Component,
+ _sigs: &LibrarySignatures,
+ _comps: &[calyx_ir::Component],
+ ) -> VisResult {
+ if s.attributes.has(BoolAttr::Fast) {
+ check_fast_seq_invariant(s)?;
+ }
+
+ Ok(Action::Continue)
+ }
+
fn finish_if(
&mut self,
s: &mut ir::If,