Skip to content

Commit 7dc2345

Browse files
committed
py/modmicropython: Add micropython.opt_level([value]) function.
This allows to get/set at runtime the optimisation level of the compiler.
1 parent 93c76d2 commit 7dc2345

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

py/modmicropython.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@
3434
// Various builtins specific to MicroPython runtime,
3535
// living in micropython module
3636

37+
STATIC mp_obj_t mp_micropython_opt_level(size_t n_args, const mp_obj_t *args) {
38+
if (n_args == 0) {
39+
return MP_OBJ_NEW_SMALL_INT(MP_STATE_VM(mp_optimise_value));
40+
} else {
41+
MP_STATE_VM(mp_optimise_value) = mp_obj_get_int(args[0]);
42+
return mp_const_none;
43+
}
44+
}
45+
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_micropython_opt_level_obj, 0, 1, mp_micropython_opt_level);
46+
3747
#if MICROPY_PY_MICROPYTHON_MEM_INFO
3848

3949
#if MICROPY_MEM_STATS
@@ -121,6 +131,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_alloc_emergency_exception_buf_obj, mp_alloc_
121131
STATIC const mp_rom_map_elem_t mp_module_micropython_globals_table[] = {
122132
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_micropython) },
123133
{ MP_ROM_QSTR(MP_QSTR_const), MP_ROM_PTR(&mp_identity_obj) },
134+
{ MP_ROM_QSTR(MP_QSTR_opt_level), MP_ROM_PTR(&mp_micropython_opt_level_obj) },
124135
#if MICROPY_PY_MICROPYTHON_MEM_INFO
125136
#if MICROPY_MEM_STATS
126137
{ MP_ROM_QSTR(MP_QSTR_mem_total), MP_ROM_PTR(&mp_micropython_mem_total_obj) },

0 commit comments

Comments
 (0)