Skip to content

Commit 27d96a9

Browse files
authored
Adding redeposit gas by default. (#6904)
1 parent 63dc720 commit 27d96a9

File tree

77 files changed

+121589
-103341
lines changed

Some content is hidden

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

77 files changed

+121589
-103341
lines changed

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ pub struct RootDatabaseBuilder {
8989
plugin_suite: PluginSuite,
9090
detect_corelib: bool,
9191
auto_withdraw_gas: bool,
92-
add_redeposit_gas: bool,
9392
project_config: Option<Box<ProjectConfig>>,
9493
cfg_set: Option<CfgSet>,
9594
inlining_strategy: InliningStrategy,
@@ -101,7 +100,6 @@ impl RootDatabaseBuilder {
101100
plugin_suite: get_default_plugin_suite(),
102101
detect_corelib: false,
103102
auto_withdraw_gas: true,
104-
add_redeposit_gas: false,
105103
project_config: None,
106104
cfg_set: None,
107105
inlining_strategy: InliningStrategy::Default,
@@ -123,11 +121,6 @@ impl RootDatabaseBuilder {
123121
self
124122
}
125123

126-
pub fn with_add_redeposit_gas(&mut self) -> &mut Self {
127-
self.add_redeposit_gas = true;
128-
self
129-
}
130-
131124
pub fn detect_corelib(&mut self) -> &mut Self {
132125
self.detect_corelib = true;
133126
self
@@ -175,11 +168,6 @@ impl RootDatabaseBuilder {
175168
add_withdraw_gas_flag_id,
176169
Some(Arc::new(Flag::AddWithdrawGas(self.auto_withdraw_gas))),
177170
);
178-
let add_redeposit_gas_flag_id = FlagId::new(db.upcast(), "add_redeposit_gas");
179-
db.set_flag(
180-
add_redeposit_gas_flag_id,
181-
Some(Arc::new(Flag::AddRedepositGas(self.add_redeposit_gas))),
182-
);
183171

184172
if let Some(config) = &self.project_config {
185173
update_crate_roots_from_project_config(&mut db, config.as_ref());

crates/cairo-lang-filesystem/src/flag.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
pub enum Flag {
44
/// Whether automatically add `withdraw_gas` calls in code cycles.
55
/// Default is true - automatically add.
6+
///
7+
/// Additionally controls addition of `redeposit_gas` which happens on default.
68
AddWithdrawGas(bool),
7-
/// Whether automatically add `redeposit_gas` calls on stores of the gas builtin.
8-
/// Default is false - automatically add.
9-
AddRedepositGas(bool),
109
NumericMatchOptimizationMinArmsThreshold(usize),
1110
}

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

Lines changed: 54 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,19 @@ End:
7878

7979
blk1:
8080
Statements:
81-
(v23: core::array::SpanIter::<core::felt252>, v24: core::felt252, v25: ()) <- struct_destructure(v21)
82-
(v26: (core::felt252,)) <- struct_construct(v24)
83-
(v27: core::panics::PanicResult::<(core::felt252,)>) <- PanicResult::Ok(v26)
81+
(v23: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v19)
82+
(v24: core::array::SpanIter::<core::felt252>, v25: core::felt252, v26: ()) <- struct_destructure(v21)
83+
(v27: (core::felt252,)) <- struct_construct(v25)
84+
(v28: core::panics::PanicResult::<(core::felt252,)>) <- PanicResult::Ok(v27)
8485
End:
85-
Return(v18, v19, v27)
86+
Return(v18, v23, v28)
8687

8788
blk2:
8889
Statements:
89-
(v28: core::panics::PanicResult::<(core::felt252,)>) <- PanicResult::Err(v22)
90+
(v29: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v19)
91+
(v30: core::panics::PanicResult::<(core::felt252,)>) <- PanicResult::Err(v22)
9092
End:
91-
Return(v18, v19, v28)
93+
Return(v18, v29, v30)
9294

9395

9496
Generated loop lowering for source location:
@@ -139,81 +141,89 @@ End:
139141

140142
blk1:
141143
Statements:
142-
(v9: core::array::Span::<core::felt252>) <- struct_destructure(v2)
143-
(v10: @core::array::Array::<core::felt252>) <- struct_destructure(v9)
144+
(v9: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v6)
145+
(v10: core::array::Span::<core::felt252>) <- struct_destructure(v2)
146+
(v11: @core::array::Array::<core::felt252>) <- struct_destructure(v10)
144147
End:
145-
Match(match core::array::array_snapshot_pop_front::<core::felt252>(v10) {
146-
Option::Some(v11, v12) => blk2,
147-
Option::None(v13) => blk3,
148+
Match(match core::array::array_snapshot_pop_front::<core::felt252>(v11) {
149+
Option::Some(v12, v13) => blk2,
150+
Option::None(v14) => blk3,
148151
})
149152

150153
blk2:
151154
Statements:
152-
(v14: core::option::Option::<core::box::Box::<@core::felt252>>) <- Option::Some(v12)
155+
(v15: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v9)
156+
(v16: core::option::Option::<core::box::Box::<@core::felt252>>) <- Option::Some(v13)
153157
End:
154-
Goto(blk4, {v11 -> v15, v14 -> v16})
158+
Goto(blk4, {v15 -> v17, v12 -> v18, v16 -> v19})
155159

156160
blk3:
157161
Statements:
158-
(v17: ()) <- struct_construct()
159-
(v18: core::option::Option::<core::box::Box::<@core::felt252>>) <- Option::None(v17)
162+
(v20: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v9)
163+
(v21: ()) <- struct_construct()
164+
(v22: core::option::Option::<core::box::Box::<@core::felt252>>) <- Option::None(v21)
160165
End:
161-
Goto(blk4, {v13 -> v15, v18 -> v16})
166+
Goto(blk4, {v20 -> v17, v14 -> v18, v22 -> v19})
162167

163168
blk4:
164169
Statements:
165-
(v19: core::array::Span::<core::felt252>) <- struct_construct(v15)
170+
(v23: core::array::Span::<core::felt252>) <- struct_construct(v18)
166171
End:
167-
Match(match_enum(v16) {
168-
Option::Some(v20) => blk5,
169-
Option::None(v21) => blk6,
172+
Match(match_enum(v19) {
173+
Option::Some(v24) => blk5,
174+
Option::None(v25) => blk6,
170175
})
171176

172177
blk5:
173178
Statements:
174-
(v22: @core::felt252) <- core::box::unbox::<@core::felt252>(v20)
175-
(v23: core::option::Option::<@core::felt252>) <- Option::Some(v22)
179+
(v26: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v17)
180+
(v27: @core::felt252) <- core::box::unbox::<@core::felt252>(v24)
181+
(v28: core::option::Option::<@core::felt252>) <- Option::Some(v27)
176182
End:
177-
Goto(blk7, {v23 -> v24})
183+
Goto(blk7, {v26 -> v29, v28 -> v30})
178184

179185
blk6:
180186
Statements:
181-
(v25: ()) <- struct_construct()
182-
(v26: core::option::Option::<@core::felt252>) <- Option::None(v25)
187+
(v31: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v17)
188+
(v32: ()) <- struct_construct()
189+
(v33: core::option::Option::<@core::felt252>) <- Option::None(v32)
183190
End:
184-
Goto(blk7, {v26 -> v24})
191+
Goto(blk7, {v31 -> v29, v33 -> v30})
185192

186193
blk7:
187194
Statements:
188-
(v27: core::array::SpanIter::<core::felt252>) <- struct_construct(v19)
195+
(v34: core::array::SpanIter::<core::felt252>) <- struct_construct(v23)
189196
End:
190-
Match(match_enum(v24) {
191-
Option::Some(v28) => blk8,
192-
Option::None(v29) => blk9,
197+
Match(match_enum(v30) {
198+
Option::Some(v35) => blk8,
199+
Option::None(v36) => blk9,
193200
})
194201

195202
blk8:
196203
Statements:
197-
(v30: core::felt252) <- core::felt252_add(v3, v4)
198-
(v31: core::RangeCheck, v32: core::gas::GasBuiltin, v33: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- test::foo[expr30](v5, v6, v27, v30, v4)
204+
(v37: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v29)
205+
(v38: core::felt252) <- core::felt252_add(v3, v4)
206+
(v39: core::RangeCheck, v40: core::gas::GasBuiltin, v41: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- test::foo[expr30](v5, v37, v34, v38, v4)
199207
End:
200-
Return(v31, v32, v33)
208+
Return(v39, v40, v41)
201209

202210
blk9:
203211
Statements:
204-
(v34: ()) <- struct_construct()
205-
(v35: (core::array::SpanIter::<core::felt252>, core::felt252, ())) <- struct_construct(v27, v3, v34)
206-
(v36: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Ok(v35)
212+
(v42: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v29)
213+
(v43: ()) <- struct_construct()
214+
(v44: (core::array::SpanIter::<core::felt252>, core::felt252, ())) <- struct_construct(v34, v3, v43)
215+
(v45: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Ok(v44)
207216
End:
208-
Return(v5, v6, v36)
217+
Return(v5, v42, v45)
209218

210219
blk10:
211220
Statements:
212-
(v37: core::array::Array::<core::felt252>) <- core::array::array_new::<core::felt252>()
213-
(v38: core::felt252) <- 375233589013918064796019
214-
(v39: core::array::Array::<core::felt252>) <- core::array::array_append::<core::felt252>(v37, v38)
215-
(v40: core::panics::Panic) <- struct_construct()
216-
(v41: (core::panics::Panic, core::array::Array::<core::felt252>)) <- struct_construct(v40, v39)
217-
(v42: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Err(v41)
221+
(v46: core::gas::GasBuiltin) <- core::gas::redeposit_gas(v8)
222+
(v47: core::array::Array::<core::felt252>) <- core::array::array_new::<core::felt252>()
223+
(v48: core::felt252) <- 375233589013918064796019
224+
(v49: core::array::Array::<core::felt252>) <- core::array::array_append::<core::felt252>(v47, v48)
225+
(v50: core::panics::Panic) <- struct_construct()
226+
(v51: (core::panics::Panic, core::array::Array::<core::felt252>)) <- struct_construct(v50, v49)
227+
(v52: core::panics::PanicResult::<(core::array::SpanIter::<core::felt252>, core::felt252, ())>) <- PanicResult::Err(v51)
218228
End:
219-
Return(v7, v8, v42)
229+
Return(v7, v46, v52)

0 commit comments

Comments
 (0)