diff --git a/source/calyx_frontend/enum.Attribute.html b/source/calyx_frontend/enum.Attribute.html index b5a550b1..d520acea 100644 --- a/source/calyx_frontend/enum.Attribute.html +++ b/source/calyx_frontend/enum.Attribute.html @@ -1,4 +1,4 @@ -Attribute in calyx_frontend - Rust
pub enum Attribute {
+Attribute in calyx_frontend - 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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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
#[repr(u8)]
+BoolAttr in calyx_frontend - Rust
#[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

Try to create Self from the raw representation

-

Trait Implementations

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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
pub enum InternalAttr {
+InternalAttr in calyx_frontend - Rust
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

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
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

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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
pub enum NumAttr {
+NumAttr in calyx_frontend - 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

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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
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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more

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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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

Try to create Self from the raw representation

-

Trait Implementations

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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
pub enum InternalAttr {
+InternalAttr in calyx_ir - Rust
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

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
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

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used +

Trait Implementations

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason. Read more
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

+sufficient, and should not be overridden without very good reason. Read more
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Checks if this value is equivalent to the given key. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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

Construct the visitor using information from the Context
Clear the data stored in the visitor. Called before traversing the next component by [ir::traversal::Visitor]. Read more
The name of a pass. Is used for identifying passes.
A short description of the pass.
Set of options that can be passed to the pass. -The options contains a tuple of the option name and a description. Read more
Define the iteration order in which components should be visited
Executed after the traversal ends. +The options contains a tuple of the option name and a description. Read more
Define the iteration order in which components should be visited
Executed after the traversal ends. This method is always invoked regardless of the Action returned from -the children. Read more
Executed before the traversal begins.
Executed at an ir::Enable node.
Executed at an ir::Invoke node.
Executed after visiting the children of a ir::Seq node.
Executed after visiting the children of a ir::Par node.
Executed after visiting the children of a ir::If node.
Executed after visiting the children of a ir::While node.
Executed after visiting the children of a ir::Repeat node.
Precondition for this pass to run on the program. If this function returns +the children. Read more
Executed before the traversal begins.
Executed at an ir::Enable node.
Executed at an ir::Invoke node.
Executed after visiting the children of a ir::Seq node.
Executed after visiting the children of a ir::Par node.
Executed after visiting the children of a ir::If node.
Executed after visiting the children of a ir::While node.
Executed after visiting the children of a ir::Repeat node.
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 more
Transform the ir::Context before visiting the components.
Transform the ir::Context after visiting the components.
Define the traversal over a component. Calls Visitor::start, visits each control node, and finally calls Visitor::finish. Read more
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
pub struct TopDownCompileControl { /* private fields */ }
Expand description

Core lowering pass. +TopDownCompileControl in calyx_opt::passes - Rust

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

Construct the visitor using information from the Context
Clear the data stored in the visitor. Called before traversing the -next component by [ir::traversal::Visitor]. Read more
The name of a pass. Is used for identifying passes.
A short description of the pass.
Set of options that can be passed to the pass. -The options contains a tuple of the option name and a description. Read more

Compile each child in par block separately so each child can make +

Trait Implementations

Construct the visitor using information from the Context
Clear the data stored in the visitor. Called before traversing the +next component by [ir::traversal::Visitor]. Read more
The name of a pass. Is used for identifying passes.
A short description of the pass.
Set of options that can be passed to the pass. +The options contains a tuple of the option name and a description. Read more

Compile each child in par block separately so each child can make progress indepdendently.

-
Executed before the traversal begins.
Executed after visiting the children of a ir::Seq node.
Executed after visiting the children of a ir::If node.
Executed after visiting the children of a ir::While node.
Executed after the traversal ends. +
Executed before the traversal begins.
Executed after visiting the children of a ir::Seq node.
Executed after visiting the children of a ir::If node.
Executed after visiting the children of a ir::While node.
Executed after the traversal ends. This method is always invoked regardless of the Action returned from the children. Read more
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 more
Transform the ir::Context before visiting the components.
Transform the ir::Context after visiting the components.
Define the iteration order in which components should be visited
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
pub struct WellFormed { /* private fields */ }
Expand description

Pass to check if the program is well-formed.

+WellFormed in calyx_opt::passes - Rust
pub struct WellFormed { /* private fields */ }
Expand description

Pass to check if the program is well-formed.

Catches the following errors:

  1. Programs that don’t use a defined group or combinational group.
  2. @@ -9,9 +9,9 @@
  3. Invoking components with wrong ref cell name.
  4. Invoking components with impatible fed-in cell type for ref cells.
-

Trait Implementations

Construct the visitor using information from the Context
Clear the data stored in the visitor. Called before traversing the -next component by [ir::traversal::Visitor]. Read more
Formats the value using the given formatter. Read more
Return an iterator of the diagnostics gathered by this pass.
The name of a pass. Is used for identifying passes.
A short description of the pass.
Set of options that can be passed to the pass. -The options contains a tuple of the option name and a description. Read more
Executed before the traversal begins.
Executed at an ir::StaticEnable node.
Executed at an ir::Enable node.
Executed at an ir::Invoke node.
Executed at a ir::StaticInvoke node.
Executed before visiting the children of a ir::If node.
Executed before visiting the children of a ir::StaticIf node.
Executed after visiting the children of a ir::If node.
Executed before visiting the children of a ir::While node.
Executed after visiting the children of a ir::While node.
Executed after the traversal ends. +

Trait Implementations

Construct the visitor using information from the Context
Clear the data stored in the visitor. Called before traversing the +next component by [ir::traversal::Visitor]. Read more
Formats the value using the given formatter. Read more
Return an iterator of the diagnostics gathered by this pass.
The name of a pass. Is used for identifying passes.
A short description of the pass.
Set of options that can be passed to the pass. +The options contains a tuple of the option name and a description. Read more
Executed before the traversal begins.
Executed at an ir::StaticEnable node.
Executed at an ir::Enable node.
Executed at an ir::Invoke node.
Executed at a ir::StaticInvoke node.
Executed before visiting the children of a ir::If node.
Executed before visiting the children of a ir::StaticIf node.
Executed before visiting the children of a ir::Seq node.
Executed after visiting the children of a ir::If node.
Executed before visiting the children of a ir::While node.
Executed after visiting the children of a ir::While node.
Executed after the traversal ends. This method is always invoked regardless of the Action returned from the children. Read more
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 more
Transform the ir::Context before visiting the components.
Transform the ir::Context after visiting the components.
Define the iteration order in which components should be visited
Define the traversal over a component. @@ -19,7 +19,7 @@ Visitor::finish. Read more
Run the visitor on a given program ir::Context. The function mutably borrows the control program in each component and traverses it. Read more
Build a Default implementation of this pass and call Visitor::do_pass -using it. Read more
Executed before visiting the children of a ir::Seq node.
Executed after visiting the children of a ir::Seq node.
Executed before visiting the children of a ir::Par node.
Executed after visiting the children of a ir::Par node.
Executed before visiting the children of a ir::Repeat node.
Executed after visiting the children of a ir::Repeat node.
Executed before visiting the contents of an ir::StaticControl node.
Executed after visiting the conetnts of an ir::StaticControl node.
Executed after visiting the children of a ir::StaticIf node.
Executed before visiting the children of a ir::StaticRepeat node.
Executed after visiting the children of a ir::StaticRepeat node.
Executed at an ir::Empty node.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+using it. Read more
Executed after visiting the children of a ir::Seq node.
Executed before visiting the children of a ir::Par node.
Executed after visiting the children of a ir::Par node.
Executed before visiting the children of a ir::Repeat node.
Executed after visiting the children of a ir::Repeat node.
Executed before visiting the contents of an ir::StaticControl node.
Executed after visiting the conetnts of an ir::StaticControl node.
Executed after visiting the children of a ir::StaticIf node.
Executed before visiting the children of a ir::StaticRepeat node.
Executed after visiting the children of a ir::StaticRepeat node.
Executed at an ir::Empty node.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

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

Construct the visitor using information from the Context

Clear the data stored in the visitor. Called before traversing the next component by [ir::traversal::Visitor].

-

Provided Methods

Implementors

Provided Methods

Implementors

\ 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

Return an iterator of the diagnostics gathered by this pass.

-

Implementors

\ No newline at end of file +

Implementors

\ 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 @@

A short description of the pass.

Provided Methods

Set of options that can be passed to the pass. The options contains a tuple of the option name and a description.

-

Implementors

\ No newline at end of file +

Implementors

\ 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.
  • -
    \ No newline at end of file +
    \ 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 imported 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 imported 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 Ts, find a mapping from nodes to Ts …","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 imported 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 imported 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 Ts, find a mapping from nodes to Ts …","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,