Skip to content

Commit 868fa98

Browse files
committed
Added box libfuncs to movable and droppable values.
commit-id:406838ee
1 parent a3a877c commit 868fa98

File tree

47 files changed

+18044
-18121
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+18044
-18121
lines changed

crates/cairo-lang-executable/src/compile_test_data/basic

+12-12
Original file line numberDiff line numberDiff line change
@@ -80,35 +80,35 @@ jmp rel 4 if [ap + -1] != 0;
8080
jmp rel 46;
8181
[ap + 0] = [fp + -6] + 1, ap++;
8282
[ap + 0] = [fp + -5], ap++;
83-
[ap + 0] = [[fp + -6] + 0], ap++;
84-
[ap + -2] = [ap + 0] + [ap + -3], ap++;
83+
[ap + -1] = [ap + 0] + [ap + -2], ap++;
8584
jmp rel 4 if [ap + -1] != 0;
86-
jmp rel 28;
87-
[ap + 0] = [ap + -4] + 1, ap++;
88-
[ap + 0] = [ap + -4], ap++;
89-
[ap + 0] = [[ap + -6] + 0], ap++;
90-
[ap + -2] = [ap + 0] + [ap + -3], ap++;
85+
jmp rel 29;
86+
[ap + 0] = [ap + -3] + 1, ap++;
87+
[ap + 0] = [ap + -3], ap++;
88+
[ap + -1] = [ap + 0] + [ap + -2], ap++;
9189
jmp rel 4 if [ap + -1] != 0;
9290
jmp rel 9;
93-
call rel 35;
91+
call rel 37;
9492
[ap + 0] = 1, ap++;
9593
[ap + 0] = [ap + -3], ap++;
9694
[ap + 0] = [ap + -3], ap++;
9795
ret;
98-
ap += 7;
99-
[ap + 0] = [ap + -13] + [ap + -9], ap++;
96+
ap += 5;
97+
[ap + 0] = [[fp + -6] + 0], ap++;
98+
[ap + 0] = [[ap + -12] + 0], ap++;
99+
[ap + 0] = [ap + -2] + [ap + -1], ap++;
100100
[ap + -1] = [[fp + -3] + 0];
101101
[ap + 0] = 0, ap++;
102102
[ap + 0] = [fp + -4], ap++;
103103
[ap + 0] = [fp + -3] + 1, ap++;
104104
ret;
105-
ap += 4;
105+
ap += 3;
106106
call rel 21;
107107
[ap + 0] = 1, ap++;
108108
[ap + 0] = [ap + -3], ap++;
109109
[ap + 0] = [ap + -3], ap++;
110110
ret;
111-
ap += 8;
111+
ap += 6;
112112
call rel 17;
113113
[ap + 0] = 1, ap++;
114114
[ap + 0] = [ap + -3], ap++;

crates/cairo-lang-lowering/src/db.rs

+1
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,7 @@ pub fn init_lowering_group(
372372
["bool_not_impl"],
373373
["felt252_add", "felt252_sub", "felt252_mul", "felt252_div"],
374374
["array::array_new", "array::array_append"],
375+
["box::unbox", "box::box_forward_snapshot", "box::into_box"],
375376
)
376377
.map(|s| s.to_string())
377378
.collect();

crates/cairo-lang-lowering/src/lower/test_data/for

+15-16
Original file line numberDiff line numberDiff line change
@@ -146,31 +146,30 @@ End:
146146
blk2:
147147
Statements:
148148
(v14: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v6)
149-
(v15: @core::felt252) <- core::box::unbox::<@core::felt252>(v12)
150-
(v16: core::felt252) <- core::felt252_add(v3, v4)
151-
(v17: core::array::Span::<core::felt252>) <- struct_construct(v11)
152-
(v18: core::array::SpanIter::<core::felt252>) <- struct_construct(v17)
153-
(v19: core::RangeCheck, v20: core::gas::GasBuiltin, v21: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- test::foo[118-164](v5, v14, v18, v16, v4)
149+
(v15: core::felt252) <- core::felt252_add(v3, v4)
150+
(v16: core::array::Span::<core::felt252>) <- struct_construct(v11)
151+
(v17: core::array::SpanIter::<core::felt252>) <- struct_construct(v16)
152+
(v18: core::RangeCheck, v19: core::gas::GasBuiltin, v20: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- test::foo[118-164](v5, v14, v17, v15, v4)
154153
End:
155-
Return(v19, v20, v21)
154+
Return(v18, v19, v20)
156155

157156
blk3:
158157
Statements:
159-
(v22: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v6)
160-
(v23: core::array::Span::<core::felt252>) <- struct_construct(v13)
161-
(v24: core::array::SpanIter::<core::felt252>) <- struct_construct(v23)
162-
(v25: ()) <- struct_construct()
163-
(v26: (core::array::SpanIter::<core::felt252>, core::felt252, ())) <- struct_construct(v24, v3, v25)
164-
(v27: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Ok(v26)
158+
(v21: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v6)
159+
(v22: core::array::Span::<core::felt252>) <- struct_construct(v13)
160+
(v23: core::array::SpanIter::<core::felt252>) <- struct_construct(v22)
161+
(v24: ()) <- struct_construct()
162+
(v25: (core::array::SpanIter::<core::felt252>, core::felt252, ())) <- struct_construct(v23, v3, v24)
163+
(v26: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Ok(v25)
165164
End:
166-
Return(v5, v22, v27)
165+
Return(v5, v21, v26)
167166

168167
blk4:
169168
Statements:
170-
(v28: (core::panics::Panic, core::array::Array::<core::felt252>)) <- core::panic_with_const_felt252::<375233589013918064796019>()
171-
(v29: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Err(v28)
169+
(v27: (core::panics::Panic, core::array::Array::<core::felt252>)) <- core::panic_with_const_felt252::<375233589013918064796019>()
170+
(v28: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Err(v27)
172171
End:
173-
Return(v7, v8, v29)
172+
Return(v7, v8, v28)
174173

175174
//! > ==========================================================================
176175

crates/cairo-lang-lowering/src/optimizations/test_data/dedup_blocks

-4
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ End:
3030

3131
blk1:
3232
Statements:
33-
(v4: core::integer::u32) <- core::box::unbox::<core::integer::u32>(v2)
3433
End:
3534
Match(match core::array::array_pop_front::<core::integer::u32>(v1) {
3635
Option::Some(v6, v7) => blk2,
@@ -39,7 +38,6 @@ End:
3938

4039
blk2:
4140
Statements:
42-
(v9: core::integer::u32) <- core::box::unbox::<core::integer::u32>(v7)
4341
(v11: ()) <- struct_construct()
4442
(v12: ((),)) <- struct_construct(v11)
4543
(v13: core::panics::PanicResult::<((),)>) <- PanicResult::Ok(v12)
@@ -72,7 +70,6 @@ End:
7270

7371
blk1:
7472
Statements:
75-
(v4: core::integer::u32) <- core::box::unbox::<core::integer::u32>(v2)
7673
End:
7774
Match(match core::array::array_pop_front::<core::integer::u32>(v1) {
7875
Option::Some(v6, v7) => blk2,
@@ -81,7 +78,6 @@ End:
8178

8279
blk2:
8380
Statements:
84-
(v9: core::integer::u32) <- core::box::unbox::<core::integer::u32>(v7)
8581
(v11: ()) <- struct_construct()
8682
(v12: ((),)) <- struct_construct(v11)
8783
(v13: core::panics::PanicResult::<((),)>) <- PanicResult::Ok(v12)

crates/cairo-lang-lowering/src/test_data/tests

+2-3
Original file line numberDiff line numberDiff line change
@@ -284,10 +284,9 @@ End:
284284

285285
blk3:
286286
Statements:
287-
(v5: ((), core::felt252)) <- core::box::unbox::<((), core::felt252)>(v3)
288-
(v6: core::felt252) <- 7
287+
(v5: core::felt252) <- 7
289288
End:
290-
Return(v6)
289+
Return(v5)
291290

292291
//! > ==========================================================================
293292

0 commit comments

Comments
 (0)