Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Rutefig/231 applying cse to compiler #264

Merged
merged 57 commits into from
Aug 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
19e3135
wip: cse on compiler
rutefig Jun 14, 2024
afd0008
Merge branch 'chiquito-2024' into rutefig/231-applying-cse-to-compiler
rutefig Jun 14, 2024
298dd1f
fix merge issues
rutefig Jun 14, 2024
dc811bd
implemented cse for compiler and expr replacement with signal functio…
rutefig Jun 19, 2024
fdfa210
removed unnecessary match
rutefig Jun 21, 2024
13c35c1
complete refactor for cse module - implemented recursiveness and a mo…
rutefig Jun 23, 2024
b61e9b4
improved unit tests for the cse mod
rutefig Jun 25, 2024
c5c0597
small improvements on cse and applied cse on the compile function
rutefig Jun 25, 2024
de8d590
small fix
rutefig Jun 25, 2024
d727728
small changes
rutefig Jul 2, 2024
39e31b2
added new cse mod for compiler
rutefig Jul 2, 2024
3409f61
first version of the CSE mod for compiler
rutefig Jul 2, 2024
ef06f64
small changes - removed unnecessary struct
rutefig Jul 2, 2024
504fd56
implemented method to remove meta and get a signal from ConstrDecomp …
rutefig Jul 8, 2024
dbe125c
adding Meta trait and generic type for the SBPIR
rutefig Jul 9, 2024
a90d5d1
implemented conversion between SBPIR with meta and without meta
rutefig Jul 9, 2024
7ec4129
implemented way to move between meta types
rutefig Jul 9, 2024
671cd7a
some fixes and added degree for Expr::MI to consider the inner expres…
rutefig Jul 9, 2024
3f35446
formatting
rutefig Jul 9, 2024
44b6ce6
function to get auto signal by hash and small clippy fixes
rutefig Jul 9, 2024
31d6d70
clippy fix
rutefig Jul 9, 2024
b582283
abstracted recursive call on cse, refactor on hash function for Expr
rutefig Jul 9, 2024
deaecad
formatting
rutefig Jul 9, 2024
2aaa967
clippy
rutefig Jul 9, 2024
ffd6180
Merge branch 'chiquito-2024' into rutefig/231-applying-cse-to-compiler
rutefig Jul 10, 2024
e3caa8a
replace expressions on cse takes only one expression and common expre…
rutefig Jul 23, 2024
e9553d1
run expression replacements one common expression at a time
rutefig Jul 24, 2024
518c390
removed Meta trait and refactored with_meta functions to work with cl…
rutefig Jul 25, 2024
a319b7b
wip: cse algorithm for each step type
rutefig Jul 30, 2024
77db782
implemented cse loop
rutefig Jul 31, 2024
b215605
removing unnecessary Debug
rutefig Jul 31, 2024
b8328ca
formatting
rutefig Jul 31, 2024
02b8742
improving comments
rutefig Jul 31, 2024
3ec6af6
finish tests implementation
rutefig Aug 1, 2024
1c235aa
fix clippy
rutefig Aug 1, 2024
3222b43
clippy
rutefig Aug 1, 2024
6a7ca6e
Merge branch 'chiquito-2024' into rutefig/231-applying-cse-to-compiler
rutefig Aug 1, 2024
3dd337c
removed map_meta as it is unnecessary and improved complexity on find…
rutefig Aug 7, 2024
f23e856
with meta can be applied to all M generic in the Expr
rutefig Aug 7, 2024
c3c8456
renamed with_meta function and removed redundant function without_meta
rutefig Aug 7, 2024
c8fe2db
extracted logic for applying cse for a step
rutefig Aug 7, 2024
7d34bb1
removed unnecessary ConstrDecomp used on the replace expressions func…
rutefig Aug 7, 2024
36dfcd5
fixed missing constraint for the auto signal and added the assertion …
rutefig Aug 7, 2024
43ce088
added config for the cse and added basic weight on the scoring functi…
rutefig Aug 8, 2024
1a67c97
Merge branch 'chiquito-2024' into rutefig/231-applying-cse-to-compiler
rutefig Aug 8, 2024
518f621
fixed merge issues
rutefig Aug 8, 2024
6b5e4aa
updated cse to use SBPIRMachine instead of Legacy
rutefig Aug 8, 2024
823bf4b
added trait for CSE Scorer
rutefig Aug 9, 2024
0720a88
moved min_degree and min_occurrences from CseConfig to Scorer
rutefig Aug 13, 2024
1bbdfbd
formatting
rutefig Aug 13, 2024
9e4e59f
cse to work with the new SBPIR and fixed testto not assume a certain …
rutefig Aug 17, 2024
6f5a220
refactored cse_for_step function to make it more modular and concise
rutefig Aug 17, 2024
0b42b48
removed unnecessary HashSet to store replaced expression hashes
rutefig Aug 17, 2024
06627bc
fixed test_cse and unnecessary constraint with the auto_signal
rutefig Aug 19, 2024
5693cc7
formatting and clippy
rutefig Aug 19, 2024
5b878ea
removed ConstrDecomp and removed module for cse on poly since there i…
rutefig Aug 22, 2024
8ed9a5f
Merge branch 'chiquito-2024' into rutefig/231-applying-cse-to-compiler
rutefig Aug 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions src/compiler/compiler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -272,19 +272,14 @@ impl<F: Field + Hash> Compiler<F> {
sbpir.without_trace()
}

#[allow(dead_code)]
fn cse(mut _circuit: SBPIR<F, NullTraceGenerator>) -> SBPIR<F, NullTraceGenerator> {
todo!()
}

/// Translate the queries to constraints
fn queries_into_constraints(
&mut self,
symbols: &SymTable,
setup: &MachineSetup<F>,
machine_name: &str,
state_id: &str,
) -> Vec<Constraint<F>> {
) -> Vec<Constraint<F, ()>> {
let exprs = setup.get_poly_constraints(state_id).unwrap();

exprs
Expand Down Expand Up @@ -433,10 +428,10 @@ impl<F: Field + Hash> Compiler<F> {
machine_name: &str,
machine_setup: &MachineSetup<F>,
state_id: &str,
) -> StepType<F> {
) -> StepType<F, ()> {
let handler = self.mapping.get_step_type_handler(machine_name, state_id);

let mut step_type: StepType<F> =
let mut step_type: StepType<F, ()> =
StepType::new(handler.uuid(), handler.annotation.to_string());

self.add_internal_signals(symbols, machine_name, &mut step_type, state_id);
Expand All @@ -453,7 +448,7 @@ impl<F: Field + Hash> Compiler<F> {
&mut self,
symbols: &SymTable,
machine_name: &str,
step_type: &mut StepType<F>,
step_type: &mut StepType<F, ()>,
state_id: &str,
) {
let internal_ids = self.get_all_internals(symbols, machine_name, state_id);
Expand Down
Loading
Loading