summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-04-04 14:24:03 +1000
committerDamien George <damien.p.george@gmail.com>2018-04-04 14:24:03 +1000
commit3f420c0c27bd6daa5af39517925be55b9b9a9ab3 (patch)
treee5b2da7eae2a600dc1580e0e4baed9efe6f14f4c
parent323b5f7270ee0e3c9000c0fb0d5f74ec049337c2 (diff)
py: Don't include mp_optimise_value or opt_level() if compiler disabled.
Without the compiler enabled the mp_optimise_value is unused, and the micropython.opt_level() function is not useful, so exclude these from the build to save RAM and code size.
-rw-r--r--py/modmicropython.c4
-rw-r--r--py/mpstate.h2
-rw-r--r--py/runtime.c2
3 files changed, 8 insertions, 0 deletions
diff --git a/py/modmicropython.c b/py/modmicropython.c
index 5cc7bdbe2..864d1a5c5 100644
--- a/py/modmicropython.c
+++ b/py/modmicropython.c
@@ -35,6 +35,7 @@
// Various builtins specific to MicroPython runtime,
// living in micropython module
+#if MICROPY_ENABLE_COMPILER
STATIC mp_obj_t mp_micropython_opt_level(size_t n_args, const mp_obj_t *args) {
if (n_args == 0) {
return MP_OBJ_NEW_SMALL_INT(MP_STATE_VM(mp_optimise_value));
@@ -44,6 +45,7 @@ STATIC mp_obj_t mp_micropython_opt_level(size_t n_args, const mp_obj_t *args) {
}
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_micropython_opt_level_obj, 0, 1, mp_micropython_opt_level);
+#endif
#if MICROPY_PY_MICROPYTHON_MEM_INFO
@@ -158,7 +160,9 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(mp_micropython_schedule_obj, mp_micropython_sch
STATIC const mp_rom_map_elem_t mp_module_micropython_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_micropython) },
{ MP_ROM_QSTR(MP_QSTR_const), MP_ROM_PTR(&mp_identity_obj) },
+ #if MICROPY_ENABLE_COMPILER
{ MP_ROM_QSTR(MP_QSTR_opt_level), MP_ROM_PTR(&mp_micropython_opt_level_obj) },
+ #endif
#if MICROPY_PY_MICROPYTHON_MEM_INFO
#if MICROPY_MEM_STATS
{ MP_ROM_QSTR(MP_QSTR_mem_total), MP_ROM_PTR(&mp_micropython_mem_total_obj) },
diff --git a/py/mpstate.h b/py/mpstate.h
index 816698f4e..16c4bf6c5 100644
--- a/py/mpstate.h
+++ b/py/mpstate.h
@@ -199,7 +199,9 @@ typedef struct _mp_state_vm_t {
mp_thread_mutex_t qstr_mutex;
#endif
+ #if MICROPY_ENABLE_COMPILER
mp_uint_t mp_optimise_value;
+ #endif
// size of the emergency exception buf, if it's dynamically allocated
#if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF && MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE == 0
diff --git a/py/runtime.c b/py/runtime.c
index 219ec22de..4efb29bec 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -83,8 +83,10 @@ void mp_init(void) {
MICROPY_PORT_INIT_FUNC;
#endif
+ #if MICROPY_ENABLE_COMPILER
// optimization disabled by default
MP_STATE_VM(mp_optimise_value) = 0;
+ #endif
// init global module dict
mp_obj_dict_init(&MP_STATE_VM(mp_loaded_modules_dict), 3);